Frames | No Frames |
1: /* Cookie.java -- 2: Copyright (C) 2004 Free Software Foundation, Inc. 3: 4: This file is part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; see the file COPYING. If not, write to the 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19: 02110-1301 USA. 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: 39: package gnu.java.net.protocol.http; 40: 41: import gnu.java.lang.CPStringBuilder; 42: 43: import java.util.Date; 44: 45: /** 46: * An HTTP cookie, as specified in RFC 2109. 47: * 48: * @author Chris Burdess (dog@gnu.org) 49: */ 50: public class Cookie 51: { 52: 53: /** 54: * The name of the cookie. 55: */ 56: protected final String name; 57: 58: /** 59: * The value of the cookie. 60: */ 61: protected final String value; 62: 63: /** 64: * Optional documentation of the intended use of the cookie. 65: */ 66: protected final String comment; 67: 68: /** 69: * The domain for which the cookie is valid. 70: */ 71: protected final String domain; 72: 73: /** 74: * Optional subset of URL paths within the domain for which the cookie is 75: * valid. 76: */ 77: protected final String path; 78: 79: /** 80: * Indicates that the user-agent should only use secure means to transmit 81: * this cookie to the server. 82: */ 83: protected final boolean secure; 84: 85: /** 86: * The date at which this cookie expires. 87: */ 88: protected final Date expires; 89: 90: public Cookie(String name, String value, String comment, String domain, 91: String path, boolean secure, Date expires) 92: { 93: this.name = name; 94: this.value = value; 95: this.comment = comment; 96: this.domain = domain; 97: this.path = path; 98: this.secure = secure; 99: this.expires = expires; 100: } 101: 102: public String getName() 103: { 104: return name; 105: } 106: 107: public String getValue() 108: { 109: return value; 110: } 111: 112: public String getComment() 113: { 114: return comment; 115: } 116: 117: public String getDomain() 118: { 119: return domain; 120: } 121: 122: public String getPath() 123: { 124: return path; 125: } 126: 127: public boolean isSecure() 128: { 129: return secure; 130: } 131: 132: public Date getExpiryDate() 133: { 134: return expires; 135: } 136: 137: public String toString() 138: { 139: return toString(true, true); 140: } 141: 142: public String toString(boolean showPath, boolean showDomain) 143: { 144: CPStringBuilder buf = new CPStringBuilder(); 145: buf.append(name); 146: buf.append('='); 147: buf.append(value); 148: if (showPath) 149: { 150: buf.append("; $Path="); 151: buf.append(path); 152: } 153: if (showDomain) 154: { 155: buf.append("; $Domain="); 156: buf.append(domain); 157: } 158: return buf.toString(); 159: } 160: 161: }