special union of reachability sets works correctly now
[IRC.git] / Robust / src / Analysis / OwnershipAnalysis / TokenTupleSet.java
1 package Analysis.OwnershipAnalysis;
2
3 import IR.*;
4 import IR.Flat.*;
5 import java.util.*;
6 import java.io.*;
7
8
9 public class TokenTupleSet {
10
11     private HashSet<TokenTuple> tokenTuples;
12
13     public TokenTupleSet() {
14         tokenTuples = new HashSet<TokenTuple>();
15     }
16
17     public TokenTupleSet( TokenTuple tt ) {
18         this();
19         tokenTuples.add( tt );
20     }
21
22     public TokenTupleSet( TokenTupleSet tts ) {
23         tokenTuples = (HashSet<TokenTuple>) tts.tokenTuples.clone(); //COPY?!
24     }
25
26     public Iterator iterator() {
27         return tokenTuples.iterator();
28     }
29
30     public TokenTupleSet union( TokenTupleSet ttsIn ) {
31         TokenTupleSet ttsOut = new TokenTupleSet( this );
32         ttsOut.tokenTuples.addAll( ttsIn.tokenTuples );
33         return ttsOut;
34     }
35
36     public boolean isEmpty() {
37         return tokenTuples.isEmpty();
38     }
39
40     public boolean containsTuple( TokenTuple tt ) {
41         return tokenTuples.contains( tt );
42     }
43
44     // this should be a hash table so we can do this by key
45     public boolean containsToken( Integer token ) {
46         Iterator itr = tokenTuples.iterator();
47         while( itr.hasNext() ) {
48             TokenTuple tt = (TokenTuple) itr.next();
49             if( token.equals( tt.getToken() ) ) {
50                 return true;
51             }
52         }
53         return false;
54     }
55
56     public String toString() {
57         return tokenTuples.toString();
58     }
59 }