View Javadoc

    1   /*
    2    * $Id: ContextWrapper.java 471754 2006-11-06 14:55:09Z husted $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21  package org.apache.struts.chain.contexts;
    22
    23  import org.apache.commons.chain.Context;
    24
    25  import java.util.Collection;
    26  import java.util.Map;
    27  import java.util.Set;
    28
    29  /**
    30   * <p> Provide a base class for any Context Implementation which is primarily
    31   * intended for use in a subchain. </p> <p> Classes which extend
    32   * <code>ContextWrapper</code> may implement typesafe property methods which
    33   * also leave their values in the underlying context. </p>
    34   */
    35  public class ContextWrapper implements Context {
    36      private Context base;
    37
    38      /**
    39       * <p> Instantiate object as a composite around the given Context. </p>
    40       *
    41       * @param context Context instance to wrap
    42       */
    43      public ContextWrapper(Context context) {
    44          this.base = context;
    45      }
    46
    47      /**
    48       * Provide the underlying Context for this composite.
    49       *
    50       * @return The undelrying Context
    51       */
    52      protected Context getBaseContext() {
    53          return this.base;
    54      }
    55
    56      // -------------------------------
    57      // Map interface methods
    58      // -------------------------------
    59      public Set entrySet() {
    60          return this.base.entrySet();
    61      }
    62
    63      public Set keySet() {
    64          return this.base.keySet();
    65      }
    66
    67      public Collection values() {
    68          return this.base.values();
    69      }
    70
    71      public void clear() {
    72          this.base.clear();
    73      }
    74
    75      public void putAll(Map map) {
    76          // ISSUE: Should we check this call to putAll?
    77          this.base.putAll(map);
    78      }
    79
    80      public Object remove(Object key) {
    81          return this.base.remove(key);
    82      }
    83
    84      public Object put(Object key, Object value) {
    85          // ISSUE: Should we check this call to put?
    86          return this.base.put(key, value);
    87      }
    88
    89      public Object get(Object key) {
    90          return this.base.get(key);
    91      }
    92
    93      public boolean containsValue(Object o) {
    94          return this.base.containsValue(o);
    95      }
    96
    97      public boolean containsKey(Object o) {
    98          return this.base.containsKey(o);
    99      }
    100
    101     public boolean isEmpty() {
    102         return this.base.isEmpty();
    103     }
    104
    105     public int size() {
    106         return this.base.size();
    107     }
    108 }