aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java8
1 files changed, 8 insertions, 0 deletions
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<MethodNode>(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<T> {
private final Function<MethodBuilder<?>, T> build;
+ private final ImmutableList.Builder<AnnotationNode> annotations;
private final ImmutableList.Builder<FormalArgumentNode> arguments;
private final ImmutableList.Builder<StatementNode> statements;
public MethodBuilder(Function<MethodBuilder<?>, T> build) {
this.build = build;
+ this.annotations = ImmutableList.builder();
this.arguments = ImmutableList.builder();
this.statements = ImmutableList.builder();
}
+ public MethodBuilder<T> annotation(TypeName type) {
+ annotations.add(AnnotationNode.annotation(type));
+ return this;
+ }
+
public ThisReferenceNode thisReference() {
return ThisReferenceNode.thisReference(name);
}