1 package Analysis.SSJava;
3 import java.util.ArrayList;
4 import java.util.HashSet;
5 import java.util.Iterator;
11 public class NodeTupleSet {
13 private ArrayList<NTuple<Descriptor>> list;
15 private ArrayList<NTuple<Location>> globalLocTupleList;
17 public NodeTupleSet() {
18 list = new ArrayList<NTuple<Descriptor>>();
19 globalLocTupleList = new ArrayList<NTuple<Location>>();
22 public void addTuple(NTuple<Descriptor> tuple) {
24 for (Iterator iterator = list.iterator(); iterator.hasNext();) {
25 NTuple<Descriptor> t = (NTuple<Descriptor>) iterator.next();
26 if (t.equals(tuple)) {
34 public void addGlobalFlowTuple(NTuple<Location> tuple) {
35 globalLocTupleList.add(tuple);
38 public void addGlobalFlowTupleSet(ArrayList<NTuple<Location>> in) {
39 globalLocTupleList.addAll(in);
42 public Iterator<NTuple<Location>> globalIterator() {
43 return globalLocTupleList.iterator();
46 public void removeTuple(NTuple<Descriptor> tuple) {
50 public Iterator<NTuple<Descriptor>> iterator() {
51 return list.iterator();
54 public String toString() {
55 String str = list.toString();
57 if (globalLocTupleList.size() > 0) {
58 str += " GlobalFlow=" + globalLocTupleList.toString();
64 public Set<NTuple<Descriptor>> getSet() {
65 Set<NTuple<Descriptor>> set = new HashSet<NTuple<Descriptor>>();
70 public void addTupleSet(NodeTupleSet in) {
72 for (Iterator iterator = in.iterator(); iterator.hasNext();) {
73 NTuple<Descriptor> inTuple = (NTuple<Descriptor>) iterator.next();
87 public int globalLocTupleSize() {
88 return globalLocTupleList.size();
91 private void setGlobalLocTupleList(ArrayList<NTuple<Location>> in) {
92 globalLocTupleList = in;
95 public ArrayList<NTuple<Location>> getGlobalLocTupleSet() {
96 return globalLocTupleList;
99 private void setDescTupleList(ArrayList<NTuple<Descriptor>> in) {
103 public NodeTupleSet clone() {
104 NodeTupleSet set = new NodeTupleSet();
105 set.setDescTupleList((ArrayList<NTuple<Descriptor>>) list.clone());
106 set.setGlobalLocTupleList((ArrayList<NTuple<Location>>) globalLocTupleList.clone());