private void filterByMetaFilters(SelectQuery<Record> query, Map<String, String> filters) { if (filters == null || filters.isEmpty()) { return; } for (Map.Entry<String, String> e : filters.entrySet()) { query.addConditions(jsonText(PROCESS_QUEUE.META, e.getKey()).contains(e.getValue())); } }
protected Condition toCondition(Part part, Iterator<Object> iterator) { String property = part.getProperty().toDotPath(); Field<Object> field = field(property); switch (part.getType()) { case AFTER: case GREATER_THAN: return field.gt(iterator.next()); case GREATER_THAN_EQUAL: return field.ge(iterator.next()); case BEFORE: case LESS_THAN: return field.lt(iterator.next()); case LESS_THAN_EQUAL: return field.le(iterator.next()); case BETWEEN: return field.between(iterator.next(), iterator.next()); case IS_NULL: return field.isNull(); case IS_NOT_NULL: return field.isNotNull(); case IN: return field.in(toList(iterator)); case NOT_IN: return field.notIn(toList(iterator)); case LIKE: return lowerIfIgnoreCase(part, field, iterator); case NOT_LIKE: return lowerIfIgnoreCase(part, field, iterator).not(); case STARTING_WITH: return field.startsWith(iterator.next()); case ENDING_WITH: return field.endsWith(iterator.next()); case CONTAINING: return field.contains(iterator.next()); case SIMPLE_PROPERTY: return field.eq(iterator.next()); case NEGATING_SIMPLE_PROPERTY: return field.ne(iterator.next()); case TRUE: return field.eq(true); case FALSE: return field.eq(false); default: throw new IllegalArgumentException("Unsupported keyword!"); } }
return field.endsWith(iterator.next()); case CONTAINING: return field.contains(iterator.next()); case SIMPLE_PROPERTY: return field.eq(iterator.next());
switch (command) { case "cs": condition = field.contains(parts[2]); break; case "sw":
return toField(ctx, left).contains((Field) toField(ctx, parseConcat(ctx, null)));