private void ensureCompleteEvaluation(ASTNode node, Object object, InternalWorkingMemory workingMemory, LeftTuple leftTuple) { node = unwrap(node); if (node == null || !(node instanceof And || node instanceof Or)) { return; } ensureBranchEvaluation(object, workingMemory, leftTuple, ((BooleanNode)node).getLeft()); ensureBranchEvaluation(object, workingMemory, leftTuple, ((BooleanNode)node).getRight()); }
private CombinedCondition analyzeCombinedCondition(BooleanNode booleanNode, boolean isNegated) { CombinedCondition condition = new CombinedCondition(booleanNode instanceof And, isNegated); condition.addCondition(analyzeCondition(booleanNode.getLeft())); condition.addCondition(analyzeCondition(booleanNode.getRight())); return condition; }
private boolean isEvaluated(ASTNode node) { node = unwrapSubstatement(node); if (node instanceof Contains) { return ((Contains)node).getFirstStatement().getAccessor() != null; } return node instanceof BinaryOperation ? ((BooleanNode) node).getLeft().getAccessor() != null : node.getAccessor() != null; }