This commit was manufactured by cvs2svn to create tag 'buildscript'.
[IRC.git] /
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 enterflagstates;
12   public HashSet<HashSet> exitfses;
13   public Predicate predicate;
14   private static int nodeid=0;
15   private int index;
16   private int uid;
17
18   protected OptionalTaskDescriptor(TaskDescriptor td, int index, HashSet enterflagstates, Predicate predicate) {
19     this.td = td;
20     this.enterflagstates = enterflagstates;
21     this.exitfses = new HashSet();
22     this.predicate = predicate;
23     this.index=index;
24   }
25
26   public int hashCode() {
27     return td.hashCode()^enterflagstates.hashCode()^predicate.hashCode()^index;
28   }
29
30   public boolean equals(Object o) {
31     if (o instanceof OptionalTaskDescriptor) {
32       OptionalTaskDescriptor otd=(OptionalTaskDescriptor) o;
33       if (otd.td==td&&
34           otd.enterflagstates.equals(enterflagstates)&&
35           otd.predicate.equals(predicate)&&
36           otd.index==index)
37         return true;
38     }
39     return false;
40   }
41
42   public int getIndex() {
43     return index;
44   }
45
46   public String tostring() {
47     return "Optional task "+td.getSymbol();
48   }
49
50   public void setuid() {
51     uid=nodeid++;
52   }
53
54   public int getuid() {
55     return uid;
56   }
57 }