All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.rx.socks.http.cookie.persistence.MemoryCookiePersistor Maven / Gradle / Ivy

package org.rx.socks.http.cookie.persistence;

import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;

import okhttp3.Cookie;
import org.rx.core.NQuery;

public class MemoryCookiePersistor implements CookiePersistor {
    private static String createCookieKey(Cookie cookie) {
        return (cookie.secure() ? "https" : "http") + "://" + cookie.domain() + cookie.path() + "|" + cookie.name();
    }

    private final ConcurrentHashMap store;

    public MemoryCookiePersistor() {
        store = new ConcurrentHashMap<>();
    }

    @Override
    public List loadAll() {
        return NQuery.of(store.values()).toList();
    }

    @Override
    public void saveAll(Collection cookies) {
        for (Cookie cookie : cookies) {
            store.put(createCookieKey(cookie), cookie);
        }
    }

    @Override
    public void removeAll(Collection cookies) {
        for (Cookie cookie : cookies) {
            store.remove(createCookieKey(cookie));
        }
    }

    @Override
    public void clear() {
        store.clear();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy