1 /*
2 * Copyright 2009 Red Hat, Inc.
3 *
4 * Red Hat licenses this file to you under the Apache License, version 2.0
5 * (the "License"); you may not use this file except in compliance with the
6 * License. You may obtain a copy of the License at:
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations
14 * under the License.
15 */
16 package org.jboss.netty.handler.codec.http2;
17
18 import java.util.Set;
19
20 /**
21 * An HTTP <a href="http://en.wikipedia.org/wiki/HTTP_cookie">Cookie</a>.
22 *
23 * @author <a href="http://www.jboss.org/netty/">The Netty Project</a>
24 * @author <a href="http://gleamynode.net/">Trustin Lee</a>
25 * @author Andy Taylor (andy.taylor@jboss.org)
26 * @version $Rev: 619 $, $Date: 2010-11-11 20:30:06 +0100 (jeu., 11 nov. 2010) $
27 */
28 public interface Cookie extends Comparable<Cookie> {
29
30 /**
31 * Returns the name of this cookie.
32 */
33 String getName();
34
35 /**
36 * Returns the value of this cookie.
37 */
38 String getValue();
39
40 /**
41 * Sets the value of this cookie.
42 */
43 void setValue(String value);
44
45 /**
46 * Returns the domain of this cookie.
47 */
48 String getDomain();
49
50 /**
51 * Sets the domain of this cookie.
52 */
53 void setDomain(String domain);
54
55 /**
56 * Returns the path of this cookie.
57 */
58 String getPath();
59
60 /**
61 * Sets the path of this cookie.
62 */
63 void setPath(String path);
64
65 /**
66 * Returns the comment of this cookie.
67 */
68 String getComment();
69
70 /**
71 * Sets the comment of this cookie.
72 */
73 void setComment(String comment);
74
75 /**
76 * Returns the max age of this cookie in seconds.
77 */
78 int getMaxAge();
79
80 /**
81 * Sets the max age of this cookie in seconds. If {@code 0} is specified,
82 * this cookie will be removed by browser because it will be expired
83 * immediately. If {@code -1} is specified, this cookie will be removed
84 * when a user terminates browser.
85 */
86 void setMaxAge(int maxAge);
87
88 /**
89 * Returns the version of this cookie.
90 */
91 int getVersion();
92
93 /**
94 * Sets the version of this cookie.
95 */
96 void setVersion(int version);
97
98 /**
99 * Returns the secure flag of this cookie.
100 */
101 boolean isSecure();
102
103 /**
104 * Sets the secure flag of this cookie.
105 */
106 void setSecure(boolean secure);
107
108 /**
109 * Returns if this cookie cannot be accessed through client side script.
110 * This flag works only if the browser supports it. For more information,
111 * see <a href="http://www.owasp.org/index.php/HTTPOnly">here</a>.
112 */
113 boolean isHttpOnly();
114
115 /**
116 * Sets if this cookie cannot be accessed through client side script.
117 * This flag works only if the browser supports it. For more information,
118 * see <a href="http://www.owasp.org/index.php/HTTPOnly">here</a>.
119 */
120 void setHttpOnly(boolean httpOnly);
121
122 /**
123 * Returns the comment URL of this cookie.
124 */
125 String getCommentUrl();
126
127 /**
128 * Sets the comment URL of this cookie.
129 */
130 void setCommentUrl(String commentUrl);
131
132 /**
133 * Returns the discard flag of this cookie.
134 */
135 boolean isDiscard();
136
137 /**
138 * Sets the discard flag of this cookie.
139 */
140 void setDiscard(boolean discard);
141
142 /**
143 * Returns the ports of this cookie.
144 */
145 Set<Integer> getPorts();
146
147 /**
148 * Sets the ports of this cookie.
149 */
150 void setPorts(int... ports);
151
152 /**
153 * Sets the ports of this cookie.
154 */
155 void setPorts(Iterable<Integer> ports);
156 }