simplify ExecutionGraph code
[IRC.git] / Robust / src / Analysis / TaskStateAnalysis / OptionalTaskDescriptor.java
1 package Analysis.TaskStateAnalysis;
2 import java.util.*;
3 import IR.*;
4 import IR.Tree.*;
5 import IR.Flat.*;
6 import java.io.*;
7 import Util.Edge;
8
9 public class  OptionalTaskDescriptor {
10     public TaskDescriptor td;
11     public HashSet flagstates;
12     public int depth;
13     public HashSet<HashSet> exitfses;
14     public Predicate predicate;
15     private static int nodeid=0;
16     private int uid;
17     
18     protected OptionalTaskDescriptor(TaskDescriptor td, HashSet flagstates, int depth, Predicate predicate) {
19         this.td = td;
20         this.flagstates = flagstates;
21         this.depth = depth;
22         this.exitfses = new HashSet();
23         this.predicate = predicate;
24         this.uid = OptionalTaskDescriptor.nodeid++;
25     }
26     
27     public boolean equals(Object o){
28         if (o instanceof OptionalTaskDescriptor) {
29             OptionalTaskDescriptor otd = (OptionalTaskDescriptor) o;
30             if (td==otd.td&&
31                 flagstates.equals(otd.flagstates)&&
32                 predicate.equals(otd.predicate))
33                 return true;
34         }
35         return false;
36     }
37     
38     public int hashCode() {
39         return td.getSymbol().hashCode()+flagstates.hashCode()+predicate.hashCode();
40     }
41     
42     public String tostring() {
43         return "Optional task "+td.getSymbol();
44     }
45
46     public int getuid() {
47         return uid;
48     }
49 }