aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/network/Cookies.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2012-04-17 14:00:25 +0200
committerSamuel Tardieu <sam@rfc1149.net>2012-04-17 14:00:25 +0200
commit8074ce7eb0097e646093346881521b02a70d709f (patch)
tree98168162d921a64cd8014477fac9f086c6f0d079 /main/src/cgeo/geocaching/network/Cookies.java
parent73dda01c7f71b5930d9ca6f2d8785d9c33095d96 (diff)
downloadcgeo-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.java47
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();
+ }
+}