View Javadoc

1   /*
2    * $HeadURL: https://svn.apache.org/repos/asf/httpcomponents/oac.hc3x/trunk/src/java/org/apache/commons/httpclient/params/HttpParams.java $
3    * $Revision$
4    * $Date$
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  
31  package org.apache.commons.httpclient.params;
32  
33  /***
34   * This interface represents a collection of HTTP protocol parameters. Protocol parameters
35   * may be linked together to form a hierarchy. If a particular parameter value has not been
36   * explicitly defined in the collection itself, its value will be drawn from the parent 
37   * collection of parameters.
38   *   
39   * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
40   * 
41   * @version $Revision$
42   *
43   * @since 3.0
44   */
45  public interface HttpParams {
46  
47      /*** 
48       * Returns the parent collection that this collection will defer to
49       * for a default value if a particular parameter is not explicitly 
50       * set in the collection itself
51       * 
52       * @return the parent collection to defer to, if a particular parameter
53       * is not explictly set in the collection itself.
54       * 
55       * @see #setDefaults(HttpParams)
56       */
57      public HttpParams getDefaults();
58  
59      /*** 
60       * Assigns the parent collection that this collection will defer to
61       * for a default value if a particular parameter is not explicitly 
62       * set in the collection itself
63       * 
64       * @param params the parent collection to defer to, if a particular 
65       * parameter is not explictly set in the collection itself.
66       * 
67       * @see #getDefaults()
68       */
69      public void setDefaults(final HttpParams params);
70      
71      /*** 
72       * Returns a parameter value with the given name. If the parameter is
73       * not explicitly defined in this collection, its value will be drawn 
74       * from a higer level collection at which this parameter is defined.
75       * If the parameter is not explicitly set anywhere up the hierarchy,
76       * <tt>null</tt> value is returned.  
77       * 
78       * @param name the parent name.
79       * 
80       * @return an object that represents the value of the parameter.
81       * 
82       * @see #setParameter(String, Object)
83       */
84      public Object getParameter(final String name);
85  
86      /***
87       * Assigns the value to the parameter with the given name
88       * 
89       * @param name parameter name
90       * @param value parameter value
91       */ 
92      public void setParameter(final String name, final Object value);
93      
94      /*** 
95       * Returns a {@link Long} parameter value with the given name. 
96       * If the parameter is not explicitly defined in this collection, its 
97       * value will be drawn from a higer level collection at which this parameter 
98       * is defined. If the parameter is not explicitly set anywhere up the hierarchy,
99       * the default value is returned.  
100      * 
101      * @param name the parent name.
102      * @param defaultValue the default value.
103      * 
104      * @return a {@link Long} that represents the value of the parameter.
105      * 
106      * @see #setLongParameter(String, long)
107      */
108     public long getLongParameter(final String name, long defaultValue); 
109     
110     /***
111      * Assigns a {@link Long} to the parameter with the given name
112      * 
113      * @param name parameter name
114      * @param value parameter value
115      */ 
116     public void setLongParameter(final String name, long value);
117 
118     /*** 
119      * Returns an {@link Integer} parameter value with the given name. 
120      * If the parameter is not explicitly defined in this collection, its 
121      * value will be drawn from a higer level collection at which this parameter 
122      * is defined. If the parameter is not explicitly set anywhere up the hierarchy,
123      * the default value is returned.  
124      * 
125      * @param name the parent name.
126      * @param defaultValue the default value.
127      * 
128      * @return a {@link Integer} that represents the value of the parameter.
129      * 
130      * @see #setIntParameter(String, int)
131      */
132     public int getIntParameter(final String name, int defaultValue); 
133     
134     /***
135      * Assigns an {@link Integer} to the parameter with the given name
136      * 
137      * @param name parameter name
138      * @param value parameter value
139      */ 
140     public void setIntParameter(final String name, int value);
141 
142     /*** 
143      * Returns a {@link Double} parameter value with the given name. 
144      * If the parameter is not explicitly defined in this collection, its 
145      * value will be drawn from a higer level collection at which this parameter 
146      * is defined. If the parameter is not explicitly set anywhere up the hierarchy,
147      * the default value is returned.  
148      * 
149      * @param name the parent name.
150      * @param defaultValue the default value.
151      * 
152      * @return a {@link Double} that represents the value of the parameter.
153      * 
154      * @see #setDoubleParameter(String, double)
155      */
156     public double getDoubleParameter(final String name, double defaultValue); 
157     
158     /***
159      * Assigns a {@link Double} to the parameter with the given name
160      * 
161      * @param name parameter name
162      * @param value parameter value
163      */ 
164     public void setDoubleParameter(final String name, double value);
165 
166     /*** 
167      * Returns a {@link Boolean} parameter value with the given name. 
168      * If the parameter is not explicitly defined in this collection, its 
169      * value will be drawn from a higer level collection at which this parameter 
170      * is defined. If the parameter is not explicitly set anywhere up the hierarchy,
171      * the default value is returned.  
172      * 
173      * @param name the parent name.
174      * @param defaultValue the default value.
175      * 
176      * @return a {@link Boolean} that represents the value of the parameter.
177      * 
178      * @see #setBooleanParameter(String, boolean)
179      */
180     public boolean getBooleanParameter(final String name, boolean defaultValue); 
181     
182     /***
183      * Assigns a {@link Boolean} to the parameter with the given name
184      * 
185      * @param name parameter name
186      * @param value parameter value
187      */ 
188     public void setBooleanParameter(final String name, boolean value);
189 
190     /***
191      * Returns <tt>true</tt> if the parameter is set at any level, <tt>false</tt> otherwise.
192      * 
193      * @param name parameter name
194      * 
195      * @return <tt>true</tt> if the parameter is set at any level, <tt>false</tt>
196      * otherwise.
197      */
198     public boolean isParameterSet(final String name);
199         
200     /***
201      * Returns <tt>true</tt> if the parameter is set locally, <tt>false</tt> otherwise.
202      * 
203      * @param name parameter name
204      * 
205      * @return <tt>true</tt> if the parameter is set locally, <tt>false</tt>
206      * otherwise.
207      */
208     public boolean isParameterSetLocally(final String name);
209         
210     /***
211      * Returns <tt>true</tt> if the parameter is set and is <tt>true</tt>, <tt>false</tt>
212      * otherwise.
213      * 
214      * @param name parameter name
215      * 
216      * @return <tt>true</tt> if the parameter is set and is <tt>true</tt>, <tt>false</tt>
217      * otherwise.
218      */
219     public boolean isParameterTrue(final String name);
220         
221     /***
222      * Returns <tt>true</tt> if the parameter is either not set or is <tt>false</tt>, 
223      * <tt>false</tt> otherwise.
224      * 
225      * @param name parameter name
226      * 
227      * @return <tt>true</tt> if the parameter is either not set or is <tt>false</tt>, 
228      * <tt>false</tt> otherwise.
229      */
230     public boolean isParameterFalse(final String name);
231 
232 }