@Override public String expression(String nodeIdentifier) { return String.format("ANY(collectionFields IN {`%s`} WHERE collectionFields in %s.`%s`) ", filter.uniqueParameterName(), nodeIdentifier, filter.getPropertyName()); }
public String uniqueParameterName() { return isNested() ? getNestedPropertyName() + "_" + getPropertyName() + "_" + index : getPropertyName() + "_" + index; }
@Override public String expression(String nodeIdentifier) { if (filter.getComparisonOperator().equals(IS_NULL)) { return String.format("%s.`%s` IS NULL ", nodeIdentifier, filter.getPropertyName()); } else if (filter.getComparisonOperator().equals(EXISTS)) { return String.format("EXISTS(%s.`%s`) ", nodeIdentifier, filter.getPropertyName()); } else if (filter.getComparisonOperator().equals(IS_TRUE)) { return String.format("%s.`%s` = true ", nodeIdentifier, filter.getPropertyName()); } else { return String.format("%s.`%s` %s { `%s` } ", nodeIdentifier, filter.getPropertyName(), filter.getComparisonOperator().getValue(), filter.uniqueParameterName()); } }
@Override public String expression(final String nodeIdentifier) { final Filter filter = this.getFilter(); return String.format("toLower(%s.`%s`) %s toLower({ `%s` }) ", nodeIdentifier, filter.getPropertyName(), ComparisonOperator.EQUALS.getValue(), filter.uniqueParameterName()); } }
@Override public String expression(String nodeIdentifier) { String pointPropertyOfEntity = nodeIdentifier + "." + getFilter().getPropertyName(); String comparisonOperator = getFilter().getComparisonOperator().getValue(); return String.format( "distance({%s},%s) %s {%s} ", OGM_POINT_PARAMETER, pointPropertyOfEntity, comparisonOperator, DISTANCE_VALUE_PARAMETER); }
if (noneOperatorEncounteredInStartFilters) { throw new MissingOperatorException( "BooleanOperator missing for filter with property name " + filter.getPropertyName()); if (noneOperatorEncounteredInEndFilters) { throw new MissingOperatorException( "BooleanOperator missing for filter with property name " + filter.getPropertyName()); if (filter.getBooleanOperator().equals(BooleanOperator.NONE)) { throw new MissingOperatorException( "BooleanOperator missing for filter with property name " + filter.getPropertyName());
public FilteredQuery build() { if (!built) { int i = 0; for (Filter filter : filters) { if (i != 0 && filter.getBooleanOperator().equals(BooleanOperator.NONE)) { throw new MissingOperatorException("BooleanOperator missing for filter with property name " + filter.getPropertyName() + ". Only the first filter may not specify the BooleanOperator."); } if (filter.isNested()) { appendNestedFilter(filter); hasRelationshipMatch = true; } else if (filter.isDeepNested()) { appendDeepNestedFilter(filter); hasRelationshipMatch = true; } else { //If the filter is not nested, it belongs to the node we're returning principalClause().append(filter); } parameters.putAll(filter.parameters()); i++; } built = true; } return new FilteredQuery(toCypher(), parameters); }
filter.setOwnerEntityType(entityType); String propertyName = resolvePropertyName(filter.getOwnerEntityType(), filter.getPropertyName()); Filter.setNameFromProperty(filter, propertyName); FieldInfo fieldInfo = classInfo.getFieldInfo(filter.getPropertyName()); if (fieldInfo != null) { filter.setPropertyConverter(fieldInfo.getPropertyConverter());