View Javadoc

1   /*
2    * $HeadURL:https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/CookieAttributeHandler.java $
3    * $Revision:400312 $
4    * $Date:2006-05-06 14:49:41 +0200 (Sat, 06 May 2006) $
5    *
6    * ====================================================================
7    *
8    *  Licensed to the Apache Software Foundation (ASF) under one or more
9    *  contributor license agreements.  See the NOTICE file distributed with
10   *  this work for additional information regarding copyright ownership.
11   *  The ASF licenses this file to You under the Apache License, Version 2.0
12   *  (the "License"); you may not use this file except in compliance with
13   *  the License.  You may obtain a copy of the License at
14   *
15   *      http://www.apache.org/licenses/LICENSE-2.0
16   *
17   *  Unless required by applicable law or agreed to in writing, software
18   *  distributed under the License is distributed on an "AS IS" BASIS,
19   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20   *  See the License for the specific language governing permissions and
21   *  limitations under the License.
22   * ====================================================================
23   *
24   * This software consists of voluntary contributions made by many
25   * individuals on behalf of the Apache Software Foundation.  For more
26   * information on the Apache Software Foundation, please see
27   * <http://www.apache.org/>.
28   *
29   */
30  package org.apache.commons.httpclient.cookie;
31  
32  import org.apache.commons.httpclient.Cookie;
33  
34  /***
35   * Ths interface represents a cookie attribute handler responsible
36   * for parsing, validating, and matching a specific cookie attribute, 
37   * such as path, domain, port, etc.
38   *
39   * Different cookie specifications can provide a specific
40   * implementation for this class based on their cookie handling
41   * rules.
42   *
43   * @author jain.samit@gmail.com (Samit Jain)
44   * 
45   * @since 3.1
46   */
47  public interface CookieAttributeHandler {
48  
49    /***
50     * Parse the given cookie attribute value and update the corresponding
51     * {@link org.apache.commons.httpclient.Cookie} property.
52     *
53     * @param cookie {@link org.apache.commons.httpclient.Cookie} to be updated
54     * @param value cookie attribute value from the cookie response header
55     */
56    void parse(Cookie cookie, String value)
57            throws MalformedCookieException;
58  
59    /***
60     * Peforms cookie validation for the given attribute value.
61     *
62     * @param cookie {@link org.apache.commons.httpclient.Cookie} to validate
63     * @param origin the cookie source to validate against
64     * @throws MalformedCookieException if cookie validation fails for this attribute
65     */
66    void validate(Cookie cookie, CookieOrigin origin)
67            throws MalformedCookieException;
68  
69    /***
70     * Matches the given value (property of the destination host where request is being
71     * submitted) with the corresponding cookie attribute.
72     *
73     * @param cookie {@link org.apache.commons.httpclient.Cookie} to match
74     * @param origin the cookie source to match against
75     * @return <tt>true</tt> if the match is successful; <tt>false</tt> otherwise
76     */
77    boolean match(Cookie cookie, CookieOrigin origin);
78  
79  }