diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-02 19:06:57 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-02 19:06:57 +0100 |
| commit | c02fac3e8b50b1941a8d3f35a033212c1e51d5d4 (patch) | |
| tree | a9d95d665f435283d053387a050bc25b53220f52 /src/main/java/org/zwobble/couscous/ast/ClassNode.java | |
| parent | 6c3751fd9dd53aef044cea5bbc1dbf87bf21462a (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.java | 27 |
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; |
