1 /*
2 * ====================================================================
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 * ====================================================================
20 *
21 * This software consists of voluntary contributions made by many
22 * individuals on behalf of the Apache Software Foundation. For more
23 * information on the Apache Software Foundation, please see
24 * <http://www.apache.org/>.
25 *
26 */
27
28 package org.apache.http.cookie;
29
30 import java.util.Date;
31
32 import org.apache.http.annotation.Obsolete;
33
34 /**
35 * This interface represents a {@code Set-Cookie} response header sent by the
36 * origin server to the HTTP agent in order to maintain a conversational state.
37 * <p>
38 * Please do not use methods marked as @Obsolete. They have been rendered
39 * obsolete by RFC 6265
40 *
41 * @since 4.0
42 */
43 public interface SetCookie extends Cookie {
44
45 void setValue(String value);
46
47 /**
48 * If a user agent (web browser) presents this cookie to a user, the
49 * cookie's purpose will be described using this comment.
50 *
51 * @param comment
52 *
53 * @see #getComment()
54 */
55 @Obsolete
56 void setComment(String comment);
57
58 /**
59 * Sets expiration date.
60 * <p><strong>Note:</strong> the object returned by this method is considered
61 * immutable. Changing it (e.g. using setTime()) could result in undefined
62 * behaviour. Do so at your peril.</p>
63 *
64 * @param expiryDate the {@link Date} after which this cookie is no longer valid.
65 *
66 * @see Cookie#getExpiryDate
67 *
68 */
69 void setExpiryDate (Date expiryDate);
70
71 /**
72 * Sets the domain attribute.
73 *
74 * @param domain The value of the domain attribute
75 *
76 * @see Cookie#getDomain
77 */
78 void setDomain(String domain);
79
80 /**
81 * Sets the path attribute.
82 *
83 * @param path The value of the path attribute
84 *
85 * @see Cookie#getPath
86 *
87 */
88 void setPath(String path);
89
90 /**
91 * Sets the secure attribute of the cookie.
92 * <p>
93 * When {@code true} the cookie should only be sent
94 * using a secure protocol (https). This should only be set when
95 * the cookie's originating server used a secure protocol to set the
96 * cookie's value.
97 *
98 * @param secure The value of the secure attribute
99 *
100 * @see #isSecure()
101 */
102 void setSecure (boolean secure);
103
104 /**
105 * Sets the version of the cookie specification to which this
106 * cookie conforms.
107 *
108 * @param version the version of the cookie.
109 *
110 * @see Cookie#getVersion
111 */
112 @Obsolete
113 void setVersion(int version);
114
115 }
116