aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
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
parente6f463257720bee91a1b4954d97684dbb3398cbf (diff)
Simplify builder usage
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java8
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodNode.java4
3 files changed, 8 insertions, 6 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNode.java b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
index 280b772..674e347 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
@@ -4,7 +4,6 @@ import java.util.List;
import org.zwobble.couscous.ast.visitors.NodeVisitor;
-import lombok.Singular;
import lombok.Value;
@Value
@@ -15,7 +14,6 @@ public class ClassNode implements Node {
TypeName name;
ConstructorNode constructor;
- @Singular
List<MethodNode> methods;
public String getSimpleName() {
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();
}
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodNode.java b/src/main/java/org/zwobble/couscous/ast/MethodNode.java
index 700e9ec..0bdad59 100644
--- a/src/main/java/org/zwobble/couscous/ast/MethodNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/MethodNode.java
@@ -15,10 +15,6 @@ public class MethodNode implements CallableNode {
return builder().isStatic(true).name(name);
}
- public static MethodNodeBuilder method(String name) {
- return builder().isStatic(false).name(name);
- }
-
boolean isStatic;
String name;
@Singular