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 private NTuple<Descriptor> baseDescTuple;
19 public NodeTupleSet() {
20 list = new ArrayList<NTuple<Descriptor>>();
21 globalLocTupleList = new ArrayList<NTuple<Location>>();
24 public void addTuple(NTuple<Descriptor> tuple) {
26 for (Iterator iterator = list.iterator(); iterator.hasNext();) {
27 NTuple<Descriptor> t = (NTuple<Descriptor>) iterator.next();
28 if (t.equals(tuple)) {
36 public void setMethodInvokeBaseDescTuple(NTuple<Descriptor> in) {
40 public NTuple<Descriptor> getBaseDesc() {
44 public void addGlobalFlowTuple(NTuple<Location> tuple) {
45 System.out.println("-----add global value flow tuple=" + tuple);
46 globalLocTupleList.add(tuple);
49 public void addGlobalFlowTupleSet(ArrayList<NTuple<Location>> in) {
50 System.out.println("-----add global value flow in=" + in);
51 globalLocTupleList.addAll(in);
54 public Iterator<NTuple<Location>> globalIterator() {
55 return globalLocTupleList.iterator();
58 public void removeTuple(NTuple<Descriptor> tuple) {
62 public Iterator<NTuple<Descriptor>> iterator() {
63 return list.iterator();
66 public String toString() {
67 String str = list.toString();
69 if (globalLocTupleList.size() > 0) {
70 str += " GlobalFlow=" + globalLocTupleList.toString();
76 public Set<NTuple<Descriptor>> getSet() {
77 Set<NTuple<Descriptor>> set = new HashSet<NTuple<Descriptor>>();
82 public void addTupleSet(NodeTupleSet in) {
84 for (Iterator iterator = in.iterator(); iterator.hasNext();) {
85 NTuple<Descriptor> inTuple = (NTuple<Descriptor>) iterator.next();
99 public int globalLocTupleSize() {
100 return globalLocTupleList.size();
103 private void setGlobalLocTupleList(ArrayList<NTuple<Location>> in) {
104 globalLocTupleList = in;
107 public ArrayList<NTuple<Location>> getGlobalLocTupleSet() {
108 return globalLocTupleList;
111 private void setDescTupleList(ArrayList<NTuple<Descriptor>> in) {
115 public NodeTupleSet clone() {
116 NodeTupleSet set = new NodeTupleSet();
117 set.setDescTupleList((ArrayList<NTuple<Descriptor>>) list.clone());
118 set.setGlobalLocTupleList((ArrayList<NTuple<Location>>) globalLocTupleList.clone());