start of new file
[IRC.git] / Robust / src / IR / Tree / Modifiers.java
index 3bcee6b111707ec32b577b5a281970166562e531..98e032d9ca148232f6e0a8fe17dcea3c41f48eb4 100644 (file)
@@ -8,7 +8,8 @@ public class Modifiers {
 //     ABSTRACT=16
     public static final int FINAL=32;
     public static final int NATIVE=64;
-//     SYNCHRONIZED=128
+    public static final int SYNCHRONIZED=128;
+    public static final int ATOMIC=2048;
 //     TRANSIENT=256
 //     VOLATILE=512
 //     STRICTFP=1024
@@ -19,8 +20,34 @@ public class Modifiers {
        value=0;
     }
 
+    public Modifiers(int v) {
+       value=v;
+    }
+
     public void addModifier(int mod) {
        value|=mod;
+       if (isSynchronized()&&isNative())
+           throw new Error("Synchronized native methods are not supported");
+    }
+
+    public boolean isAtomic() {
+       return ((value&ATOMIC)!=0);
+    }
+
+    public boolean isSynchronized() {
+       return ((value&SYNCHRONIZED)!=0);
+    }
+
+    public boolean isStatic() {
+       return ((value&STATIC)!=0);
+    }
+
+    public boolean isNative() {
+       return ((value&NATIVE)!=0);
+    }
+
+    public boolean isFinal() {
+       return ((value&FINAL)!=0);
     }
 
     public String toString() {
@@ -37,6 +64,10 @@ public class Modifiers {
            st+="final ";
        if ((value&NATIVE)!=0)
            st+="native ";
+       if ((value&SYNCHRONIZED)!=0)
+           st+="synchronized ";
+       if ((value&ATOMIC)!=0)
+           st+="atomic ";
        return st;
     }
 }