diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-25 18:29:43 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-25 18:29:43 +0000 |
| commit | b2e4a0049d2e6139e51b91a666fb34d8ebe329aa (patch) | |
| tree | 4f438e59a8bb46531b5cc095c4cef953171bd752 /src/main/java/org/zwobble | |
| parent | 8b3e130f87a9b55ce1d7ae02747a0eeb97204391 (diff) | |
Remove lombok from TernaryConditionalNode
Diffstat (limited to 'src/main/java/org/zwobble')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java | 81 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java | 2 |
2 files changed, 76 insertions, 7 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java b/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java index a6ffad3..e9d3f6c 100644 --- a/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java +++ b/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java @@ -2,13 +2,38 @@ package org.zwobble.couscous.ast; import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper; -import lombok.Value; - -@Value public class TernaryConditionalNode implements ExpressionNode { - ExpressionNode condition; - ExpressionNode ifTrue; - ExpressionNode ifFalse; + public static TernaryConditionalNode ternaryConditional( + ExpressionNode condition, + ExpressionNode ifTrue, + ExpressionNode ifFalse) { + return new TernaryConditionalNode(condition, ifTrue, ifFalse); + } + + private final ExpressionNode condition; + private final ExpressionNode ifTrue; + private final ExpressionNode ifFalse; + + private TernaryConditionalNode( + ExpressionNode condition, + ExpressionNode ifTrue, + ExpressionNode ifFalse) { + this.condition = condition; + this.ifTrue = ifTrue; + this.ifFalse = ifFalse; + } + + public ExpressionNode getCondition() { + return condition; + } + + public ExpressionNode getIfTrue() { + return ifTrue; + } + + public ExpressionNode getIfFalse() { + return ifFalse; + } @Override public <T> T accept(ExpressionNodeMapper<T> visitor) { @@ -19,4 +44,48 @@ public class TernaryConditionalNode implements ExpressionNode { public TypeName getType() { return ifTrue.getType(); } + + @Override + public String toString() { + return "TernaryConditionalNode(condition=" + condition + ", ifTrue=" + + ifTrue + ", ifFalse=" + ifFalse + ")"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((condition == null) ? 0 : condition.hashCode()); + result = prime * result + ((ifFalse == null) ? 0 : ifFalse.hashCode()); + result = prime * result + ((ifTrue == null) ? 0 : ifTrue.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; + TernaryConditionalNode other = (TernaryConditionalNode) obj; + if (condition == null) { + if (other.condition != null) + return false; + } else if (!condition.equals(other.condition)) + return false; + if (ifFalse == null) { + if (other.ifFalse != null) + return false; + } else if (!ifFalse.equals(other.ifFalse)) + return false; + if (ifTrue == null) { + if (other.ifTrue != null) + return false; + } else if (!ifTrue.equals(other.ifTrue)) + return false; + return true; + } } diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java index 2bb82ef..12c9b6e 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -283,7 +283,7 @@ public class JavaReader { } private static ExpressionNode readConditionalExpression(ConditionalExpression expression) { - return new TernaryConditionalNode( + return TernaryConditionalNode.ternaryConditional( readExpression(expression.getExpression()), readExpression(expression.getThenExpression()), readExpression(expression.getElseExpression())); |
