diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-11-24 20:54:45 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-11-24 20:54:45 +0000 |
| commit | f4d8c1f419ef9f88e4eb7ed255b5b19da7b49e60 (patch) | |
| tree | 74badae71f647e262f27a824a53175145cd091f7 /src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java | |
| parent | aa0995287d4474f18d2b63e2d0fb69773b981906 (diff) | |
Add hacktastic closures for lambdas (not anonymous classes)
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java index a2302e4..eafcc3b 100644 --- a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java +++ b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java @@ -25,10 +25,14 @@ public class ClassNodeBuilder { this.fields.add(FieldDeclarationNode.field(name, type)); return this; } + + public ClassNodeBuilder constructor(ConstructorNode constructor) { + this.constructor = Optional.of(constructor); + return this; + } public ClassNodeBuilder constructor(Function<MethodBuilder<ConstructorNode>, MethodBuilder<ConstructorNode>> build) { - this.constructor = Optional.of(build.apply(constructorBuilder()).build()); - return this; + return constructor(build.apply(constructorBuilder()).build()); } private MethodBuilder<ConstructorNode> constructorBuilder() { @@ -72,7 +76,7 @@ public class ClassNodeBuilder { constructor.orElse(constructorBuilder().build()), methods.build()); } - + public class MethodBuilder<T> { private final Function<MethodBuilder<?>, T> build; private final ImmutableList.Builder<AnnotationNode> annotations; |
