01: /*
02: * CookieCollection.java February 2001
03: *
04: * Copyright (C) 2001, Niall Gallagher <niallg@users.sf.net>
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation.
09: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: * GNU Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General
16: * Public License along with this library; if not, write to the
17: * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18: * Boston, MA 02111-1307 USA
19: */
20:
21: package simple.util.net;
22:
23: import java.io.Serializable;
24:
25: /**
26: * The <code>CookieCollection</code> object is used to represent
27: * a collection of one or more <code>Cookie</code>'s. This
28: * collection of cookies iterates through the set of cookies
29: * using the <code>hasMore</code> and <code>next</code> methods.
30: * The <code>reset</code> method is used to start from the first
31: * cookie. This allows the collection to be used again.
32: * <p>
33: * The <code>CookieCollection</code> is <code>Serializable</code>
34: * so it can be stored. This allows the user to keep the cookies
35: * from the list for permenant storage. This does not extend the
36: * <tt>Collection</tt> interface because it is a simple iterator
37: * that is used with the <tt>CookieParser</tt> object.
38: *
39: * @author Niall Gallagher
40: */
41: public interface CookieCollection extends Serializable {
42:
43: /**
44: * This is used to determine wheather or not there are any
45: * more <code>Cookies</code> left in the collection. If this
46: * returns false the collection may be reiterated through
47: * using the <code>reset</code> method. If this returns true
48: * then the <code>next</code> method will produce a valid
49: * <code>Cookie</code> object.
50: *
51: * @return this returns true if there are any more left
52: */
53: public boolean hasMore();
54:
55: /**
56: * The <code>next</code> method is used to retrive the next
57: * <code>Cookie</code> in the list. This guarantees to return
58: * a valid <code>Cookie</code> if the <code>hasMore</code>
59: * method returns true.
60: *
61: * @return this returns a valid <code>Cookie</code> object
62: * if the <code>hasMore</code> method returns true
63: */
64: public Cookie next();
65:
66: /**
67: * This is used so that the collection of <code>Cookies</code>
68: * can be reiterated. This allows the collection to be reused.
69: */
70: public void reset();
71: }
|