From 06580f553ec7a715d2a924c9edecdebda52f940a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 24 Oct 2015 14:23:15 +0100 Subject: Java: read annotations on methods --- src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java') diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java index 7466f07..1b8aea3 100644 --- a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java +++ b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java @@ -60,6 +60,7 @@ public class ClassNodeBuilder { return new MethodBuilder(builder -> MethodNode.builder() .isStatic(isStatic) .name(name) + .annotations(builder.annotations.build()) .arguments(builder.arguments.build()) .body(builder.statements.build()) .build()); @@ -75,15 +76,22 @@ public class ClassNodeBuilder { public class MethodBuilder { private final Function, T> build; + private final ImmutableList.Builder annotations; private final ImmutableList.Builder arguments; private final ImmutableList.Builder statements; public MethodBuilder(Function, T> build) { this.build = build; + this.annotations = ImmutableList.builder(); this.arguments = ImmutableList.builder(); this.statements = ImmutableList.builder(); } + public MethodBuilder annotation(TypeName type) { + annotations.add(AnnotationNode.annotation(type)); + return this; + } + public ThisReferenceNode thisReference() { return ThisReferenceNode.thisReference(name); } -- cgit v1.2.3