adding thread support w/ locks
[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
16     private int value;
17
18     public Modifiers() {
19         value=0;
20     }
21
22     public Modifiers(int v) {
23         value=v;
24     }
25
26     public void addModifier(int mod) {
27         value|=mod;
28         if (isSynchronized()&&isNative())
29             throw new Error("Synchronized native methods are not supported");
30     }
31
32     public boolean isSynchronized() {
33         return ((value&SYNCHRONIZED)!=0);
34     }
35
36     public boolean isStatic() {
37         return ((value&STATIC)!=0);
38     }
39
40     public boolean isNative() {
41         return ((value&NATIVE)!=0);
42     }
43
44     public String toString() {
45         String st="";
46         if ((value&PUBLIC)!=0)
47             st+="public ";
48         if ((value&PROTECTED)!=0)
49             st+="protected ";
50         if ((value&PRIVATE)!=0)
51             st+="private ";
52         if ((value&STATIC)!=0)
53             st+="static ";
54         if ((value&FINAL)!=0)
55             st+="final ";
56         if ((value&NATIVE)!=0)
57             st+="native ";
58         if ((value&SYNCHRONIZED)!=0)
59             st+="synchronized ";
60         return st;
61     }
62 }