X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2FClassGen.java;h=f4c1a0348280197667357dbba49abc43c0d9dc0d;hb=61c79c5fd88e1017446c804adcafde230f4d90e8;hp=99436e24e5b949998f559008e6c09b028fad1967;hpb=50a344886756b00af0e30d548a7a86822ef7e962;p=org.ibex.classgen.git diff --git a/src/org/ibex/classgen/ClassGen.java b/src/org/ibex/classgen/ClassGen.java index 99436e2..f4c1a03 100644 --- a/src/org/ibex/classgen/ClassGen.java +++ b/src/org/ibex/classgen/ClassGen.java @@ -8,6 +8,8 @@ public class ClassGen implements CGConst { private final Type.Object thisType; private final Type.Object superType; private final Type.Object[] interfaces; + private short minor; + private short major; final int flags; private String sourceFile; @@ -16,7 +18,48 @@ public class ClassGen implements CGConst { final CPGen cp; private final AttrGen attributes; - + + public static String flagsToString(int flags) { + String ret = ""; + if ((flags & ACC_PUBLIC) != 0) ret += "public "; + if ((flags & ACC_PRIVATE) != 0) ret += "private "; + if ((flags & ACC_PROTECTED) != 0) ret += "protected "; + if ((flags & ACC_STATIC) != 0) ret += "static "; + if ((flags & ACC_FINAL) != 0) ret += "final "; + if ((flags & ACC_ABSTRACT) != 0) ret += "abstract "; + if ((flags & ACC_SYNCHRONIZED) != 0) ret += "synchronized "; + if ((flags & ACC_NATIVE) != 0) ret += "native "; + if ((flags & ACC_STRICT) != 0) ret += "strictfp "; + if ((flags & ACC_VOLATILE) != 0) ret += "volatile "; + if ((flags & ACC_TRANSIENT) != 0) ret += "transient "; + return ret; + } + + public String toString() { StringBuffer sb = new StringBuffer(); toString(sb); return sb.toString(); } + public void toString(StringBuffer sb) { + sb.append(flagsToString(flags)); + sb.append((flags & ACC_INTERFACE) != 0 ? "interface " : "class "); + sb.append(thisType.humanReadable()); + if (superType != null) sb.append(" extends " + superType.humanReadable()); + if (interfaces != null && interfaces.length > 0) sb.append(" implements"); + for(int i=0; i