Home » HttpComponents-Core-4.0.1 » org.apache.http.impl » [javadoc | source]

    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   }

Home » HttpComponents-Core-4.0.1 » org.apache.http.impl » [javadoc | source]