package io.craft.atom.protocol.http;
import io.craft.atom.protocol.AbstractProtocolCodec;
import io.craft.atom.protocol.ProtocolEncoder;
import io.craft.atom.protocol.ProtocolException;
import io.craft.atom.protocol.http.model.HttpCookie;
import java.nio.charset.Charset;
import lombok.ToString;
/**
* A {@link ProtocolEncoder} which encodes a {@code Cookie} object into bytes follow the HTTP specification, default charset is utf-8.
* <br>
* Thread safe.
*
* @author mindwind
* @version 1.0, Mar 25, 2013
*/
@ToString(callSuper = true)
public class HttpCookieEncoder extends AbstractProtocolCodec implements ProtocolEncoder<HttpCookie> {
public HttpCookieEncoder() {}
public HttpCookieEncoder(Charset charset) {
this.charset = charset;
}
@Override
public byte[] encode(HttpCookie cookie) throws ProtocolException {
if (cookie == null) return null;
String httpString = cookie.toHttpString();
return httpString.getBytes(charset);
}
}