List of usage examples for com.liferay.portal.kernel.search.generic MatchQuery getField
public String getField()
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilder.java
License:Open Source License
protected void traversePropertiesQuery(CMISJunction cmisJunction, Query query, QueryConfig queryConfig) throws SearchException { if (query instanceof BooleanQuery) { BooleanQuery booleanQuery = (BooleanQuery) query; List<BooleanClause<Query>> booleanClauses = booleanQuery.clauses(); CMISConjunction anyCMISConjunction = new CMISConjunction(); CMISDisjunction cmisDisjunction = new CMISDisjunction(); CMISConjunction notCMISConjunction = new CMISConjunction(); for (BooleanClause<Query> booleanClause : booleanClauses) { CMISJunction currentCMISJunction = cmisDisjunction; BooleanClauseOccur booleanClauseOccur = booleanClause.getBooleanClauseOccur(); if (booleanClauseOccur.equals(BooleanClauseOccur.MUST)) { currentCMISJunction = anyCMISConjunction; } else if (booleanClauseOccur.equals(BooleanClauseOccur.MUST_NOT)) { currentCMISJunction = notCMISConjunction; }/*from www . j a va2 s . com*/ Query booleanClauseQuery = booleanClause.getClause(); traversePropertiesQuery(currentCMISJunction, booleanClauseQuery, queryConfig); } if (!anyCMISConjunction.isEmpty()) { cmisJunction.add(anyCMISConjunction); } if (!cmisDisjunction.isEmpty()) { cmisJunction.add(cmisDisjunction); } if (!notCMISConjunction.isEmpty()) { cmisJunction.add(new CMISNotExpression(notCMISConjunction)); } } else if (query instanceof MatchQuery) { MatchQuery matchQuery = (MatchQuery) query; if (!isSupportedField(matchQuery.getField())) { return; } CMISCriterion cmisCriterion = buildFieldExpression(matchQuery.getField(), matchQuery.getValue(), CMISSimpleExpressionOperator.EQ, queryConfig); if (cmisCriterion != null) { cmisJunction.add(cmisCriterion); } } else if (query instanceof TermQuery) { TermQuery termQuery = (TermQuery) query; QueryTerm queryTerm = termQuery.getQueryTerm(); if (!isSupportedField(queryTerm.getField())) { return; } CMISCriterion cmisCriterion = buildFieldExpression(queryTerm.getField(), queryTerm.getValue(), CMISSimpleExpressionOperator.EQ, queryConfig); if (cmisCriterion != null) { cmisJunction.add(cmisCriterion); } } else if (query instanceof TermRangeQuery) { TermRangeQuery termRangeQuery = (TermRangeQuery) query; if (!isSupportedField(termRangeQuery.getField())) { return; } String fieldName = termRangeQuery.getField(); String cmisField = getCmisField(fieldName); String cmisLowerTerm = CMISParameterValueUtil.formatParameterValue(fieldName, termRangeQuery.getLowerTerm(), false, queryConfig); String cmisUpperTerm = CMISParameterValueUtil.formatParameterValue(fieldName, termRangeQuery.getUpperTerm(), false, queryConfig); CMISCriterion cmisCriterion = new CMISBetweenExpression(cmisField, cmisLowerTerm, cmisUpperTerm, termRangeQuery.includesLower(), termRangeQuery.includesUpper()); cmisJunction.add(cmisCriterion); } else if (query instanceof WildcardQuery) { WildcardQuery wildcardQuery = (WildcardQuery) query; QueryTerm queryTerm = wildcardQuery.getQueryTerm(); if (!isSupportedField(queryTerm.getField())) { return; } CMISCriterion cmisCriterion = buildFieldExpression(queryTerm.getField(), queryTerm.getValue(), CMISSimpleExpressionOperator.LIKE, queryConfig); if (cmisCriterion != null) { cmisJunction.add(cmisCriterion); } } }