You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2006/05/07 22:30:43 UTC

svn commit: r404843 - /jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/CookieSpec.java

Author: olegk
Date: Sun May  7 13:30:41 2006
New Revision: 404843

URL: http://svn.apache.org/viewcvs?rev=404843&view=rev
Log:
Simplified CookieSpec API (the first take)

Modified:
    jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/CookieSpec.java

Modified: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/CookieSpec.java
URL: http://svn.apache.org/viewcvs/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/CookieSpec.java?rev=404843&r1=404842&r2=404843&view=diff
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/CookieSpec.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/CookieSpec.java Sun May  7 13:30:41 2006
@@ -29,8 +29,6 @@
 
 package org.apache.http.cookie;
 
-import java.util.Collection;
-
 import org.apache.http.Header;
 
 /**
@@ -43,41 +41,13 @@
  * </ul>
  * for a given host, port and path of origin
  * 
- * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
+ * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
  * @author <a href="mailto:jsdever@apache.org">Jeff Dever</a>
  *
  * @since 2.0
  */
 public interface CookieSpec {    
 
-    /** Path delimiter */
-    static final String PATH_DELIM = "/";
-
-    /** Path delimiting charachter */
-    static final char PATH_DELIM_CHAR = PATH_DELIM.charAt(0);
-
-    /**
-      * Parse the <tt>"Set-Cookie"</tt> header value into Cookie array.
-      * 
-      * <p>This method will not perform the validation of the resultant
-      * {@link Cookie}s</p> 
-      *
-      * @see #validate(String, int, String, boolean, Cookie)
-      *
-      * @param host the host which sent the <tt>Set-Cookie</tt> header
-      * @param port the port which sent the <tt>Set-Cookie</tt> header
-      * @param path the path which sent the <tt>Set-Cookie</tt> header
-      * @param secure <tt>true</tt> when the <tt>Set-Cookie</tt> header 
-      *  was received over secure conection
-      * @param header the <tt>Set-Cookie</tt> received from the server
-      * @return an array of <tt>Cookie</tt>s parsed from the Set-Cookie value
-      * @throws MalformedCookieException if an exception occurs during parsing
-      * @throws IllegalArgumentException if an input parameter is illegal
-      */
-    Cookie[] parse(String host, int port, String path, boolean secure,
-      final String header)
-      throws MalformedCookieException, IllegalArgumentException;
-
     /**
       * Parse the <tt>"Set-Cookie"</tt> Header into an array of Cookies.
       *
@@ -86,118 +56,41 @@
       *
       * @see #validate(String, int, String, boolean, Cookie)
       *
-      * @param host the host which sent the <tt>Set-Cookie</tt> header
-      * @param port the port which sent the <tt>Set-Cookie</tt> header
-      * @param path the path which sent the <tt>Set-Cookie</tt> header
-      * @param secure <tt>true</tt> when the <tt>Set-Cookie</tt> header 
-      *  was received over secure conection
       * @param header the <tt>Set-Cookie</tt> received from the server
+      * @param origin details of the cookie origin
       * @return an array of <tt>Cookie</tt>s parsed from the header
       * @throws MalformedCookieException if an exception occurs during parsing
-      * @throws IllegalArgumentException if an input parameter is illegal
       */
-    Cookie[] parse(String host, int port, String path, boolean secure, 
-      final Header header)
-      throws MalformedCookieException, IllegalArgumentException;
+    Cookie[] parse(Header header, CookieOrigin origin) throws MalformedCookieException;
 
     /**
       * Validate the cookie according to validation rules defined by the 
       *  cookie specification.
       *
-      * @param host the host from which the {@link Cookie} was received
-      * @param port the port from which the {@link Cookie} was received
-      * @param path the path from which the {@link Cookie} was received
-      * @param secure <tt>true</tt> when the {@link Cookie} was received 
-      *  using a secure connection
       * @param cookie the Cookie to validate
+      * @param origin details of the cookie origin
       * @throws MalformedCookieException if the cookie is invalid
-      * @throws IllegalArgumentException if an input parameter is illegal
       */
-    void validate(String host, int port, String path, boolean secure, 
-      final Cookie cookie) 
-      throws MalformedCookieException, IllegalArgumentException;
-    
-    
-    /**
-     * Sets the {@link Collection} of date patterns used for parsing. The String patterns must be 
-     * compatible with {@link java.text.SimpleDateFormat}.
-     *
-     * @param datepatterns collection of date patterns
-     */
-    void setValidDateFormats(Collection datepatterns);
-    
-    /**
-     * Returns the {@link Collection} of date patterns used for parsing. The String patterns are compatible 
-     * with the {@link java.text.SimpleDateFormat}.
-     *
-     * @return collection of date patterns
-     */
-    Collection getValidDateFormats();
+    void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException;
     
     /**
-     * Determines if a Cookie matches a location.
+     * Determines if a Cookie matches the target location.
      *
-     * @param host the host to which the request is being submitted
-     * @param port the port to which the request is being submitted
-     * @param path the path to which the request is being submitted
-     * @param secure <tt>true</tt> if the request is using a secure connection
      * @param cookie the Cookie to be matched
-     *
+     * @param origin the target to test against
+     * 
      * @return <tt>true</tt> if the cookie should be submitted with a request 
      *  with given attributes, <tt>false</tt> otherwise.
      */
-    boolean match(String host, int port, String path, boolean secure,
-        final Cookie cookie);
-
-    /**
-     * Determines which of an array of Cookies matches a location.
-     *
-     * @param host the host to which the request is being submitted
-     * @param port the port to which the request is being submitted 
-     *  (currenlty ignored)
-     * @param path the path to which the request is being submitted
-     * @param secure <tt>true</tt> if the request is using a secure protocol
-     * @param cookies an array of <tt>Cookie</tt>s to be matched
-     *
-     * @return <tt>true</tt> if the cookie should be submitted with a request 
-     *  with given attributes, <tt>false</tt> otherwise.
-     */
-    Cookie[] match(String host, int port, String path, boolean secure, 
-        final Cookie cookies[]);
-
-    /**
-     * Create a <tt>"Cookie"</tt> header value for an array of cookies.
-     *
-     * @param cookie the cookie to be formatted as string
-     * @return a string suitable for sending in a <tt>"Cookie"</tt> header.
-     */
-    String formatCookie(Cookie cookie);
+    boolean match(Cookie cookie, CookieOrigin origin);
 
     /**
-     * Create a <tt>"Cookie"</tt> header value for an array of cookies.
-     *
-     * @param cookies the Cookies to be formatted
-     * @return a string suitable for sending in a Cookie header.
-     * @throws IllegalArgumentException if an input parameter is illegal
-     */
-    String formatCookies(Cookie[] cookies) throws IllegalArgumentException;
-    
-    /**
-     * Create a <tt>"Cookie"</tt> Header for an array of Cookies.
+     * Create <tt>"Cookie"</tt> headers for an array of Cookies.
      *
      * @param cookies the Cookies format into a Cookie header
      * @return a Header for the given Cookies.
      * @throws IllegalArgumentException if an input parameter is illegal
      */
-    Header formatCookieHeader(Cookie[] cookies) throws IllegalArgumentException;
-
-    /**
-     * Create a <tt>"Cookie"</tt> Header for single Cookie.
-     *
-     * @param cookie the Cookie format as a <tt>Cookie</tt> header
-     * @return a Cookie header.
-     * @throws IllegalArgumentException if an input parameter is illegal
-     */
-    Header formatCookieHeader(Cookie cookie) throws IllegalArgumentException;
+    Header[] formatCookies(Cookie[] cookies);
 
 }