com.vina.hlexchang.PersistentCookieStore.java Source code

Java tutorial

Introduction

Here is the source code for com.vina.hlexchang.PersistentCookieStore.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.vina.hlexchang;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;

/**
 *
 * @author hoabt2
 */
public class PersistentCookieStore extends BasicCookieStore {

    private HashMap<String, String> hashMapCookie = new HashMap<String, String>();

    /**
     *
     */
    public PersistentCookieStore() {
        super();
        load();
    }

    @Override
    public synchronized void clear() {
        super.clear();
        save();
    }

    @Override
    public synchronized boolean clearExpired(Date date) {
        boolean res = super.clearExpired(date);
        save();
        return res;
    }

    @Override
    public synchronized void addCookie(Cookie cookie) {
        super.addCookie(cookie);
        save();
    }

    @Override
    public synchronized void addCookies(Cookie[] cookie) {
        super.addCookies(cookie);
        save();
    }

    public synchronized void save() {
        System.out.println("Save Cookie");
        hashMapCookie.clear();
        List<Cookie> cookies = this.getCookies();
        for (Cookie cookie : cookies) {
            System.out.println("Name:" + cookie.getName() + ",Value:" + cookie.getValue());
            hashMapCookie.put(cookie.getName(), cookie.getValue());
        }
    }

    public synchronized void load() {
        Set<String> setKey = hashMapCookie.keySet();
        System.out.println("load Cookie:" + setKey.size());
        for (String cookieName : setKey) {
            String cookieValue = hashMapCookie.get(cookieName);
            if (cookieValue != null) {
                super.addCookie(new BasicClientCookie(cookieName, cookieValue));
            }
        }

    }

}