start of new file
[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     public static final int ATOMIC=2048;
13 //      TRANSIENT=256
14 //      VOLATILE=512
15 //      STRICTFP=1024
16
17     private int value;
18
19     public Modifiers() {
20         value=0;
21     }
22
23     public Modifiers(int v) {
24         value=v;
25     }
26
27     public void addModifier(int mod) {
28         value|=mod;
29         if (isSynchronized()&&isNative())
30             throw new Error("Synchronized native methods are not supported");
31     }
32
33     public boolean isAtomic() {
34         return ((value&ATOMIC)!=0);
35     }
36
37     public boolean isSynchronized() {
38         return ((value&SYNCHRONIZED)!=0);
39     }
40
41     public boolean isStatic() {
42         return ((value&STATIC)!=0);
43     }
44
45     public boolean isNative() {
46         return ((value&NATIVE)!=0);
47     }
48
49     public boolean isFinal() {
50         return ((value&FINAL)!=0);
51     }
52
53     public String toString() {
54         String st="";
55         if ((value&PUBLIC)!=0)
56             st+="public ";
57         if ((value&PROTECTED)!=0)
58             st+="protected ";
59         if ((value&PRIVATE)!=0)
60             st+="private ";
61         if ((value&STATIC)!=0)
62             st+="static ";
63         if ((value&FINAL)!=0)
64             st+="final ";
65         if ((value&NATIVE)!=0)
66             st+="native ";
67         if ((value&SYNCHRONIZED)!=0)
68             st+="synchronized ";
69         if ((value&ATOMIC)!=0)
70             st+="atomic ";
71         return st;
72     }
73 }