start of new file
[IRC.git] / Robust / src / IR / Tree / Modifiers.java
index f3b3af74af3d4da8377c01be55b51cfc4100bf8c..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,14 +20,36 @@ 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() {
        String st="";
        if ((value&PUBLIC)!=0)
@@ -41,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;
     }
 }