1 package Analysis.TaskStateAnalysis;
2 import Analysis.TaskStateAnalysis.*;
9 public class FlagState {
13 public FlagState(FlagDescriptor[] flags, ClassDescriptor cd) {
14 flagstate=new Hashtable(flags.length);
16 for (int i=0; i < flags.length; i++) {
17 flagstate.put(flags[i],new Boolean(false));
21 public FlagState(Hashtable flagstate, ClassDescriptor cd) {
22 this.flagstate = new Hashtable(flagstate);
26 public Hashtable getStateTable() {
30 public void put(FlagDescriptor fd, Boolean status) {
31 flagstate.put(fd,status);
34 public boolean get(FlagDescriptor fd) {
35 if (! flagstate.containsKey(fd))
38 return ((Boolean)(flagstate.get(fd))).booleanValue();
41 public String toString() {
42 StringBuffer sb = new StringBuffer(flagstate.size());
43 Enumeration e = flagstate.keys();
45 while (e.hasMoreElements()) {
46 if (((Boolean)(flagstate.get((FlagDescriptor)e.nextElement()))).booleanValue())
51 return new String(sb);
54 public String toString(FlagDescriptor[] flags) {
55 StringBuffer sb = new StringBuffer(flagstate.size());
58 for(int i=0;i < flags.length; i++) {
61 while (e.hasMoreElements()) {
62 FlagDescriptor fdtemp=(FlagDescriptor)e.nextElement();
63 if( flags[i] == fdtemp) {
64 if (((Boolean)(flagstate.get(fdtemp))).booleanValue())
71 return new String(sb);
74 public Enumeration getFlags() {
75 return flagstate.keys();
78 public boolean equal(Object o) {
79 if (o instanceof FlagState) {
80 FlagState fs=(FlagState)o;
84 Enumeration en = fs.getFlags();
85 while(en.hasMoreElements()) {
86 FlagDescriptor flag=(FlagDescriptor)en.nextElement();
88 if (fs.get(flag) != get(flag))
96 public int hashCode() {
97 return cd.hashCode()^flagstate.hashCode();