aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/ClassNode.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-02 19:06:57 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-02 19:06:57 +0100
commitc02fac3e8b50b1941a8d3f35a033212c1e51d5d4 (patch)
treea9d95d665f435283d053387a050bc25b53220f52 /src/main/java/org/zwobble/couscous/ast/ClassNode.java
parent6c3751fd9dd53aef044cea5bbc1dbf87bf21462a (diff)
Preserve environment across calls
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/ClassNode.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNode.java27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNode.java b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
index 6dd7b12..72e57d2 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
@@ -2,13 +2,36 @@ package org.zwobble.couscous.ast;
import java.util.List;
-import lombok.Builder;
+import com.google.common.collect.ImmutableList;
+
import lombok.Singular;
import lombok.Value;
-@Builder
@Value
public class ClassNode {
+ public static ClassNode.Builder builder(String name) {
+ return new Builder(name);
+ }
+
+ public static class Builder {
+ private final String name;
+ private final ImmutableList.Builder<MethodNode> methods;
+
+ public Builder(String name) {
+ this.name = name;
+ this.methods = ImmutableList.builder();
+ }
+
+ public Builder method(MethodNode method) {
+ this.methods.add(method);
+ return this;
+ }
+
+ public ClassNode build() {
+ return new ClassNode(name, methods.build());
+ }
+ }
+
String name;
@Singular
List<MethodNode> methods;