1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 }