protected void validateFilter() throws QueryException { if (filter.getConditions() == null || filter.getConditions().isEmpty()) { LOGGER.trace("NaryLogicalFilter filter must have at least two conditions in it. " + "Removing logical filter and processing simple condition."); throw new QueryException("NaryLogicalFilter filter '" + filter.debugDump() + "' must have at least two conditions in it. Removing logical filter and processing simple condition."); } }
List<? extends ObjectFilter> conditions = nAry.getConditions(); if (conditions == null || conditions.isEmpty()){ LOGGER.debug("No conditions sepcified for logical filter. Skipping processing logical filter."); for (ObjectFilter objFilter : nAry.getConditions()){ Filter f = getInterpreter().interpret(objFilter, icfNameMapper); filters.add(f);
} else if (f instanceof NaryLogicalFilter) { List<ObjectFilter> subFilters = createAttributeQueryInternal( ((NaryLogicalFilter) f).getConditions()); if (subFilters.size() > 1) { if (f instanceof OrFilter) {
private static <T extends PrismValue> Collection<T> getValuesFromFilter(ObjectFilter filter, QName itemName, PrismContext prismContext) throws SchemaException { ItemPath propertyPath = ItemName.fromQName(itemName); if (filter instanceof EqualFilter && propertyPath.equivalent(((EqualFilter) filter).getFullPath())) { return ((EqualFilter) filter).getValues(); } else if (filter instanceof RefFilter && propertyPath.equivalent(((RefFilter) filter).getFullPath())) { return (Collection<T>) ((RefFilter) filter).getValues(); } else if (filter instanceof AndFilter) { return getValuesFromFilter(((NaryLogicalFilter) filter).getConditions(), itemName, prismContext); } else if (filter instanceof TypeFilter) { return getValuesFromFilter(((TypeFilter) filter).getFilter(), itemName, prismContext); } else { return null; } }