X-Git-Url: http://git.megacz.com/?p=org.ibex.classgen.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2FType.java;h=492986dab2da4f6fd4ba70ff17098f6e27b3db30;hp=795a73e9c3fd766f20b16855889a98f8437ddd49;hb=76a1336320be6b7dbae29acd341659ed648f9487;hpb=db68756051a8b3c9a08f7c2a27558713b263ad23 diff --git a/src/org/ibex/classgen/Type.java b/src/org/ibex/classgen/Type.java index 795a73e..492986d 100644 --- a/src/org/ibex/classgen/Type.java +++ b/src/org/ibex/classgen/Type.java @@ -3,7 +3,7 @@ package org.ibex.classgen; import java.util.StringTokenizer; import java.util.Hashtable; -public class Type { +public class Type implements CGConst { private static Hashtable instances = new Hashtable(); // this has to appear at the top of the file @@ -187,6 +187,30 @@ public class Type { sb.append(returnType.getDescriptor()); return sb.toString(); } + public abstract class Body implements HasFlags { + public abstract java.util.Hashtable getThrownExceptions(); + public abstract void debugBodyToString(StringBuffer sb); + public void debugToString(StringBuffer sb, String constructorName) { + int flags = getFlags(); + sb.append(" ").append(ClassFile.flagsToString(flags,false)); + sb.append(Method.this.debugToString()); + java.util.Hashtable thrownExceptions = getThrownExceptions(); + if (thrownExceptions.size() > 0) { + sb.append("throws"); + for(java.util.Enumeration e = thrownExceptions.keys();e.hasMoreElements();) + sb.append(" ").append(((Type.Class)e.nextElement()).debugToString()).append(","); + sb.setLength(sb.length()-1); + sb.append(" "); + } + if ((flags & (NATIVE|ABSTRACT))==0) { + sb.append("{\n"); + debugBodyToString(sb); + sb.append(" }\n"); + } else { + sb.append(";"); + } + } + } } }