X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2FClassGen.java;h=f4c1a0348280197667357dbba49abc43c0d9dc0d;hb=61c79c5fd88e1017446c804adcafde230f4d90e8;hp=d579b99218af252350b5bf881449b3b8fb5e5c6e;hpb=94cebd4c12247ae7fd0a4b0cc66609fead0efece;p=org.ibex.classgen.git diff --git a/src/org/ibex/classgen/ClassGen.java b/src/org/ibex/classgen/ClassGen.java index d579b99..f4c1a03 100644 --- a/src/org/ibex/classgen/ClassGen.java +++ b/src/org/ibex/classgen/ClassGen.java @@ -7,32 +7,83 @@ import java.io.*; 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; - private final Vector interfaces = new Vector(); private final Vector fields = new Vector(); private final Vector methods = new Vector(); final CPGen cp; private final AttrGen attributes; - - /** @see #ClassGen(Type.Object,Type.Object,int) */ + + 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