1 19 20 package jode.util; 21 import java.util.AbstractMap ; 22 import java.util.Map ; 23 import java.util.Iterator ; 24 import java.util.Set ; 25 26 31 public class SimpleMap extends AbstractMap { 32 private Set backing; 33 34 public SimpleMap() { 35 backing = new SimpleSet(); 36 } 37 38 public SimpleMap(int initialCapacity) { 39 backing = new SimpleSet(initialCapacity); 40 } 41 42 public SimpleMap(Set fromSet) { 43 backing = fromSet; 44 } 45 46 public Set entrySet() { 47 return backing; 48 } 49 50 public static class SimpleEntry implements Map.Entry { 51 Object key; 52 Object value; 53 54 public SimpleEntry(Object key, Object value) { 55 this.key = key; 56 this.value = value; 57 } 58 59 public Object getKey() { 60 return key; 61 } 62 63 public Object getValue() { 64 return value; 65 } 66 67 public Object setValue(Object newValue) { 68 Object old = value; 69 value = newValue; 70 return old; 71 } 72 73 public int hashCode() { 74 return key.hashCode() ^ value.hashCode(); 75 } 76 77 public boolean equals(Object o) { 78 if (o instanceof Map.Entry ) { 79 Map.Entry e = (Map.Entry ) o; 80 return key.equals(e.getKey()) && value.equals(e.getValue()); 81 } 82 return false; 83 } 84 } 85 86 public Object put(Object key, Object value) { 87 for (Iterator i = backing.iterator(); 88 i.hasNext(); ) { 89 Map.Entry entry = (Map.Entry ) i.next(); 90 if (key.equals(entry.getKey())) 91 return entry.setValue(value); 92 } 93 backing.add(new SimpleEntry(key, value)); 94 return null; 95 } 96 } 97 98 99 | Popular Tags |