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 }