diff options
Diffstat (limited to 'src')
-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); } |