diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-25 18:31:08 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-25 18:31:08 +0000 |
| commit | 9fd3cbb9624e8216dc379637cd2e5eebcd386fbb (patch) | |
| tree | f46a071932f70032f541e2330355974b1c8ee70e | |
| parent | b2e4a0049d2e6139e51b91a666fb34d8ebe329aa (diff) | |
Remove lombok from ThisReferenceNode
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java | 47 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java | 2 |
2 files changed, 45 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java b/src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java index c8fa54a..4e7adc6 100644 --- a/src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java +++ b/src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java @@ -2,14 +2,53 @@ package org.zwobble.couscous.ast; import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper; -import lombok.Value; - -@Value(staticConstructor="thisReference") public class ThisReferenceNode implements ExpressionNode { - TypeName type; + public static ThisReferenceNode thisReference(TypeName type) { + return new ThisReferenceNode(type); + } + + private final TypeName type; + private ThisReferenceNode(TypeName type) { + this.type = type; + } + + public TypeName getType() { + return type; + } + @Override public <T> T accept(ExpressionNodeMapper<T> visitor) { return visitor.visit(this); } + + @Override + public String toString() { + return "ThisReferenceNode(type=" + type + ")"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((type == null) ? 0 : type.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; + ThisReferenceNode other = (ThisReferenceNode) obj; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + 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 88588a4..59d80d4 100644 --- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java +++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java @@ -29,6 +29,7 @@ import org.zwobble.couscous.ast.MethodCallNode; import org.zwobble.couscous.ast.ReturnNode; import org.zwobble.couscous.ast.StaticMethodCallNode; import org.zwobble.couscous.ast.TernaryConditionalNode; +import org.zwobble.couscous.ast.ThisReferenceNode; import org.zwobble.couscous.ast.VariableDeclaration; import org.zwobble.couscous.ast.VariableReferenceNode; import org.zwobble.couscous.util.ExtraArrays; @@ -68,6 +69,7 @@ public class ValueObjectTests { {ReturnNode.class}, {StaticMethodCallNode.class}, {TernaryConditionalNode.class}, + {ThisReferenceNode.class}, {VariableDeclaration.class} }); } |
