aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-06 16:55:10 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-06 16:55:10 +0100
commit9d845a8deeb622736d54693ceb8efc9ea50497ca (patch)
treec63922192d84d496af27ce5c5733d96d671a134b /src/main/java
parentcea11f17222914ad65da19405f5a812be0c74d43 (diff)
Add static method builder to ClassNodeBuilder
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java15
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())