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++;
27 public boolean equals(Object o){
28 if (o instanceof OptionalTaskDescriptor) {
29 OptionalTaskDescriptor otd = (OptionalTaskDescriptor) o;
31 flagstates.equals(otd.flagstates)&&
32 predicate.equals(otd.predicate))
38 public int hashCode() {
39 return td.getSymbol().hashCode()+flagstates.hashCode()+predicate.hashCode();
42 public String tostring() {
43 return "Optional task "+td.getSymbol();