View Javadoc

1   package org.catacomb.interlish.content;
2   
3   import org.catacomb.interlish.structure.IDd;
4   import org.catacomb.report.E;
5   
6   import java.util.ArrayList;
7   import java.util.HashMap;
8   
9   
10  public class KeyedMultiList<V> {
11  
12      ArrayList<V> items;
13      HashMap<String, ArrayList<V>> listHM;
14  
15      Class itemClass;
16  
17      public KeyedMultiList() {
18          items = new ArrayList<V>();
19          listHM = new HashMap<String, ArrayList<V>>();
20      }
21  
22      public KeyedMultiList(Class c) {
23          this();
24          itemClass = c;
25      }
26  
27  
28      public KeyedMultiList(String s) {
29          this();
30          try {
31              itemClass = Class.forName(s);
32          } catch (Exception ex) {
33              E.error("cant find class " + s + " " + ex);
34          }
35      }
36  
37  
38  
39  
40  
41      public ArrayList<V> getItems() {
42          return items;
43      }
44  
45      public boolean hasItems(String s) {
46          return listHM.containsKey(s);
47      }
48  
49      public ArrayList<V> getItems(String s) {
50          ArrayList<V> ret = null;
51          if (listHM.containsKey(s)) {
52              ret = listHM.get(s);
53          }
54          return ret;
55      }
56  
57  
58  
59  
60      public void add(V obj) {
61          items.add(obj);
62          String sid = "";
63          if (obj instanceof IDd) {
64              sid = ((IDd)obj).getID();
65          } else {
66              sid = obj.toString();
67          }
68          add(sid, obj);
69      }
70  
71  
72  
73      public void add(String sid, V obj) {
74  
75          if (listHM.containsKey(sid)) {
76              (listHM.get(sid)).add(obj);
77          } else {
78              ArrayList<V> alv = new ArrayList<V>();
79              alv.add(obj);
80              listHM.put(sid, alv);
81          }
82      }
83  
84  
85  }