import java.io.*;
-public class TokenTupleSet {
+public class TokenTupleSet extends Canonical {
private HashSet<TokenTuple> tokenTuples;
tokenTuples = (HashSet<TokenTuple>) tts.tokenTuples.clone(); //COPY?!
}
+ public TokenTupleSet makeCanonical() {
+ return (TokenTupleSet) Canonical.makeCanonical( this );
+ }
+
public Iterator iterator() {
return tokenTuples.iterator();
}
public TokenTupleSet union( TokenTupleSet ttsIn ) {
TokenTupleSet ttsOut = new TokenTupleSet( this );
ttsOut.tokenTuples.addAll( ttsIn.tokenTuples );
- return ttsOut;
+ return ttsOut.makeCanonical();
}
public boolean isEmpty() {
return tokenTuples.contains( tt );
}
+ public boolean equals( Object o ) {
+ if( !(o instanceof TokenTupleSet) ) {
+ return false;
+ }
+
+ TokenTupleSet tts = (TokenTupleSet) o;
+ return tokenTuples.equals( tts.tokenTuples );
+ }
+
+ public int hashCode() {
+ return tokenTuples.hashCode();
+ }
+
// this should be a hash table so we can do this by key
public boolean containsToken( Integer token ) {
Iterator itr = tokenTuples.iterator();