diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2012-04-17 14:00:25 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2012-04-17 14:00:25 +0200 |
| commit | 8074ce7eb0097e646093346881521b02a70d709f (patch) | |
| tree | 98168162d921a64cd8014477fac9f086c6f0d079 /main/src/cgeo/geocaching/network/Cookies.java | |
| parent | 73dda01c7f71b5930d9ca6f2d8785d9c33095d96 (diff) | |
| download | cgeo-8074ce7eb0097e646093346881521b02a70d709f.zip cgeo-8074ce7eb0097e646093346881521b02a70d709f.tar.gz cgeo-8074ce7eb0097e646093346881521b02a70d709f.tar.bz2 | |
Refactoring: separate Cookies into their own file
Diffstat (limited to 'main/src/cgeo/geocaching/network/Cookies.java')
| -rw-r--r-- | main/src/cgeo/geocaching/network/Cookies.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/network/Cookies.java b/main/src/cgeo/geocaching/network/Cookies.java new file mode 100644 index 0000000..68310e6 --- /dev/null +++ b/main/src/cgeo/geocaching/network/Cookies.java @@ -0,0 +1,47 @@ +package cgeo.geocaching.network; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.client.CookieStore; +import org.apache.http.cookie.Cookie; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.cookie.BasicClientCookie; + +public abstract class Cookies { + + private static boolean cookieStoreRestored = false; + final static CookieStore cookieStore = new BasicCookieStore(); + + public static void restoreCookieStore(final String oldCookies) { + if (!cookieStoreRestored) { + clearCookies(); + if (oldCookies != null) { + for (final String cookie : StringUtils.split(oldCookies, ';')) { + final String[] split = StringUtils.split(cookie, "=", 3); + if (split.length == 3) { + final BasicClientCookie newCookie = new BasicClientCookie(split[0], split[1]); + newCookie.setDomain(split[2]); + cookieStore.addCookie(newCookie); + } + } + } + cookieStoreRestored = true; + } + } + + public static String dumpCookieStore() { + StringBuilder cookies = new StringBuilder(); + for (final Cookie cookie : cookieStore.getCookies()) { + cookies.append(cookie.getName()); + cookies.append('='); + cookies.append(cookie.getValue()); + cookies.append('='); + cookies.append(cookie.getDomain()); + cookies.append(';'); + } + return cookies.toString(); + } + + public static void clearCookies() { + cookieStore.clear(); + } +} |
