View Javadoc

    1   //========================================================================
    2   //$Id: AttributesMap.java,v 1.3 2005/11/14 17:45:52 gregwilkins Exp $
    3   //Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.
    4   //------------------------------------------------------------------------
    5   //Licensed under the Apache License, Version 2.0 (the "License");
    6   //you may not use this file except in compliance with the License.
    7   //You may obtain a copy of the License at
    8   //http://www.apache.org/licenses/LICENSE-2.0
    9   //Unless required by applicable law or agreed to in writing, software
    10  //distributed under the License is distributed on an "AS IS" BASIS,
    11  //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  //See the License for the specific language governing permissions and
    13  //limitations under the License.
    14  //========================================================================
    15
    16  package org.mortbay.util;
    17
    18  import java.util.ArrayList;
    19  import java.util.Collections;
    20  import java.util.Enumeration;
    21  import java.util.HashMap;
    22  import java.util.Map;
    23
    24  /* ------------------------------------------------------------ */
    25  /** AttributesMap.
    26   * @author gregw
    27   *
    28   */
    29  public class AttributesMap implements Attributes
    30  {
    31      Map _map;
    32
    33      /* ------------------------------------------------------------ */
    34      public AttributesMap()
    35      {
    36          _map=new HashMap();
    37      }
    38
    39      /* ------------------------------------------------------------ */
    40      public AttributesMap(Map map)
    41      {
    42          _map=map;
    43      }
    44
    45      /* ------------------------------------------------------------ */
    46      /*
    47       * @see org.mortbay.util.Attributes#removeAttribute(java.lang.String)
    48       */
    49      public void removeAttribute(String name)
    50      {
    51          _map.remove(name);
    52      }
    53
    54      /* ------------------------------------------------------------ */
    55      /*
    56       * @see org.mortbay.util.Attributes#setAttribute(java.lang.String, java.lang.Object)
    57       */
    58      public void setAttribute(String name, Object attribute)
    59      {
    60          if (attribute==null)
    61              _map.remove(name);
    62          else
    63              _map.put(name, attribute);
    64      }
    65
    66      /* ------------------------------------------------------------ */
    67      /*
    68       * @see org.mortbay.util.Attributes#getAttribute(java.lang.String)
    69       */
    70      public Object getAttribute(String name)
    71      {
    72          return _map.get(name);
    73      }
    74
    75      /* ------------------------------------------------------------ */
    76      /*
    77       * @see org.mortbay.util.Attributes#getAttributeNames()
    78       */
    79      public Enumeration getAttributeNames()
    80      {
    81          return Collections.enumeration(_map.keySet());
    82      }
    83
    84      /* ------------------------------------------------------------ */
    85      /*
    86       * @see org.mortbay.util.Attributes#getAttributeNames()
    87       */
    88      public static Enumeration getAttributeNamesCopy(Attributes attrs)
    89      {
    90          if (attrs instanceof AttributesMap)
    91              return Collections.enumeration(((AttributesMap)attrs)._map.keySet());
    92          ArrayList names = new ArrayList();
    93          Enumeration e = attrs.getAttributeNames();
    94          while (e.hasMoreElements())
    95              names.add(e.nextElement());
    96          return Collections.enumeration(names);
    97      }
    98
    99      /* ------------------------------------------------------------ */
    100     /*
    101      * @see org.mortbay.util.Attributes#clear()
    102      */
    103     public void clearAttributes()
    104     {
    105         _map.clear();
    106     }
    107
    108     /* ------------------------------------------------------------ */
    109     public String toString()
    110     {
    111         return _map.toString();
    112     }
    113
    114
    115 }