From eee46d13e629c79f4acb60cc29aa773e2ed735c1 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 28 Feb 2016 13:54:49 +0000 Subject: Change method bodies to be optional --- src/main/java/org/zwobble/couscous/ast/CallableNode.java | 8 -------- src/main/java/org/zwobble/couscous/ast/ConstructorNode.java | 2 +- src/main/java/org/zwobble/couscous/ast/MethodNode.java | 6 +++--- .../java/org/zwobble/couscous/ast/structure/NodeStructure.java | 3 ++- 4 files changed, 6 insertions(+), 13 deletions(-) delete mode 100644 src/main/java/org/zwobble/couscous/ast/CallableNode.java (limited to 'src/main/java/org/zwobble/couscous/ast') diff --git a/src/main/java/org/zwobble/couscous/ast/CallableNode.java b/src/main/java/org/zwobble/couscous/ast/CallableNode.java deleted file mode 100644 index 6d6fc7b..0000000 --- a/src/main/java/org/zwobble/couscous/ast/CallableNode.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.zwobble.couscous.ast; - -import java.util.List; - -public interface CallableNode extends Node { - List getArguments(); - List getBody(); -} diff --git a/src/main/java/org/zwobble/couscous/ast/ConstructorNode.java b/src/main/java/org/zwobble/couscous/ast/ConstructorNode.java index fab931b..a25a993 100644 --- a/src/main/java/org/zwobble/couscous/ast/ConstructorNode.java +++ b/src/main/java/org/zwobble/couscous/ast/ConstructorNode.java @@ -6,7 +6,7 @@ import org.zwobble.couscous.ast.visitors.NodeTransformer; import java.util.Collections; import java.util.List; -public class ConstructorNode implements CallableNode { +public class ConstructorNode implements Node { public static final ConstructorNode DEFAULT = constructor(Collections.emptyList(), Collections.emptyList()); public static ConstructorNode constructor( diff --git a/src/main/java/org/zwobble/couscous/ast/MethodNode.java b/src/main/java/org/zwobble/couscous/ast/MethodNode.java index 967b2b1..c201047 100644 --- a/src/main/java/org/zwobble/couscous/ast/MethodNode.java +++ b/src/main/java/org/zwobble/couscous/ast/MethodNode.java @@ -11,7 +11,7 @@ import java.util.function.Function; import static org.zwobble.couscous.util.ExtraLists.eagerMap; -public class MethodNode implements CallableNode { +public class MethodNode implements Node { public static Builder staticMethod(String name) { return builder(name).isStatic(true); } @@ -140,8 +140,8 @@ public class MethodNode implements CallableNode { return returnType; } - public List getBody() { - return body.get(); + public Optional> getBody() { + return body; } public MethodSignature signature() { diff --git a/src/main/java/org/zwobble/couscous/ast/structure/NodeStructure.java b/src/main/java/org/zwobble/couscous/ast/structure/NodeStructure.java index 2424bbe..f1f37a6 100644 --- a/src/main/java/org/zwobble/couscous/ast/structure/NodeStructure.java +++ b/src/main/java/org/zwobble/couscous/ast/structure/NodeStructure.java @@ -3,6 +3,7 @@ package org.zwobble.couscous.ast.structure; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.visitors.NodeMapper; +import java.util.Collection; import java.util.function.Predicate; import java.util.stream.Stream; @@ -158,7 +159,7 @@ public class NodeStructure { return concatStreams( methodNode.getAnnotations().stream(), methodNode.getArguments().stream(), - methodNode.getBody().stream()); + methodNode.getBody().map(Collection::stream).orElse(Stream.empty())); } @Override -- cgit v1.2.3