From b2e4a0049d2e6139e51b91a666fb34d8ebe329aa Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 25 Oct 2015 18:29:43 +0000 Subject: Remove lombok from TernaryConditionalNode --- .../couscous/ast/TernaryConditionalNode.java | 81 ++++++++++++++++++++-- .../couscous/frontends/java/JavaReader.java | 2 +- 2 files changed, 76 insertions(+), 7 deletions(-) (limited to 'src/main/java/org') 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 accept(ExpressionNodeMapper 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())); -- cgit v1.2.3