way more Arena functionality
[org.ibex.classgen.git] / src / org / ibex / classgen / HasFlags.java
index 4bbd8f4..88760dd 100644 (file)
@@ -1,5 +1,22 @@
 package org.ibex.classgen;
 
-public interface HasFlags {
-    public int getFlags();
+public abstract class HasFlags implements CGConst {
+
+    public HasFlags(int flags) { this.flags = flags; }
+
+    public final int flags;
+    public int getFlags() { return flags; }
+
+    public boolean isPublic() { return (getFlags() & PUBLIC) != 0; }
+    public boolean isPrivate() { return (getFlags() & PRIVATE) != 0; }
+    public boolean isProtected() { return (getFlags() & PROTECTED) != 0; }
+    public boolean isStatic() { return (getFlags() & STATIC) != 0; }
+    public boolean isFinal() { return (getFlags() & FINAL) != 0; }
+    public boolean isInterface() { return (getFlags() & INTERFACE) != 0; }
+
+    public boolean isAbstract() { return (getFlags() & ABSTRACT) != 0; }
+    public boolean isNative() { return (getFlags() & NATIVE) != 0; }
+
+    public boolean isVolatile() { return (getFlags() & VOLATILE) != 0; }
+    public boolean isTransient() { return (getFlags() & TRANSIENT) != 0; }
 }