special union of reachability sets works correctly now
[IRC.git] / Robust / src / Analysis / OwnershipAnalysis / TokenTupleSet.java
index a78943c9b94c12a59655fb84e406435b1868342b..9a81a6583d1fb99f79ceec2e66f8ea949acc823e 100644 (file)
@@ -8,7 +8,7 @@ import java.io.*;
 
 public class TokenTupleSet {
 
-    public HashSet<TokenTuple> tokenTuples;
+    private HashSet<TokenTuple> tokenTuples;
 
     public TokenTupleSet() {
        tokenTuples = new HashSet<TokenTuple>();
@@ -23,19 +23,36 @@ public class TokenTupleSet {
        tokenTuples = (HashSet<TokenTuple>) tts.tokenTuples.clone(); //COPY?!
     }
 
+    public Iterator iterator() {
+       return tokenTuples.iterator();
+    }
+
     public TokenTupleSet union( TokenTupleSet ttsIn ) {
        TokenTupleSet ttsOut = new TokenTupleSet( this );
        ttsOut.tokenTuples.addAll( ttsIn.tokenTuples );
-       /*
-       Iterator i = ttsIn.tokenTuples.iterator();
-       while( i.hasNext() ) {
-           ttsOut.tokenTuples.add( (TokenTuple) i.next() );
-       }
-       */
-
        return ttsOut;
     }
 
+    public boolean isEmpty() {
+       return tokenTuples.isEmpty();
+    }
+
+    public boolean containsTuple( TokenTuple tt ) {
+       return tokenTuples.contains( tt );
+    }
+
+    // this should be a hash table so we can do this by key
+    public boolean containsToken( Integer token ) {
+       Iterator itr = tokenTuples.iterator();
+       while( itr.hasNext() ) {
+           TokenTuple tt = (TokenTuple) itr.next();
+           if( token.equals( tt.getToken() ) ) {
+               return true;
+           }
+       }
+       return false;
+    }
+
     public String toString() {
        return tokenTuples.toString();
     }