| package com.doumee.lib_coremodel.http.cookie.store; | 
|   | 
| import java.io.IOException; | 
| import java.io.ObjectInputStream; | 
| import java.io.ObjectOutputStream; | 
| import java.io.Serializable; | 
|   | 
| import okhttp3.Cookie; | 
|   | 
| public class SerializableHttpCookie implements Serializable { | 
|     private static final long serialVersionUID = 6374381323722046732L; | 
|   | 
|     private transient final Cookie cookie; | 
|     private transient Cookie clientCookie; | 
|   | 
|     public SerializableHttpCookie(Cookie cookie) { | 
|         this.cookie = cookie; | 
|     } | 
|   | 
|     public Cookie getCookie() { | 
|         Cookie bestCookie = cookie; | 
|         if (clientCookie != null) { | 
|             bestCookie = clientCookie; | 
|         } | 
|         return bestCookie; | 
|     } | 
|   | 
|     private void writeObject(ObjectOutputStream out) throws IOException { | 
|         out.writeObject(cookie.name()); | 
|         out.writeObject(cookie.value()); | 
|         out.writeLong(cookie.expiresAt()); | 
|         out.writeObject(cookie.domain()); | 
|         out.writeObject(cookie.path()); | 
|         out.writeBoolean(cookie.secure()); | 
|         out.writeBoolean(cookie.httpOnly()); | 
|         out.writeBoolean(cookie.hostOnly()); | 
|         out.writeBoolean(cookie.persistent()); | 
|     } | 
|   | 
|     private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { | 
|         String name = (String) in.readObject(); | 
|         String value = (String) in.readObject(); | 
|         long expiresAt = in.readLong(); | 
|         String domain = (String) in.readObject(); | 
|         String path = (String) in.readObject(); | 
|         boolean secure = in.readBoolean(); | 
|         boolean httpOnly = in.readBoolean(); | 
|         boolean hostOnly = in.readBoolean(); | 
|         boolean persistent = in.readBoolean(); | 
|         Cookie.Builder builder = new Cookie.Builder(); | 
|         builder = builder.name(name); | 
|         builder = builder.value(value); | 
|         builder = builder.expiresAt(expiresAt); | 
|         builder = hostOnly ? builder.hostOnlyDomain(domain) : builder.domain(domain); | 
|         builder = builder.path(path); | 
|         builder = secure ? builder.secure() : builder; | 
|         builder = httpOnly ? builder.httpOnly() : builder; | 
|         clientCookie = builder.build(); | 
|     } | 
| } |