package com.github.dreamhead.moco.parser.model; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.github.dreamhead.moco.CookieAttribute; import com.github.dreamhead.moco.parser.deserializer.CookieContainerDeserializer; import java.util.List; import static com.google.common.collect.Lists.newArrayList; @JsonDeserialize(using = CookieContainerDeserializer.class) public class CookieContainer implements Container { private String value; private String path; private String domain; private LatencyContainer maxAge; private boolean secure; private boolean httpOnly; private String template; public static CookieContainer newContainer(final String text) { CookieContainer container = new CookieContainer(); container.value = text; return container; } public static CookieContainer newContainer(final String text, final String path, final String domain, final LatencyContainer maxAge, final boolean secure, final boolean httpOnly, final String template) { CookieContainer container = new CookieContainer(); container.value = text; container.path = path; container.domain = domain; container.maxAge = maxAge; container.secure = secure; container.httpOnly = httpOnly; container.template = template; return container; } public final String getValue() { return value; } public final boolean isForTemplate() { return this.template != null; } public final String getTemplate() { return template; } public final CookieAttribute[] getOptions() { List<CookieAttribute> options = newArrayList(); if (this.path != null) { options.add(CookieAttribute.path(this.path)); } if (this.domain != null) { options.add(CookieAttribute.domain(this.domain)); } if (this.secure) { options.add(CookieAttribute.secure()); } if (this.httpOnly) { options.add(CookieAttribute.httpOnly()); } if (this.maxAge != null) { options.add(CookieAttribute.maxAge(this.maxAge.getLatency(), this.maxAge.getUnit())); } return options.toArray(new CookieAttribute[options.size()]); } }