diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-06 16:55:10 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-06 16:55:10 +0100 |
| commit | 9d845a8deeb622736d54693ceb8efc9ea50497ca (patch) | |
| tree | c63922192d84d496af27ce5c5733d96d671a134b /src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java | |
| parent | cea11f17222914ad65da19405f5a812be0c74d43 (diff) | |
Add static method builder to ClassNodeBuilder
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java | 15 |
1 files changed, 12 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 ce8c9a0..2a0d967 100644 --- a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java +++ b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java @@ -34,19 +34,28 @@ public class ClassNodeBuilder { builder.arguments.build(), builder.statements.build())); } - + public ClassNodeBuilder method(MethodNode method) { this.methods.add(method); return this; } + public ClassNodeBuilder staticMethod(String name, Function<MethodBuilder<MethodNode>, MethodBuilder<MethodNode>> build) { + return method(name, true, build); + } + public ClassNodeBuilder method(String name, Function<MethodBuilder<MethodNode>, MethodBuilder<MethodNode>> build) { - this.methods.add(build.apply(methodBuilder(name)).build()); + return method(name, false, build); + } + + public ClassNodeBuilder method(String name, boolean isStatic, Function<MethodBuilder<MethodNode>, MethodBuilder<MethodNode>> build) { + this.methods.add(build.apply(methodBuilder(name, isStatic)).build()); return this; } - private MethodBuilder<MethodNode> methodBuilder(String name) { + private MethodBuilder<MethodNode> methodBuilder(String name, boolean isStatic) { return new MethodBuilder<MethodNode>(builder -> MethodNode.builder() + .isStatic(isStatic) .name(name) .arguments(builder.arguments.build()) .body(builder.statements.build()) |
