1 package com.ibatis.struts.httpmap; 2 3 import java.util.*; 4 5 11 public abstract class BaseHttpMap implements Map { 12 13 public int size() { 14 return keySet().size(); 15 } 16 17 public boolean isEmpty() { 18 return keySet().size() == 0; 19 } 20 21 public boolean containsKey(Object key) { 22 return keySet().contains(key); 23 } 24 25 public boolean containsValue(Object value) { 26 return values().contains(value); 27 } 28 29 public Object get(Object key) { 30 return getValue(key); 31 } 32 33 public Object put(Object key, Object value) { 34 Object old = getValue(key); 35 putValue(key, value); 36 return old; 37 } 38 39 public Object remove(Object key) { 40 Object old = getValue(key); 41 removeValue(key); 42 return old; 43 } 44 45 public void putAll(Map map) { 46 Iterator i = map.keySet().iterator(); 47 while (i.hasNext()) { 48 Object key = i.next(); 49 putValue(key, map.get(key)); 50 } 51 } 52 53 public void clear() { 54 Iterator i = keySet().iterator(); 55 while (i.hasNext()) { 56 removeValue(i.next()); 57 } 58 } 59 60 public Set keySet() { 61 Set keySet = new HashSet(); 62 Enumeration enum = getNames(); 63 while (enum.hasMoreElements()) { 64 keySet.add(enum.nextElement()); 65 } 66 return keySet; 67 } 68 69 public Collection values() { 70 List list = new ArrayList(); 71 Enumeration enum = getNames(); 72 while (enum.hasMoreElements()) { 73 list.add(getValue(enum.nextElement())); 74 } 75 return list; 76 } 77 78 public Set entrySet() { 79 return new HashSet(); 80 } 81 82 83 protected abstract Enumeration getNames(); 84 85 protected abstract Object getValue(Object key); 86 87 protected abstract void putValue(Object key, Object value); 88 89 protected abstract void removeValue(Object key); 90 91 } 92 | Popular Tags |