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