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

com.aaronbedra.web.request.SimpleCookieJar Maven / Gradle / Ivy

The newest version!
package com.aaronbedra.web.request;

import lombok.Value;
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.HttpUrl;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static com.jnape.palatable.lambda.adt.Maybe.maybe;

@Value
public class SimpleCookieJar implements CookieJar {
    Map> cookieMap;

    private SimpleCookieJar(Map> cookieMap) {
        this.cookieMap = cookieMap;
    }

    public static SimpleCookieJar simpleCookieJar() {
        return new SimpleCookieJar(new HashMap<>());
    }

    @NotNull
    @Override
    public List loadForRequest(@NotNull HttpUrl httpUrl) {
        return maybe(httpUrl).flatMap(url -> maybe(cookieMap.get(url))).orElse(new ArrayList<>());
    }

    @Override
    public void saveFromResponse(@NotNull HttpUrl httpUrl, @NotNull List cookies) {
        this.cookieMap.put(httpUrl, cookies);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy