more bugs
[IRC.git] / Robust / src / Analysis / TaskStateAnalysis / EGTaskNode.java
1 package Analysis.TaskStateAnalysis;
2 import Analysis.TaskStateAnalysis.*;
3 import IR.*;
4 import IR.Tree.*;
5 import IR.Flat.*;
6 import java.util.*;
7 import Util.GraphNode;
8
9 public class EGTaskNode extends TaskNode {
10     private boolean source=false;
11     private FlagState fs;
12     private FlagState postfs;
13     private TaskDescriptor td;
14     private int index;
15
16     public EGTaskNode(String name, TaskDescriptor td, FlagState postfs){
17         this(name, null, td, -1, postfs);
18     }
19
20     public EGTaskNode(String name, FlagState fs, TaskDescriptor td, int index, FlagState postfs){
21         super(name);
22         this.fs = fs;
23         this.td = td;
24         this.index=index;
25         this.postfs=postfs;
26     }
27     
28     public int getIndex() {
29         return index;
30     }
31
32     public FlagState getPostFS() {
33         return postfs;
34     }
35     
36     public boolean isRuntime() {
37         return td==null&&getName().equals("Runtime");
38     }
39
40
41     public boolean isOptional() {
42         return (!isSource()&&td!=null&&td.isOptional(td.getParameter(index)));
43     }
44
45
46     public TaskDescriptor getTD(){
47         return td;
48     }
49         
50     public void setSource(){
51         source = true;
52     }
53
54     public boolean isSource(){
55         return source;
56     }
57
58     public int getuid(){
59         return uid;
60     }
61
62     public boolean isMultipleParams(){
63         return getTD()!=null&&getTD().numParameters()>1;
64     }
65     
66     public String getFSName(){
67         if(fs == null) 
68             return "no flag";
69         else 
70             return fs.getTextLabel();
71     }
72     
73     public FlagState getFS(){
74         return fs;
75     }
76 }