1 package Analysis.TaskStateAnalysis;
9 public class OptionalTaskDescriptor{
10 public TaskDescriptor td;
11 public HashSet flagstates;
13 public HashSet<HashSet> exitfses;
14 public Predicate predicate;
15 private static int nodeid=0;
18 protected OptionalTaskDescriptor(TaskDescriptor td, HashSet flagstates, int depth, Predicate predicate){
20 this.flagstates = flagstates;
22 this.exitfses = new HashSet();
23 this.predicate = predicate;
24 this.uid = OptionalTaskDescriptor.nodeid++;
28 public boolean equals(Object o){
29 if (o instanceof OptionalTaskDescriptor) {
30 OptionalTaskDescriptor otd = (OptionalTaskDescriptor) o;
31 if (this.td.getSymbol().compareTo(otd.td.getSymbol())==0)
32 if(this.flagstates.equals(otd.flagstates))
33 if(this.predicate.equals(otd.predicate))
41 public int hashCode() {
42 return td.getSymbol().hashCode()+flagstates.hashCode()+predicate.hashCode();
45 public String tostring() {
46 return "Optional task "+td.getSymbol();