start of new file
[IRC.git] / Robust / src / Analysis / TaskStateAnalysis / TagWrapper.java
index eedda21741a2462e62b22b05bc65b770307205ab..2a6b96f8282735ced997afa1cc48f95bffbca853 100644 (file)
@@ -4,32 +4,28 @@ import IR.Tree.*;
 import IR.Flat.*;
 import java.util.*;
 
-public class TagWrapper {
+public class TagWrapper implements Wrapper {
     TagState initts;
-    Vector<TagState> ts;
+    HashSet<TagState> ts;
 
     public TagWrapper(TagState ts) {
        this.initts=ts;
-       this.ts=new Vector<TagState>();
-       this.ts.addAll(ts);
+       this.ts=new HashSet<TagState>();
+       this.ts.add(ts);
     }
 
-    public TagWrapper clone() {
-       TagWrapper tw=new TagWrapper();
-       tw.initts=initts;
-       tw.ts=ts.clone();
-       return tw;
+    private TagWrapper() {
     }
 
-    public boolean equals(Object o) {
-       if (o instanceof TagWrapper) {
-           TagWrapper tw=(TagWrapper)o;
-           return tw.initts.equals(initts)&&tw.ts.equals(ts);
-       }
-       return false;
+    public TagState getState() {
+       assert(ts.size()==1);
+       return ts.iterator().next();
     }
 
-    public int hashCode() {
-       return initts.hashCode()^ts.hashCode();
+    public TagWrapper clone() {
+       TagWrapper tw=new TagWrapper();
+       tw.initts=initts;
+       tw.ts=(HashSet<TagState>)ts.clone();
+       return tw;
     }
 }