1 16 17 package org.apache.taglibs.standard.lang.jstl; 18 19 import java.util.Collection ; 20 import java.util.Enumeration ; 21 import java.util.HashMap ; 22 import java.util.Map ; 23 import java.util.Set ; 24 25 39 40 public abstract class EnumeratedMap 41 implements Map 42 { 43 47 Map mMap; 48 49 public void clear () 51 { 52 throw new UnsupportedOperationException (); 53 } 54 55 public boolean containsKey (Object pKey) 57 { 58 return getValue (pKey) != null; 59 } 60 61 public boolean containsValue (Object pValue) 63 { 64 return getAsMap ().containsValue (pValue); 65 } 66 67 public Set entrySet () 69 { 70 return getAsMap ().entrySet (); 71 } 72 73 public Object get (Object pKey) 75 { 76 return getValue (pKey); 77 } 78 79 public boolean isEmpty () 81 { 82 return !enumerateKeys ().hasMoreElements (); 83 } 84 85 public Set keySet () 87 { 88 return getAsMap ().keySet (); 89 } 90 91 public Object put (Object pKey, Object pValue) 93 { 94 throw new UnsupportedOperationException (); 95 } 96 97 public void putAll (Map pMap) 99 { 100 throw new UnsupportedOperationException (); 101 } 102 103 public Object remove (Object pKey) 105 { 106 throw new UnsupportedOperationException (); 107 } 108 109 public int size () 111 { 112 return getAsMap ().size (); 113 } 114 115 public Collection values () 117 { 118 return getAsMap ().values (); 119 } 120 121 128 public abstract Enumeration enumerateKeys (); 129 130 135 public abstract boolean isMutable (); 136 137 143 public abstract Object getValue (Object pKey); 144 145 151 public Map getAsMap () 152 { 153 if (mMap != null) { 154 return mMap; 155 } 156 else { 157 Map m = convertToMap (); 158 if (!isMutable ()) { 159 mMap = m; 160 } 161 return m; 162 } 163 } 164 165 170 Map convertToMap () 171 { 172 Map ret = new HashMap (); 173 for (Enumeration e = enumerateKeys (); e.hasMoreElements (); ) { 174 Object key = e.nextElement (); 175 Object value = getValue (key); 176 ret.put (key, value); 177 } 178 return ret; 179 } 180 181 } 183 | Popular Tags |