/*
 * Copyright 2014 Red Hat, Inc.
 *
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  and Apache License v2.0 which accompanies this distribution.
 *
 *  The Eclipse Public License is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 *
 *  The Apache License v2.0 is available at
 *  http://www.opensource.org/licenses/apache2.0.php
 *
 *  You may elect to redistribute this code under either of these licenses.
 */

package io.vertx.ext.web.impl;

import io.netty.handler.codec.http.cookie.ServerCookieEncoder;
import io.netty.handler.codec.http.cookie.DefaultCookie;
import io.vertx.ext.web.Cookie;


Vert.x-Web cookie implementation
Author:Paulo Lopes, Tim Fox
/** * Vert.x-Web cookie implementation * * @author <a href="http://pmlopes@gmail.com">Paulo Lopes</a> * @author <a href="http://tfox.org">Tim Fox</a> */
public class CookieImpl implements Cookie { private final io.netty.handler.codec.http.cookie.Cookie nettyCookie; private boolean changed; private boolean fromUserAgent; public CookieImpl(String name, String value) { this.nettyCookie = new DefaultCookie(name, value); this.changed = true; } public CookieImpl(io.netty.handler.codec.http.cookie.Cookie nettyCookie) { this.nettyCookie = nettyCookie; fromUserAgent = true; } @Override public String getValue() { return nettyCookie.value(); } @Override public Cookie setValue(final String value) { nettyCookie.setValue(value); this.changed = true; return this; } @Override public String getName() { return nettyCookie.name(); } @Override public Cookie setDomain(final String domain) { nettyCookie.setDomain(domain); this.changed = true; return this; } @Override public String getDomain() { return nettyCookie.domain(); } @Override public Cookie setPath(final String path) { nettyCookie.setPath(path); this.changed = true; return this; } @Override public String getPath() { return nettyCookie.path(); } @Override public Cookie setMaxAge(final long maxAge) { nettyCookie.setMaxAge(maxAge); this.changed = true; return this; } @Override public Cookie setSecure(final boolean secure) { nettyCookie.setSecure(secure); this.changed = true; return this; } @Override public Cookie setHttpOnly(final boolean httpOnly) { nettyCookie.setHttpOnly(httpOnly); this.changed = true; return this; } @Override public String encode() { return ServerCookieEncoder.STRICT.encode(nettyCookie); } @Override public boolean isChanged() { return changed; } @Override public void setChanged(boolean changed) { this.changed = changed; } @Override public boolean isFromUserAgent() { return fromUserAgent; } }