62c313b7856f0f5c5f79a3970e9f43a53bb10d7d
[IRC.git] / Robust / src / Analysis / SSJava / NodeTupleSet.java
1 package Analysis.SSJava;
2
3 import java.util.ArrayList;
4 import java.util.HashSet;
5 import java.util.Iterator;
6 import java.util.List;
7 import java.util.Set;
8
9 import IR.Descriptor;
10
11 public class NodeTupleSet {
12
13   private List<NTuple<Descriptor>> list;
14
15   public NodeTupleSet() {
16     list = new ArrayList<NTuple<Descriptor>>();
17   }
18
19   public void addTuple(NTuple<Descriptor> tuple) {
20
21     for (Iterator iterator = list.iterator(); iterator.hasNext();) {
22       NTuple<Descriptor> t = (NTuple<Descriptor>) iterator.next();
23       if (t.equals(tuple)) {
24         return;
25       }
26     }
27
28     list.add(tuple);
29   }
30
31   public void removeTuple(NTuple<Descriptor> tuple) {
32     list.remove(tuple);
33   }
34
35   public Iterator<NTuple<Descriptor>> iterator() {
36     return list.iterator();
37   }
38
39   public String toString() {
40     return list.toString();
41   }
42
43   public Set<NTuple<Descriptor>> getSet() {
44     Set<NTuple<Descriptor>> set = new HashSet<NTuple<Descriptor>>();
45     set.addAll(list);
46     return set;
47   }
48
49   public void addTupleSet(NodeTupleSet in) {
50     if (in != null) {
51       for (Iterator iterator = in.iterator(); iterator.hasNext();) {
52         NTuple<Descriptor> inTuple = (NTuple<Descriptor>) iterator.next();
53         addTuple(inTuple);
54       }
55     }
56   }
57
58   public int size() {
59     return list.size();
60   }
61
62   public void clear() {
63     list.clear();
64   }
65 }