@Override public QueryNode process(QueryNode queryTree) throws QueryNodeException { Operator defaultOperator = getQueryConfigHandler().get(ConfigurationKeys.DEFAULT_OPERATOR); if (defaultOperator == null) { throw new IllegalArgumentException( "DEFAULT_OPERATOR should be set on the QueryConfigHandler"); } this.usingAnd = StandardQueryConfigHandler.Operator.AND == defaultOperator; if (queryTree instanceof GroupQueryNode) { queryTree = ((GroupQueryNode) queryTree).getChild(); } this.queryNodeList = new ArrayList<>(); this.latestNodeVerified = false; readTree(queryTree); List<QueryNode> actualQueryNodeList = this.queryNodeList; for (int i = 0; i < actualQueryNodeList.size(); i++) { QueryNode node = actualQueryNodeList.get(i); if (node instanceof GroupQueryNode) { actualQueryNodeList.set(i, process(node)); } } this.usingAnd = false; if (queryTree instanceof BooleanQueryNode) { queryTree.set(actualQueryNodeList); return queryTree; } else { return new BooleanQueryNode(actualQueryNodeList); } }
@Override public QueryNode process(QueryNode queryTree) throws QueryNodeException { Operator defaultOperator = getQueryConfigHandler().get(ConfigurationKeys.DEFAULT_OPERATOR); if (defaultOperator == null) { throw new IllegalArgumentException( "DEFAULT_OPERATOR should be set on the QueryConfigHandler"); } this.usingAnd = StandardQueryConfigHandler.Operator.AND == defaultOperator; if (queryTree instanceof GroupQueryNode) { queryTree = ((GroupQueryNode) queryTree).getChild(); } this.queryNodeList = new ArrayList<>(); this.latestNodeVerified = false; readTree(queryTree); List<QueryNode> actualQueryNodeList = this.queryNodeList; for (int i = 0; i < actualQueryNodeList.size(); i++) { QueryNode node = actualQueryNodeList.get(i); if (node instanceof GroupQueryNode) { actualQueryNodeList.set(i, process(node)); } } this.usingAnd = false; if (queryTree instanceof BooleanQueryNode) { queryTree.set(actualQueryNodeList); return queryTree; } else { return new BooleanQueryNode(actualQueryNodeList); } }