package org.etk.core.rest.impl.header;
import java.util.List;
import javax.ws.rs.core.Cookie;
import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate;
public class CookieHeaderDelegate extends AbstractHeaderDelegate<Cookie> {
/**
* {@inheritDoc}
*/
@Override
public Class<Cookie> support() {
return Cookie.class;
}
/**
* {@inheritDoc}
*/
public Cookie fromString(String header) {
if (header == null)
throw new IllegalArgumentException();
List<Cookie> l = HeaderHelper.parseCookies(header);
if (l.size() > 0) // waiting for one cookie
return l.get(0);
return null;
}
/**
* {@inheritDoc}
*/
public String toString(Cookie cookie) {
StringBuilder sb = new StringBuilder();
sb.append("$Version=").append(cookie.getVersion()).append(';');
sb.append(cookie.getName()).append('=').append(HeaderHelper.addQuotesIfHasWhitespace(cookie.getValue()));
if (cookie.getDomain() != null)
sb.append(';').append("$Domain=").append(HeaderHelper.addQuotesIfHasWhitespace(cookie.getDomain()));
if (cookie.getPath() != null)
sb.append(';').append("$Path=").append(HeaderHelper.addQuotesIfHasWhitespace(cookie.getPath()));
return sb.toString();
}
}