1 14 package org.compiere.model; 15 16 import java.util.*; 17 import java.io.Serializable ; 18 19 import org.compiere.util.*; 20 21 29 public final class MultiMap implements Map, Serializable 30 { 31 34 public MultiMap() 35 { 36 this(10); 37 } 39 42 public MultiMap(int initialCapacity) 43 { 44 m_keys = new ArrayList(initialCapacity); 45 m_values = new ArrayList(initialCapacity); 46 } 48 private ArrayList m_keys = null; 49 private ArrayList m_values = null; 50 51 54 public int size() 55 { 56 return m_keys.size(); 57 } 59 62 public boolean isEmpty() 63 { 64 return (m_keys.size() == 0); 65 } 67 70 public boolean containsKey(Object key) 71 { 72 return m_keys.contains(key); 73 } 75 78 public boolean containsValue(Object value) 79 { 80 return m_values.contains(value); 81 } 83 86 public Object get(Object key) 87 { 88 return getValues(key); 89 } 91 94 public ArrayList getValues (Object key) 95 { 96 ArrayList list = new ArrayList(); 97 if (!m_keys.contains(key)) 99 return list; 100 int size = m_keys.size(); 102 for (int i = 0; i < size; i++) 103 { 104 if (m_keys.get(i).equals(key)) 105 if (!list.contains(m_values.get(i))) 106 list.add(m_values.get(i)); 107 } 108 return list; 109 } 111 114 public ArrayList getKeys (Object value) 115 { 116 ArrayList list = new ArrayList(); 117 if (!m_values.contains(value)) 119 return list; 120 int size = m_values.size(); 122 for (int i = 0; i < size; i++) 123 { 124 if (m_values.get(i).equals(value)) 125 if (!list.contains(m_keys.get(i))) 126 list.add(m_keys.get(i)); 127 } 128 return list; 129 } 131 135 public Object put(Object key, Object value) 136 { 137 m_keys.add(key); 138 m_values.add(value); 139 return null; 140 } 142 145 public Object remove(Object key) 146 { 147 throw new java.lang.UnsupportedOperationException ("Method remove() not implemented."); 148 } 150 153 public void putAll(Map t) 154 { 155 throw new java.lang.UnsupportedOperationException ("Method putAll() not implemented."); 156 } 158 161 public void clear() 162 { 163 m_keys.clear(); 164 m_values.clear(); 165 } 167 170 public Set keySet() 171 { 172 HashSet keys = new HashSet(m_keys); 173 return keys; 174 } 176 179 public Collection values() 180 { 181 return m_values; 182 } 183 184 187 public Set entrySet() 188 { 189 throw new java.lang.UnsupportedOperationException ("Method entrySet() not implemented."); 190 } 191 192 195 public boolean equals(Object o) 196 { 197 throw new java.lang.UnsupportedOperationException ("Method equals() not implemented."); 198 } 199 200 201 202 205 public String toString() 206 { 207 return "MultiMap #" + m_keys.size(); 208 } 209 210 213 public void printToLog() 214 { 215 int ll = 7; Log.trace(ll-1, "MultiMap.printToLog"); 217 218 int size = m_keys.size(); 219 for (int i = 0; i < size; i++) 220 { 221 Object k = m_keys.get(i); 222 Object v = m_values.get(i); 223 Log.trace(ll, k==null ? "null" : k.toString(), v==null ? "null" : v.toString()); 224 } 225 } 227 } | Popular Tags |