root.children.set(i, convertToCNF(root.children.get(i)));
/** * Builds the expression and optimized leaf list from a non-normalized * expression. Sets the leaves field with the unique leaves. * @param expr non-normalized expression * @param leaves non-unique leaves * @return the normalized expression */ ExpressionTree expression(ExpressionTree expr, List<PredicateLeaf> leaves) { expr = pushDownNot(expr); expr = foldMaybe(expr); expr = flatten(expr); expr = convertToCNF(expr); expr = flatten(expr); expr = buildLeafList(expr, leaves, new HashMap<PredicateLeaf, ExpressionTree>()); return expr; }