This commit was manufactured by cvs2svn to create tag 'buildscript'.
[IRC.git] /
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 }