public static void assertEqualsFilter(ObjectFilter objectFilter, QName expectedFilterDef, QName expectedTypeName, ItemPath path) { assertTrue("Wrong filter class: " + objectFilter.getClass(), objectFilter instanceof EqualFilter); EqualFilter filter = (EqualFilter) objectFilter; //we don't have definition in all situation..this is almost OK..it will be computed dynamicaly if (filter.getDefinition() != null){ assertEquals("Wrong filter definition element name", expectedFilterDef, filter.getDefinition().getName()); assertEquals("Wrong filter definition type", expectedTypeName, filter.getDefinition().getTypeName()); } assertPathEquivalent("Wrong filter path", path, filter.getFullPath()); }
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; } }