1 package Analysis.OwnershipAnalysis;
9 public class TokenTupleSet extends Canonical {
11 private HashSet<TokenTuple> tokenTuples;
13 public TokenTupleSet() {
14 tokenTuples = new HashSet<TokenTuple>();
17 public TokenTupleSet( TokenTuple tt ) {
19 tokenTuples.add( tt );
22 public TokenTupleSet( TokenTupleSet tts ) {
23 tokenTuples = (HashSet<TokenTuple>) tts.tokenTuples.clone(); //COPY?!
26 public TokenTupleSet makeCanonical() {
27 return (TokenTupleSet) Canonical.makeCanonical( this );
30 public Iterator iterator() {
31 return tokenTuples.iterator();
34 public TokenTupleSet union( TokenTupleSet ttsIn ) {
35 TokenTupleSet ttsOut = new TokenTupleSet( this );
36 ttsOut.tokenTuples.addAll( ttsIn.tokenTuples );
37 return ttsOut.makeCanonical();
40 public boolean isEmpty() {
41 return tokenTuples.isEmpty();
44 public boolean containsTuple( TokenTuple tt ) {
45 return tokenTuples.contains( tt );
48 public boolean equals( Object o ) {
49 if( !(o instanceof TokenTupleSet) ) {
53 TokenTupleSet tts = (TokenTupleSet) o;
54 return tokenTuples.equals( tts.tokenTuples );
57 public int hashCode() {
58 return tokenTuples.hashCode();
61 // this should be a hash table so we can do this by key
62 public boolean containsToken( Integer token ) {
63 Iterator itr = tokenTuples.iterator();
64 while( itr.hasNext() ) {
65 TokenTuple tt = (TokenTuple) itr.next();
66 if( token.equals( tt.getToken() ) ) {
73 public String toString() {
74 return tokenTuples.toString();