Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/apache/http/impl/DefaultHttpParams.java


1   /*
2    * $HeadURL: https://svn.apache.org/repos/asf/jakarta/httpcomponents/httpcore/tags/4.0-alpha2/src/java/org/apache/http/impl/DefaultHttpParams.java $
3    * $Revision: 390703 $
4    * $Date: 2006-04-01 19:35:45 +0200 (Sat, 01 Apr 2006) $
5    *
6    * ====================================================================
7    *
8    *  Copyright 1999-2006 The Apache Software Foundation
9    *
10   *  Licensed under the Apache License, Version 2.0 (the "License");
11   *  you may not use this file except in compliance with the License.
12   *  You may obtain a copy of the License at
13   *
14   *      http://www.apache.org/licenses/LICENSE-2.0
15   *
16   *  Unless required by applicable law or agreed to in writing, software
17   *  distributed under the License is distributed on an "AS IS" BASIS,
18   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19   *  See the License for the specific language governing permissions and
20   *  limitations under the License.
21   * ====================================================================
22   *
23   * This software consists of voluntary contributions made by many
24   * individuals on behalf of the Apache Software Foundation.  For more
25   * information on the Apache Software Foundation, please see
26   * <http://www.apache.org/>.
27   *
28   */
29  
30  package org.apache.http.impl;
31  
32  import java.io.Serializable;
33  import java.util.HashMap;
34  
35  import org.apache.http.params.HttpParams;
36  
37  /**
38   * This class represents a collection of HTTP protocol parameters. Protocol parameters
39   * may be linked together to form a hierarchy. If a particular parameter value has not been
40   * explicitly defined in the collection itself, its value will be drawn from the parent 
41   * collection of parameters.
42   * 
43   * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
44   * 
45   * @version $Revision: 390703 $
46   * 
47   * @since 3.0
48   */
49  public class DefaultHttpParams implements HttpParams, Serializable {
50  
51    static final long serialVersionUID = -8296449161405728403L;
52    
53      /** The set of default values to defer to */
54      private HttpParams defaults = null;
55  
56      /** Hash map of HTTP parameters that this collection contains */
57      private HashMap parameters = null;
58      
59      /**
60       * Creates a new collection of parameters with the given parent. 
61       * The collection will defer to its parent for a default value 
62       * if a particular parameter is not explicitly set in the collection
63       * itself.
64       * 
65       * @param defaults the parent collection to defer to, if a parameter
66       * is not explictly set in the collection itself.
67       */
68      public DefaultHttpParams(final HttpParams defaults) {
69          super();
70          this.defaults = defaults; 
71      }
72      
73      public DefaultHttpParams() {
74          this(null);
75      }
76  
77      public synchronized HttpParams getDefaults() {
78          return this.defaults;
79      }
80      
81      public synchronized void setDefaults(final HttpParams params) {
82          this.defaults = params;
83      }
84      
85      public synchronized Object getParameter(final String name) {
86          // See if the parameter has been explicitly defined
87          Object param = null;
88          if (this.parameters != null) {
89              param = this.parameters.get(name);
90          }    
91          if (param != null) {
92              // If so, return
93              return param;
94          } else {
95              // If not, see if defaults are available
96              if (this.defaults != null) {
97                  // Return default parameter value
98                  return this.defaults.getParameter(name);
99              } else {
100                 // Otherwise, return null
101                 return null;
102             }
103         }
104     }
105 
106     public synchronized HttpParams setParameter(final String name, final Object value) {
107         if (this.parameters == null) {
108             this.parameters = new HashMap();
109         }
110         this.parameters.put(name, value);
111         return this;
112     }
113     
114     /**
115      * Assigns the value to all the parameter with the given names
116      * 
117      * @param names array of parameter name
118      * @param value parameter value
119      */ 
120     public synchronized void setParameters(final String[] names, final Object value) {
121         for (int i = 0; i < names.length; i++) {
122             setParameter(names[i], value);
123         }
124     }
125 
126     public long getLongParameter(final String name, long defaultValue) { 
127         Object param = getParameter(name);
128         if (param == null) {
129             return defaultValue;
130         }
131         return ((Long)param).longValue();
132     }
133     
134     public HttpParams setLongParameter(final String name, long value) {
135         setParameter(name, new Long(value));
136         return this;
137     }
138 
139     public int getIntParameter(final String name, int defaultValue) { 
140         Object param = getParameter(name);
141         if (param == null) {
142             return defaultValue;
143         }
144         return ((Integer)param).intValue();
145     }
146     
147     public HttpParams setIntParameter(final String name, int value) {
148         setParameter(name, new Integer(value));
149         return this;
150     }
151 
152     public double getDoubleParameter(final String name, double defaultValue) { 
153         Object param = getParameter(name);
154         if (param == null) {
155             return defaultValue;
156         }
157         return ((Double)param).doubleValue();
158     }
159     
160     public HttpParams setDoubleParameter(final String name, double value) {
161         setParameter(name, new Double(value));
162         return this;
163     }
164 
165     public boolean getBooleanParameter(final String name, boolean defaultValue) { 
166         Object param = getParameter(name);
167         if (param == null) {
168             return defaultValue;
169         }
170         return ((Boolean)param).booleanValue();
171     }
172     
173     public HttpParams setBooleanParameter(final String name, boolean value) {
174         setParameter(name, value ? Boolean.TRUE : Boolean.FALSE);
175         return this;
176     }
177 
178     public boolean isParameterSet(final String name) {
179         return getParameter(name) != null;
180     }
181         
182     public boolean isParameterSetLocally(final String name) {
183         return this.parameters != null && this.parameters.get(name) != null;
184     }
185         
186     public boolean isParameterTrue(final String name) {
187         return getBooleanParameter(name, false);
188     }
189         
190     public boolean isParameterFalse(final String name) {
191         return !getBooleanParameter(name, false);
192     }
193 
194     /**
195      * Removes all parameters from this collection. 
196      */
197     public void clear() {
198         this.parameters = null;
199     }
200 
201 }