two methods for generating a reach graph at any desired program point, one is a dummy...
[IRC.git] / Robust / src / IR / Tree / Modifiers.java
1 package IR.Tree;
2
3 public class Modifiers {
4   public static final int PUBLIC=1;
5   public static final int PROTECTED=2;
6   public static final int PRIVATE=4;
7   public static final int STATIC=8;
8 //      ABSTRACT=16
9   public static final int FINAL=32;
10   public static final int NATIVE=64;
11   public static final int SYNCHRONIZED=128;
12 //      TRANSIENT=256
13 //      VOLATILE=512
14 //      STRICTFP=1024
15   public static final int ATOMIC=2048;
16
17
18   private int value;
19
20   public Modifiers() {
21     value=0;
22   }
23
24   public Modifiers(int v) {
25     value=v;
26   }
27
28   public void addModifier(int mod) {
29     value|=mod;
30     if (isSynchronized()&&isNative())
31       throw new Error("Synchronized native methods are not supported");
32   }
33
34   public boolean isAtomic() {
35     return ((value&ATOMIC)!=0);
36   }
37
38   public boolean isSynchronized() {
39     return ((value&SYNCHRONIZED)!=0);
40   }
41
42   public boolean isStatic() {
43     return ((value&STATIC)!=0);
44   }
45
46   public boolean isNative() {
47     return ((value&NATIVE)!=0);
48   }
49
50   public boolean isFinal() {
51     return ((value&FINAL)!=0);
52   }
53
54   public String toString() {
55     String st="";
56     if ((value&PUBLIC)!=0)
57       st+="public ";
58     if ((value&PROTECTED)!=0)
59       st+="protected ";
60     if ((value&PRIVATE)!=0)
61       st+="private ";
62     if ((value&STATIC)!=0)
63       st+="static ";
64     if ((value&FINAL)!=0)
65       st+="final ";
66     if ((value&NATIVE)!=0)
67       st+="native ";
68     if ((value&SYNCHRONIZED)!=0)
69       st+="synchronized ";
70     if ((value&ATOMIC)!=0)
71       st+="atomic ";
72     return st;
73   }
74 }