diff options
author | Reinier Zwitserloot <reinier@tipit.to> | 2009-07-11 11:11:32 +0200 |
---|---|---|
committer | Reinier Zwitserloot <reinier@tipit.to> | 2009-07-11 11:11:32 +0200 |
commit | bc44e76b7d45da2301a1bb7d28d4e7e8fec4b94b (patch) | |
tree | 8e6eed1ddcb4234ec83d5a1561e47dae2054940a | |
parent | 21aa78996ad11ebd945273405d752622ffbd9df0 (diff) | |
download | lombok-bc44e76b7d45da2301a1bb7d28d4e7e8fec4b94b.tar.gz lombok-bc44e76b7d45da2301a1bb7d28d4e7e8fec4b94b.tar.bz2 lombok-bc44e76b7d45da2301a1bb7d28d4e7e8fec4b94b.zip |
Made 'printContent=true' work for types as well as method bodies/initializers.
-rw-r--r-- | src/lombok/core/PrintAST.java | 7 | ||||
-rw-r--r-- | src/lombok/eclipse/EclipseASTVisitor.java | 9 | ||||
-rw-r--r-- | src/lombok/javac/JavacASTVisitor.java | 9 |
3 files changed, 18 insertions, 7 deletions
diff --git a/src/lombok/core/PrintAST.java b/src/lombok/core/PrintAST.java index 943bf298..df1b652c 100644 --- a/src/lombok/core/PrintAST.java +++ b/src/lombok/core/PrintAST.java @@ -42,9 +42,10 @@ public @interface PrintAST { String outfile() default ""; /** - * Normally, the printer will print each node focusing on the node (E.g. classname, and such). - * By setting printContent to true, methods, initializers, and other statement-containing elements - * actually print their java code instead of a tree view of internal AST nodes. + * Sets whether to print node structure (false) or generated java code (true). + * + * By setting printContent to true, the annotated element's java code representation is printed. If false, + * its node structure (e.g. node classname) is printed, and this process is repeated for all children. */ boolean printContent() default false; } diff --git a/src/lombok/eclipse/EclipseASTVisitor.java b/src/lombok/eclipse/EclipseASTVisitor.java index 84a27e48..6cc4130f 100644 --- a/src/lombok/eclipse/EclipseASTVisitor.java +++ b/src/lombok/eclipse/EclipseASTVisitor.java @@ -114,7 +114,7 @@ public interface EclipseASTVisitor { private int indent = 0; /** - * @param printContent if true, method and initializer bodies are printed directly, as java code, + * @param printContent if true, bodies are printed directly, as java code, * instead of a tree listing of every AST node inside it. */ public Printer(boolean printContent) { @@ -122,7 +122,7 @@ public interface EclipseASTVisitor { } /** - * @param printContent if true, method and initializer bodies are printed directly, as java code, + * @param printContent if true, bodies are printed directly, as java code, * instead of a tree listing of every AST node inside it. * @param out write output to this stream. You must close it yourself. flush() is called after every line. * @@ -177,6 +177,10 @@ public interface EclipseASTVisitor { public void visitType(Node node, TypeDeclaration type) { print("<TYPE %s>", str(type.name)); indent++; + if ( printContent ) { + print("%s", type); + disablePrinting++; + } } public void visitAnnotationOnType(TypeDeclaration type, Node node, Annotation annotation) { @@ -184,6 +188,7 @@ public interface EclipseASTVisitor { } public void endVisitType(Node node, TypeDeclaration type) { + if ( printContent ) disablePrinting--; indent--; print("</TYPE %s>", str(type.name)); } diff --git a/src/lombok/javac/JavacASTVisitor.java b/src/lombok/javac/JavacASTVisitor.java index 0d751c52..d0902006 100644 --- a/src/lombok/javac/JavacASTVisitor.java +++ b/src/lombok/javac/JavacASTVisitor.java @@ -104,7 +104,7 @@ public interface JavacASTVisitor { private int indent = 0; /** - * @param printContent if true, method and initializer bodies are printed directly, as java code, + * @param printContent if true, bodies are printed directly, as java code, * instead of a tree listing of every AST node inside it. */ public Printer(boolean printContent) { @@ -112,7 +112,7 @@ public interface JavacASTVisitor { } /** - * @param printContent if true, method and initializer bodies are printed directly, as java code, + * @param printContent if true, bodies are printed directly, as java code, * instead of a tree listing of every AST node inside it. * @param out write output to this stream. You must close it yourself. flush() is called after every line. * @@ -149,6 +149,10 @@ public interface JavacASTVisitor { @Override public void visitType(Node node, JCClassDecl type) { print("<TYPE %s>", type.name); indent++; + if ( printContent ) { + print("%s", type); + disablePrinting++; + } } @Override public void visitAnnotationOnType(JCClassDecl type, Node node, JCAnnotation annotation) { @@ -156,6 +160,7 @@ public interface JavacASTVisitor { } @Override public void endVisitType(Node node, JCClassDecl type) { + if ( printContent ) disablePrinting--; indent--; print("</TYPE %s>", type.name); } |