aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-25 18:04:13 +0000
committerMichael Williamson <mike@zwobble.org>2015-10-25 18:04:13 +0000
commitf0166b6c5fa0b5cfb9a79c20a83667e0c97e2004 (patch)
tree6438fc6c38d2a3dd086e4dceedf3c53fc1957487 /src/main/java/org/zwobble
parent0a5d0177a34713c968f16f31478bea88767a9f79 (diff)
Remove lombok from ConstructorNode
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ConstructorNode.java66
1 files changed, 61 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ConstructorNode.java b/src/main/java/org/zwobble/couscous/ast/ConstructorNode.java
index 468ef9e..c94554b 100644
--- a/src/main/java/org/zwobble/couscous/ast/ConstructorNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ConstructorNode.java
@@ -4,15 +4,71 @@ import java.util.List;
import org.zwobble.couscous.ast.visitors.NodeVisitor;
-import lombok.Value;
-
-@Value(staticConstructor="constructor")
public class ConstructorNode implements CallableNode {
- List<FormalArgumentNode> arguments;
- List<StatementNode> body;
+ public static ConstructorNode constructor(
+ List<FormalArgumentNode> arguments,
+ List<StatementNode> body) {
+ return new ConstructorNode(arguments, body);
+ }
+
+ private final List<FormalArgumentNode> arguments;
+ private final List<StatementNode> body;
+
+ public ConstructorNode(
+ List<FormalArgumentNode> arguments,
+ List<StatementNode> body) {
+ this.arguments = arguments;
+ this.body = body;
+ }
+
+ public List<FormalArgumentNode> getArguments() {
+ return arguments;
+ }
+
+ public List<StatementNode> getBody() {
+ return body;
+ }
@Override
public void accept(NodeVisitor visitor) {
visitor.visit(this);
}
+
+ @Override
+ public String toString() {
+ return "ConstructorNode(arguments=" + arguments + ", body=" + body
+ + ")";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result
+ + ((arguments == null) ? 0 : arguments.hashCode());
+ result = prime * result + ((body == null) ? 0 : body.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ConstructorNode other = (ConstructorNode) obj;
+ if (arguments == null) {
+ if (other.arguments != null)
+ return false;
+ } else if (!arguments.equals(other.arguments))
+ return false;
+ if (body == null) {
+ if (other.body != null)
+ return false;
+ } else if (!body.equals(other.body))
+ return false;
+ return true;
+ }
}