PrintClassVisitorpublic abstract class PrintClassVisitor extends Object implements ClassVisitorAn abstract class visitor that prints the classes it visits. |
Fields Summary |
---|
protected final List | textThe text to be printed. Since the code of methods is not necessarily
visited in sequential order, one method after the other, but can be
interlaced (some instructions from method one, then some instructions from
method two, then some instructions from method one again...), it is not
possible to print the visited instructions directly to a sequential
stream. A class is therefore printed in a two steps process: a string tree
is constructed during the visit, and printed to a sequential stream at the
end of the visit. This string tree is stored in this field, as a string
list that can contain other string lists, which can themselves contain
other string lists, and so on. | protected final StringBuffer | bufA buffer that can be used to create strings. | protected final PrintWriter | pwThe print writer to be used to print the class. |
Constructors Summary |
---|
protected PrintClassVisitor(PrintWriter pw)Constructs a new {@link PrintClassVisitor PrintClassVisitor} object.
this.text = new ArrayList();
this.buf = new StringBuffer();
this.pw = pw;
|
Methods Summary |
---|
public static oracle.toplink.libraries.asm.Attribute[] | getDefaultAttributes()
try {
return new Attribute[] {
new ASMAnnotationDefaultAttribute(),
new ASMRuntimeInvisibleAnnotations(),
new ASMRuntimeInvisibleParameterAnnotations(),
new ASMRuntimeVisibleAnnotations(),
new ASMRuntimeVisibleParameterAnnotations(),
new ASMStackMapAttribute(),
new ASMSourceDebugExtensionAttribute(),
new ASMSignatureAttribute(),
new ASMEnclosingMethodAttribute(),
new ASMLocalVariableTypeTableAttribute()
};
} catch (Exception e) {
return new Attribute[0];
}
| private void | printList(java.util.List l)Prints the given string tree to {@link #pw pw}.
for (int i = 0; i < l.size(); ++i) {
Object o = l.get(i);
if (o instanceof List) {
printList((List)o);
} else {
pw.print(o.toString());
}
}
| public void | visitEnd()
printList(text);
pw.flush();
|
|