@Override protected FieldCriterion mergeConditions(List<FieldCriterion> criterions) { if (CollectionUtils.isEmpty(criterions)) { return null; } StringBuilder builder = new StringBuilder(); for (FieldCriterion criterion : criterions) { builder.append(criterion.getValue()); builder.append(" "); } return new FieldCriterion(criterions.get(0).getField(), builder.toString().trim(), criterions.get(0).getOperator()); }
@Override public SearchCriterion transformFieldCriterion(FieldCriterion criterion, SearchCriterionTransformerHint hint) { for (Entry<String, List<String>> entry : transform.entrySet()) { if (entry.getKey().equals(criterion.getValue().toLowerCase())) { if (entry.getValue().size() > 1 && hint.isExpandFieldValues()) { BooleanCriterion result = new BooleanCriterion(); for (String fieldName : entry.getValue()) { FieldCriterion fieldCriterion = new FieldCriterion(criterion.getField(), fieldName, criterion.isParseFlag()); result.addCriterion(fieldCriterion, SearchOperator.OR); } result.setOperator(criterion.getOperator()); return result; } else { criterion.setValue(entry.getValue().get(0)); } } } return criterion; }
if (fieldCriterion.getOperator() == SearchOperator.NOT) { for (SearchCriterion singleExpandedCondition : expandedCondition.getCriteria()) { criterion.getCriteria().add(singleExpandedCondition); if (fieldCriterion.getOperator() == SearchOperator.OR) { expandedCondition.setOperator(SearchOperator.OR);
private BooleanCriterion expandMultipleField(FieldCriterion criterion, Set<String> multipleExpandFieldNames) { BooleanCriterion fieldCriterion = new BooleanCriterion(); String value = criterion.getValue(); for (String field : multipleExpandFieldNames) { fieldCriterion.addCriterion(new FieldCriterion(field, value), (criterion.getOperator() == SearchOperator.NOT) ? SearchOperator.NOT :SearchOperator.OR); } return fieldCriterion; }
public void translateSearchCriterionToFormField(SearchCriterion criterion, List<AdvancedFormFieldCondition> advancedForm, BooleanCriterion parent, SearchScheme scheme) { if (criterion instanceof BooleanCriterion) { BooleanCriterion bc = (BooleanCriterion)criterion; boolean firstChild = true; for (SearchCriterion subcriterion : bc.getCriteria()) { translateSearchCriterionToFormField(subcriterion, advancedForm, bc, scheme); if (firstChild && parent != null && bc.getOperator() == SearchOperator.OR) { advancedForm.get(advancedForm.size()-1).setOperator(AdvancedFormFieldCondition.OR_OPERATOR); } else if (firstChild && parent != null) { advancedForm.get(advancedForm.size()-1).setOperator(AdvancedFormFieldCondition.AND_OPERATOR); } firstChild = false; } } else if (criterion instanceof FieldCriterion) { FieldCriterion fieldCriterion = (FieldCriterion)criterion; String presentationFieldName = getPresentationFieldName(scheme, fieldCriterion.getField()); advancedForm.add(new AdvancedFormFieldCondition(translateSearchOperator(fieldCriterion.getOperator(), parent), presentationFieldName, fieldCriterion.getValue())); } else if (criterion instanceof FieldRangeCriterion) { FieldRangeCriterion fieldRangeCriterion = (FieldRangeCriterion)criterion; String presentationFieldName = getPresentationFieldName(scheme, fieldRangeCriterion.getField()); advancedForm.add(new AdvancedFormFieldCondition(translateSearchOperator(fieldRangeCriterion.getOperator(), parent), presentationFieldName, new String[] {fieldRangeCriterion.getFrom(), fieldRangeCriterion.getTo()})); } }
public SearchCriterion transformFieldCriterion(FieldCriterion criterion, SearchCriterionTransformerHint hint) { String dateString = criterion.getValue(); FieldRangeCriterion dateRangeCriterion = new FieldRangeCriterion(criterion.getField()); dateRangeCriterion.setOperator(criterion.getOperator()); dateRangeCriterion.setFrom(appendMissingDateFormat(dateString, false)); dateRangeCriterion.setTo(appendMissingDateFormat(dateString, true)); return dateRangeCriterion; }