added convenience methods to HasFlags
authoradam <adam@megacz.com>
Sun, 3 Jul 2005 02:42:40 +0000 (02:42 +0000)
committeradam <adam@megacz.com>
Sun, 3 Jul 2005 02:42:40 +0000 (02:42 +0000)
darcs-hash:20050703024240-5007d-479b6c96277dec3d7361e2b7a48945b69e14ab27.gz

src/org/ibex/classgen/ClassFile.java
src/org/ibex/classgen/HasFlags.java

index f598519..dd8b424 100644 (file)
@@ -34,6 +34,7 @@ public class ClassFile implements CGConst {
     }
 
     public Type.Class getType() { return thisType; }
+    public int getFlags() { return flags; }
     
     String debugToString() { return debugToString(new StringBuffer(4096)).toString(); }
     StringBuffer debugToString(StringBuffer sb) {
index 4bbd8f4..20aa90d 100644 (file)
@@ -1,5 +1,18 @@
 package org.ibex.classgen;
 
-public interface HasFlags {
-    public int getFlags();
+public abstract class HasFlags implements CGConst {
+    public abstract int getFlags();
+
+    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 isAbstract() { return (getFlags() & ABSTRACT) != 0; }
+    public boolean isNative() { return (getFlags() & NATIVE) != 0; }
+    public boolean isConcrete() { return !isAbstract() && !isNative(); }
+
+    public boolean isVolatile() { return (getFlags() & VOLATILE) != 0; }
+    public boolean isTransient() { return (getFlags() & TRANSIENT) != 0; }
 }