diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-25 18:33:49 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-25 18:33:49 +0000 |
| commit | 8c7eb395fa36321604a2e70b928c099de28deb64 (patch) | |
| tree | 222ce4759ac50084fbb7da24d2f45fd81f695ad1 | |
| parent | 237265a40f6a581eeefaec66cbfac3b7a807cd32 (diff) | |
Remove lombok from VariableReferenceNode
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java | 48 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java | 3 |
2 files changed, 46 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java b/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java index a53d099..e95510f 100644 --- a/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java +++ b/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java @@ -3,16 +3,25 @@ package org.zwobble.couscous.ast; import org.zwobble.couscous.ast.visitors.AssignableExpressionNodeVisitor; import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper; -import lombok.Value; - -@Value(staticConstructor="reference") public class VariableReferenceNode implements AssignableExpressionNode { public static VariableReferenceNode reference(VariableNode variable) { return new VariableReferenceNode(variable.getDeclaration()); } - VariableDeclaration referent; + public static VariableReferenceNode reference(VariableDeclaration referent) { + return new VariableReferenceNode(referent); + } + + private final VariableDeclaration referent; + private VariableReferenceNode(VariableDeclaration referent) { + this.referent = referent; + } + + public VariableDeclaration getReferent() { + return referent; + } + @Override public <T> T accept(ExpressionNodeMapper<T> visitor) { return visitor.visit(this); @@ -31,4 +40,35 @@ public class VariableReferenceNode implements AssignableExpressionNode { public void accept(AssignableExpressionNodeVisitor mapper) { mapper.visit(this); } + + @Override + public String toString() { + return "VariableReferenceNode(referent=" + referent + ")"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((referent == null) ? 0 : referent.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; + VariableReferenceNode other = (VariableReferenceNode) obj; + if (referent == null) { + if (other.referent != null) + return false; + } else if (!referent.equals(other.referent)) + return false; + return true; + } } diff --git a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java index 99b7f69..fd63ce0 100644 --- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java +++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java @@ -72,7 +72,8 @@ public class ValueObjectTests { {TernaryConditionalNode.class}, {ThisReferenceNode.class}, {TypeName.class}, - {VariableDeclaration.class} + {VariableDeclaration.class}, + {VariableReferenceNode.class} }); } |
