From e1480c4e706d4902f9865f6119e71e30b4173153 Mon Sep 17 00:00:00 2001 From: student Date: Mon, 12 Feb 2018 17:17:37 -0500 Subject: Refactor EvaluatorResult --- .../bjc/dicelang/eval/FailureEvaluatorResult.java | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 base/src/bjc/dicelang/eval/FailureEvaluatorResult.java (limited to 'base/src/bjc/dicelang/eval/FailureEvaluatorResult.java') diff --git a/base/src/bjc/dicelang/eval/FailureEvaluatorResult.java b/base/src/bjc/dicelang/eval/FailureEvaluatorResult.java new file mode 100644 index 0000000..3b641db --- /dev/null +++ b/base/src/bjc/dicelang/eval/FailureEvaluatorResult.java @@ -0,0 +1,55 @@ +package bjc.dicelang.eval; + +import bjc.dicelang.Node; +import bjc.utils.data.ITree; +import bjc.utils.data.Tree; + +public class FailureEvaluatorResult extends EvaluatorResult { + /** + * Original node data + */ + public ITree origVal; + + public FailureEvaluatorResult() { + super(Type.FAILURE); + } + + public FailureEvaluatorResult(final ITree orig) { + super(Type.FAILURE); + + origVal = orig; + } + + public FailureEvaluatorResult(final Node orig) { + this(new Tree<>(orig)); + } + + public FailureEvaluatorResult(EvaluatorResult right) { + this(new Node(Node.Type.RESULT, right)); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((origVal == null) ? 0 : origVal.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; + FailureEvaluatorResult other = (FailureEvaluatorResult) obj; + if (origVal == null) { + if (other.origVal != null) + return false; + } else if (!origVal.equals(other.origVal)) + return false; + return true; + } +} -- cgit v1.2.3