aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-06 16:44:09 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-06 16:44:09 +0100
commit1352b8d81c5bc7a36f32908ad9c15fcbf081e57e (patch)
tree90b9695248e53778a829fb18c2bdfde677e28f8d /src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
parente6f463257720bee91a1b4954d97684dbb3398cbf (diff)
Simplify builder usage
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 cd324b9..65d2fda 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
+++ b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
@@ -77,10 +77,12 @@ public class ClassNodeBuilder {
public class MethodBuilder {
private final String methodName;
+ private final ImmutableList.Builder<FormalArgumentNode> arguments;
private final ImmutableList.Builder<StatementNode> statements;
public MethodBuilder(String name) {
this.methodName = name;
+ this.arguments = ImmutableList.builder();
this.statements = ImmutableList.builder();
}
@@ -88,6 +90,11 @@ public class ClassNodeBuilder {
return ThisReferenceNode.thisReference(name);
}
+ public MethodBuilder argument(FormalArgumentNode argument) {
+ arguments.add(argument);
+ return this;
+ }
+
public MethodBuilder statement(StatementNode statement) {
statements.add(statement);
return this;
@@ -96,6 +103,7 @@ public class ClassNodeBuilder {
public MethodNode build() {
return MethodNode.builder()
.name(methodName)
+ .arguments(arguments.build())
.body(statements.build())
.build();
}