/** * Return the datatype label associated with the given node. If there is no datatype label * associated, returns the default datatype. */ static String getDatatype(QueryConfigHandler config, QueryNode node) { // if a datatype has been defined, return it if (node.getTag(DatatypeQueryNode.DATATYPE_TAGID) != null) { return (String) node.getTag(DatatypeQueryNode.DATATYPE_TAGID); } // otherwise, return the default datatype else { return getDefaultDatatype(config); } }
@Override public BooleanQuery build(QueryNode queryNode) throws QueryNodeException { AnyQueryNode andNode = (AnyQueryNode) queryNode; BooleanQuery bQuery = new BooleanQuery(); List<QueryNode> children = andNode.getChildren(); if (children != null) { for (QueryNode child : children) { Object obj = child.getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (obj != null) { Query query = (Query) obj; try { bQuery.add(query, BooleanClause.Occur.SHOULD); } catch (TooManyClauses ex) { throw new QueryNodeException( new MessageImpl(/* * IQQQ.Q0028E_TOO_MANY_BOOLEAN_CLAUSES, * BooleanQuery.getMaxClauseCount() */ QueryParserMessages.EMPTY_MESSAGE), ex); } } } } bQuery.setMinimumNumberShouldMatch(andNode.getMinimumMatchingElements()); return bQuery; }