@Override protected ViewQuery create(Part part, Iterator<Object> objectIterator) { ConvertingIterator iterator = new ConvertingIterator(objectIterator, converter); switch (part.getType()) { case GREATER_THAN_EQUAL: startKey(iterator); break; case LESS_THAN_EQUAL: query.inclusiveEnd(true); case BEFORE: case LESS_THAN: // fall-through on purpose here endKey(iterator); break; case BETWEEN: startKey(iterator); endKey(iterator); break; case STARTING_WITH: // starting_with only supports String keys String nameStart = nextString(iterator); query.startKey(nameStart).endKey(nameStart + "\uefff"); query.inclusiveEnd(false); break; case SIMPLE_PROPERTY: key(iterator); break; case IN: query.keys(in(iterator)); break; default: throw new IllegalArgumentException( "Unsupported keyword in View query derivation: " + part.toString()); } return query; }
/* * (non-Javadoc) * @see org.springframework.data.gemfire.repository.query.Predicate#toString(java.lang.String) */ @Override public String toString(String alias) { Type type = part.getType(); return String.format( "%s.%s %s", alias == null ? QueryBuilder.DEFAULT_ALIAS : alias, part.getProperty().toDotPath(), toClause(type)); }