1/* 2 * $HeadURL: http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/params/DefaultedHttpParams.java $ 3 * $Revision: 610763 $ 4 * $Date: 2008-01-10 04:01:13 -0800 (Thu, 10 Jan 2008) $ 5 * 6 * ==================================================================== 7 * Licensed to the Apache Software Foundation (ASF) under one 8 * or more contributor license agreements. See the NOTICE file 9 * distributed with this work for additional information 10 * regarding copyright ownership. The ASF licenses this file 11 * to you under the Apache License, Version 2.0 (the 12 * "License"); you may not use this file except in compliance 13 * with 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, 18 * software distributed under the License is distributed on an 19 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 20 * KIND, either express or implied. See the License for the 21 * specific language governing permissions and limitations 22 * under the License. 23 * ==================================================================== 24 * 25 * This software consists of voluntary contributions made by many 26 * individuals on behalf of the Apache Software Foundation. For more 27 * information on the Apache Software Foundation, please see 28 * <http://www.apache.org/>. 29 * 30 */ 31 32package org.apache.http.params; 33 34import org.apache.http.params.HttpParams; 35 36/** 37 * {@link HttpParams} implementation that delegates resolution of a parameter 38 * to the given default {@link HttpParams} instance if the parameter is not 39 * present in the local one. The state of the local collection can be mutated, 40 * whereas the default collection is treated as read-only. 41 * 42 * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a> 43 * 44 * @version $Revision: 610763 $ 45 * 46 * @deprecated Please use {@link java.net.URL#openConnection} instead. 47 * Please visit <a href="http://android-developers.blogspot.com/2011/09/androids-http-clients.html">this webpage</a> 48 * for further details. 49 */ 50@Deprecated 51public final class DefaultedHttpParams extends AbstractHttpParams { 52 53 private final HttpParams local; 54 private final HttpParams defaults; 55 56 public DefaultedHttpParams(final HttpParams local, final HttpParams defaults) { 57 super(); 58 if (local == null) { 59 throw new IllegalArgumentException("HTTP parameters may not be null"); 60 } 61 this.local = local; 62 this.defaults = defaults; 63 } 64 65 /** 66 * Creates a copy of the local collection with the same default 67 */ 68 public HttpParams copy() { 69 HttpParams clone = this.local.copy(); 70 return new DefaultedHttpParams(clone, this.defaults); 71 } 72 73 /** 74 * Retrieves the value of the parameter from the local collection and, if the 75 * parameter is not set locally, delegates its resolution to the default 76 * collection. 77 */ 78 public Object getParameter(final String name) { 79 Object obj = this.local.getParameter(name); 80 if (obj == null && this.defaults != null) { 81 obj = this.defaults.getParameter(name); 82 } 83 return obj; 84 } 85 86 /** 87 * Attempts to remove the parameter from the local collection. This method 88 * <i>does not</i> modify the default collection. 89 */ 90 public boolean removeParameter(final String name) { 91 return this.local.removeParameter(name); 92 } 93 94 /** 95 * Sets the parameter in the local collection. This method <i>does not</i> 96 * modify the default collection. 97 */ 98 public HttpParams setParameter(final String name, final Object value) { 99 return this.local.setParameter(name, value); 100 } 101 102 public HttpParams getDefaults() { 103 return this.defaults; 104 } 105 106} 107