/** * Construct FILTERs for the given value expression node, exploiting * AND nodes at the top to split the node into multiple filters (if * possible). Particularly useful to get filter expressions for all * conjuncts when given a {@link ValueExpressionNode} in CNF as input. * * @param vexpNode the value expression node * @param filters set where to collect filters in * * @return the array of filters */ public List<FilterNode> constructFiltersForValueExpressionNode( final IValueExpressionNode vexp, final List<FilterNode> filters) { final List<IValueExpressionNode> topLevelConjuncts = StaticAnalysis.extractToplevelConjuncts( vexp, new ArrayList<IValueExpressionNode>()); for (IValueExpressionNode toplevelConjunct : topLevelConjuncts) { filters.add(new FilterNode(toplevelConjunct)); } return filters; }
/** * Construct FILTERs for the given value expression node, exploiting * AND nodes at the top to split the node into multiple filters (if * possible). Particularly useful to get filter expressions for all * conjuncts when given a {@link ValueExpressionNode} in CNF as input. * * @param vexpNode the value expression node * @param filters set where to collect filters in * * @return the array of filters */ public List<FilterNode> constructFiltersForValueExpressionNode( final IValueExpressionNode vexp, final List<FilterNode> filters) { final List<IValueExpressionNode> topLevelConjuncts = StaticAnalysis.extractToplevelConjuncts( vexp, new ArrayList<IValueExpressionNode>()); for (IValueExpressionNode toplevelConjunct : topLevelConjuncts) { filters.add(new FilterNode(toplevelConjunct)); } return filters; }
extractToplevelConjuncts( (ValueExpressionNode)functionNode.get(0), nodes); extractToplevelConjuncts( (ValueExpressionNode)functionNode.get(1), nodes);
extractToplevelConjuncts( (ValueExpressionNode)functionNode.get(0), nodes); extractToplevelConjuncts( (ValueExpressionNode)functionNode.get(1), nodes);
extractToplevelConjuncts( left, new ArrayList<IValueExpressionNode>()); final List<IValueExpressionNode> rightConjuncts = extractToplevelConjuncts( right, new ArrayList<IValueExpressionNode>());
extractToplevelConjuncts( left, new ArrayList<IValueExpressionNode>()); final List<IValueExpressionNode> rightConjuncts = extractToplevelConjuncts( right, new ArrayList<IValueExpressionNode>());
StaticAnalysis.extractToplevelConjuncts( toCheck, new ArrayList<IValueExpressionNode>());
StaticAnalysis.extractToplevelConjuncts( toCheck, new ArrayList<IValueExpressionNode>());
StaticAnalysis.extractToplevelConjuncts( toCheck, new ArrayList<IValueExpressionNode>());