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);
+ }
+
+ private TagWrapper() {
+ }
+
+ public TagState getState() {
+ assert(ts.size()==1);
+ return ts.iterator().next();
}
public TagWrapper clone() {
TagWrapper tw=new TagWrapper();
tw.initts=initts;
- tw.ts=ts.clone();
+ tw.ts=(HashSet<TagState>)ts.clone();
return tw;
}
}