private void mapFieldToFilter(FilterClause clause, Map<String, List<FilterClause>> mapping) { String field = clause.getField(); if (clause.getOperation() != Clause.Operation.EQUALS || !fieldSet.contains(field)) { return; } List<FilterClause> list = mapping.getOrDefault(field, new ArrayList<>()); list.add(clause); mapping.put(field, list); }
private String getFilterValue(List<FilterClause> singletonFilters) { if (singletonFilters == null) { return NO_FIELD; } // Otherwise, it's a list of size 1 with a singular value, which has been already validated FilterClause filter = singletonFilters.get(0); Object value = filter.getValues().get(0); if (filter.hasNull(value)) { return NO_FIELD; } return makeKeyEntry(filter.getValue(value)); }
private Clause createFilterClause(Operation operation, String field, String... values) { FilterClause filterClause = new ObjectFilterClause(); filterClause.setOperation(operation); filterClause.setField(field); filterClause.setValues(Stream.of(values).map(v -> new Value(Value.Kind.VALUE, v)).collect(Collectors.toList())); return filterClause; }
private boolean hasInvalidFilterClauses(List<FilterClause> filters) { if (filters == null || filters.size() != 1) { return true; } FilterClause filter = filters.get(0); List values = filter.getValues(); return values == null || values.size() != 1; }
@Override public Optional<List<BulletError>> initialize() { Optional<List<BulletError>> errors = super.initialize(); if (errors.isPresent()) { return errors; } if (values != null) { for (Value value : values) { errors = value.initialize(); if (errors.isPresent()) { return errors; } } } return Optional.empty(); } }
private Clause createFilterClause(Operation operation, String field, Expression... expressions) { FilterClause filterClause = new ObjectFilterClause(); filterClause.setOperation(operation); filterClause.setField(field); filterClause.setValues(Stream.of(expressions).map(e -> new Value(e instanceof Identifier ? Value.Kind.FIELD : Value.Kind.VALUE, e.toFormatlessString())).collect(Collectors.toList())); return filterClause; }