javax.ws.rs.core.Cookie Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
Ehcache is an open source, standards-based cache used to boost performance,
offload the database and simplify scalability. Ehcache is robust, proven and full-featured and
this has made it the most widely-used Java-based cache.
/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php
* See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Cookie.java
*
* Created on March 12, 2007, 5:01 PM
*
*/
package javax.ws.rs.core;
import javax.ws.rs.ext.RuntimeDelegate;
import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate;
/**
* Represents the value of a HTTP cookie, transferred in a request.
* RFC 2109 specifies the legal characters for name,
* value, path and domain. The default version of 1 corresponds to RFC 2109.
* @see IETF RFC 2109
*/
public class Cookie {
/**
* Cookies using the default version correspond to RFC 2109.
*/
public static final int DEFAULT_VERSION = 1;
private static final HeaderDelegate delegate =
RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class);
private String name;
private String value;
private int version;
private String path;
private String domain;
/**
* Create a new instance.
* @param name the name of the cookie
* @param value the value of the cookie
* @param path the URI path for which the cookie is valid
* @param domain the host domain for which the cookie is valid
* @param version the version of the specification to which the cookie complies
* @throws IllegalArgumentException if name is null
*/
public Cookie(String name, String value, String path, String domain, int version) {
if (name == null)
throw new IllegalArgumentException("name==null");
this.name = name;
this.value = value;
this.version = version;
this.domain = domain;
this.path = path;
}
/**
* Create a new instance.
* @param name the name of the cookie
* @param value the value of the cookie
* @param path the URI path for which the cookie is valid
* @param domain the host domain for which the cookie is valid
* @throws IllegalArgumentException if name is null
*/
public Cookie(String name, String value, String path, String domain) {
this(name, value, path, domain, DEFAULT_VERSION);
}
/**
* Create a new instance.
* @param name the name of the cookie
* @param value the value of the cookie
* @throws IllegalArgumentException if name is null
*/
public Cookie(String name, String value) {
this(name, value, null, null);
}
/**
* Creates a new instance of Cookie by parsing the supplied string.
* @param value the cookie string
* @return the newly created Cookie
* @throws IllegalArgumentException if the supplied string cannot be parsed
* or is null
*/
public static Cookie valueOf(String value) throws IllegalArgumentException {
return delegate.fromString(value);
}
/**
* Get the name of the cookie
* @return the name
*/
public String getName() {
return name;
}
/**
* Get the value of the cookie
* @return the value
*/
public String getValue() {
return value;
}
/**
* Get the version of the cookie
* @return the version
*/
public int getVersion() {
return version;
}
/**
* Get the domain of the cookie
* @return the domain
*/
public String getDomain() {
return domain;
}
/**
* Get the path of the cookie
* @return the path
*/
public String getPath() {
return path;
}
/**
* Convert the cookie to a string suitable for use as the value of the
* corresponding HTTP header.
* @return a stringified cookie
*/
@Override
public String toString() {
return delegate.toString(this);
}
/**
* Generate a hashcode by hashing all of the cookies properties
* @return the hashcode
*/
@Override
public int hashCode() {
int hash = 7;
hash = 97 * hash + (this.name != null ? this.name.hashCode() : 0);
hash = 97 * hash + (this.value != null ? this.value.hashCode() : 0);
hash = 97 * hash + this.version;
hash = 97 * hash + (this.path != null ? this.path.hashCode() : 0);
hash = 97 * hash + (this.domain != null ? this.domain.hashCode() : 0);
return hash;
}
/**
* Compare for equality
* @param obj the object to compare to
* @return true if the object is a {@code Cookie} with the same value for
* all properties, false otherwise.
*/
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Cookie other = (Cookie) obj;
if (this.name != other.name && (this.name == null || !this.name.equals(other.name))) {
return false;
}
if (this.value != other.value && (this.value == null || !this.value.equals(other.value))) {
return false;
}
if (this.version != other.version) {
return false;
}
if (this.path != other.path && (this.path == null || !this.path.equals(other.path))) {
return false;
}
if (this.domain != other.domain && (this.domain == null || !this.domain.equals(other.domain))) {
return false;
}
return true;
}
}