public SearchArgument.TruthValue evaluate(SearchArgument.TruthValue[] leaves ) { SearchArgument.TruthValue result = null; switch (operator) { case OR: for(ExpressionTree child: children) { result = child.evaluate(leaves).or(result); } return result; case AND: for(ExpressionTree child: children) { result = child.evaluate(leaves).and(result); } return result; case NOT: return children.get(0).evaluate(leaves).not(); case LEAF: return leaves[leaf]; case CONSTANT: return constant; default: throw new IllegalStateException("Unknown operator: " + operator); } }
TruthValue evaluate(TruthValue[] leaves) { TruthValue result = null; switch (operator) { case OR: for(ExpressionTree child: children) { result = child.evaluate(leaves).or(result); } return result; case AND: for(ExpressionTree child: children) { result = child.evaluate(leaves).and(result); } return result; case NOT: return children.get(0).evaluate(leaves).not(); case LEAF: return leaves[leaf]; case CONSTANT: return constant; default: throw new IllegalStateException("Unknown operator: " + operator); } }
public SearchArgument.TruthValue evaluate(SearchArgument.TruthValue[] leaves ) { SearchArgument.TruthValue result = null; switch (operator) { case OR: for(ExpressionTree child: children) { result = child.evaluate(leaves).or(result); } return result; case AND: for(ExpressionTree child: children) { result = child.evaluate(leaves).and(result); } return result; case NOT: return children.get(0).evaluate(leaves).not(); case LEAF: return leaves[leaf]; case CONSTANT: return constant; default: throw new IllegalStateException("Unknown operator: " + operator); } }