List of usage examples for org.springframework.data.mongodb.core.query Criteria all
public Criteria all(Collection<?> o)
From source file:piecework.common.SearchQueryBuilder.java
public Query build(Set<String> allowedProcessDefinitionKeys, Sanitizer sanitizer) { Query query = new Query(); Set<String> filteredProcessDefinitionKeys; if (searchCriteria.getProcessDefinitionKeys() != null && !searchCriteria.getProcessDefinitionKeys().isEmpty()) filteredProcessDefinitionKeys = Sets.intersection(searchCriteria.getProcessDefinitionKeys(), allowedProcessDefinitionKeys); else/*from ww w. j ava 2s. c o m*/ filteredProcessDefinitionKeys = allowedProcessDefinitionKeys; query.addCriteria(where("processDefinitionKey").in(filteredProcessDefinitionKeys)); if (StringUtils.isNotEmpty(searchCriteria.getProcessInstanceId())) query.addCriteria(where("processInstanceId").is(searchCriteria.getProcessInstanceId())); Map<SearchFacet, Object> facetParameters = searchCriteria.getFacetParameters(); if (facetParameters != null && !facetParameters.isEmpty()) { for (Map.Entry<SearchFacet, Object> entry : facetParameters.entrySet()) { if (entry.getKey() == null) continue; if (entry.getValue() == null) continue; query.addCriteria(entry.getKey().criteria(entry.getValue())); } } if (StringUtils.isNotBlank(searchCriteria.getProcessStatus())) { if (!searchCriteria.getProcessStatus().equalsIgnoreCase("all")) query.addCriteria(where("processStatus").is(searchCriteria.getProcessStatus())); } if (StringUtils.isNotEmpty(searchCriteria.getInitiatedBy())) query.addCriteria(where("initiatorId").is(searchCriteria.getInitiatedBy())); if (!searchCriteria.getKeywords().isEmpty()) { List<String> tokens = new ArrayList<String>(); for (String keyword : searchCriteria.getKeywords()) { String resultString = keyword.replaceAll("[^\\p{L}\\p{Nd}]\\-", ","); String[] components = resultString.split(","); if (components != null && components.length > 0) tokens.addAll(Arrays.asList(components)); } int count = 0; Criteria criteria = where("keywords"); List<Pattern> dbObjects = new ArrayList<Pattern>(); for (String keyword : tokens) { dbObjects.add(Pattern.compile(keyword, 0)); count++; } if (count > 0) query.addCriteria(criteria.all(dbObjects)); } return query; }