Interface ValueFilter<V extends PrismValue,D extends ItemDefinition<?>>
-
- All Superinterfaces:
DebugDumpable,Freezable,Itemable,ItemFilter,ObjectFilter,PrismContextSensitive,Revivable,Serializable
- All Known Subinterfaces:
AnyInFilter<T>,ComparativeFilter<T>,EqualFilter<T>,FuzzyStringMatchFilter<T>,GreaterFilter<T>,LessFilter<T>,PropertyValueFilter<T>,RefFilter,SubstringFilter<T>
- All Known Implementing Classes:
AnyInFilterImpl,ComparativeFilterImpl,EqualFilterImpl,FuzzyStringMatchFilterImpl,GreaterFilterImpl,LessFilterImpl,PropertyValueFilterImpl,RefFilterImpl,SubstringFilterImpl,ValueFilterImpl
public interface ValueFilter<V extends PrismValue,D extends ItemDefinition<?>> extends ObjectFilter, ItemFilter, Itemable
-
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default booleancanNestInsideExists(ItemPath existsPath)Returns true, if current filter can be rewritten to be nested inside exists filter with prefix path This means filter with path prefix/item will become prefix exists (item)voidcheckConsistence(boolean requireDefinitions)ValueFilter<V,D>clone()Does a SHALLOW clone.booleanequals(Object o, boolean exact)@Nullable QNamegetDeclaredMatchingRule()Returns explicit matching rule provided in the filter.DgetDefinition()@NotNull ItemNamegetElementName()@Nullable ExpressionWrappergetExpression()@NotNull ItemPathgetFullPath()@Nullable QNamegetMatchingRule()Returns matching rule that should be used.@NotNull ItemPathgetParentPath()ItemPathgetPath()@Nullable ItemDefinition<?>getRightHandSideDefinition()@Nullable ItemPathgetRightHandSidePath()VgetSingleValue()Returns single value ornull, throws exception if multiple values are present.@Nullable List<V>getValues()Returns a live list of values.default booleanhasNoValue()Returns true if there are no values (list is null or empty).booleanisRaw()booleanmatch(PrismContainerValue<?> cvalue, MatchingRuleRegistry matchingRuleRegistry)default booleanmatchesOnly(ItemPath... paths)Returns true, if filter processes only enumerated item paths and does not use referencedBy, ownedBy where path context changes drastically.default ValueFilter<V,D>nested(ItemPath existsPath)voidsetDefinition(D definition)voidsetExpression(@Nullable ExpressionWrapper expression)voidsetMatchingRule(@Nullable QName matchingRule)voidsetRightHandSideDefinition(@Nullable ItemDefinition<?> rightHandSideDefinition)voidsetRightHandSidePath(@Nullable ItemPath rightHandSidePath)voidsetValue(V value)-
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazily
-
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutable
-
Methods inherited from interface com.evolveum.midpoint.prism.query.ObjectFilter
accept, revive
-
Methods inherited from interface com.evolveum.midpoint.prism.PrismContextSensitive
getPrismContext
-
-
-
-
Method Detail
-
getFullPath
@NotNull @NotNull ItemPath getFullPath()
- Specified by:
getFullPathin interfaceItemFilter
-
getParentPath
@NotNull @NotNull ItemPath getParentPath()
-
getElementName
@NotNull @NotNull ItemName getElementName()
- Specified by:
getElementNamein interfaceItemable
-
getDefinition
@Nullable D getDefinition()
- Specified by:
getDefinitionin interfaceItemable
-
setDefinition
void setDefinition(@Nullable D definition)
-
getMatchingRule
@Nullable @Nullable QName getMatchingRule()
Returns matching rule that should be used. This can be matching rule provided with the filter or some fallback/default. See MID-6935 for more, currently only returns the explicitly provided matching rule.
-
getDeclaredMatchingRule
@Nullable @Nullable QName getDeclaredMatchingRule()
Returns explicit matching rule provided in the filter.
-
setMatchingRule
void setMatchingRule(@Nullable @Nullable QName matchingRule)
-
getValues
@Nullable @Nullable List<V> getValues()
Returns a live list of values. The filter values can be manipulated through it. TODO - reconsider.
-
hasNoValue
default boolean hasNoValue()
Returns true if there are no values (list is null or empty). If false is returned, thengetValues()is definitely not null.
-
getSingleValue
@Nullable V getSingleValue()
Returns single value ornull, throws exception if multiple values are present.
-
setValue
void setValue(V value)
- Parameters:
value- value, has to be parent-less
-
getExpression
@Nullable @Nullable ExpressionWrapper getExpression()
-
setExpression
void setExpression(@Nullable @Nullable ExpressionWrapper expression)
-
getRightHandSidePath
@Nullable @Nullable ItemPath getRightHandSidePath()
-
setRightHandSidePath
void setRightHandSidePath(@Nullable @Nullable ItemPath rightHandSidePath)
-
getRightHandSideDefinition
@Nullable @Nullable ItemDefinition<?> getRightHandSideDefinition()
-
setRightHandSideDefinition
void setRightHandSideDefinition(@Nullable @Nullable ItemDefinition<?> rightHandSideDefinition)
-
isRaw
boolean isRaw()
-
match
boolean match(PrismContainerValue<?> cvalue, MatchingRuleRegistry matchingRuleRegistry) throws SchemaException
- Specified by:
matchin interfaceObjectFilter- Throws:
SchemaException
-
clone
ValueFilter<V,D> clone()
Description copied from interface:ObjectFilterDoes a SHALLOW clone.- Specified by:
clonein interfaceObjectFilter
-
equals
boolean equals(Object o, boolean exact)
- Specified by:
equalsin interfaceObjectFilter
-
checkConsistence
void checkConsistence(boolean requireDefinitions)
- Specified by:
checkConsistencein interfaceObjectFilter
-
matchesOnly
default boolean matchesOnly(ItemPath... paths)
Description copied from interface:ObjectFilterReturns true, if filter processes only enumerated item paths and does not use referencedBy, ownedBy where path context changes drastically. Useful to find if filter could be executed with limited set of information (e.g. only access to target name inRefFilter- Specified by:
matchesOnlyin interfaceObjectFilter
-
canNestInsideExists
@Experimental default boolean canNestInsideExists(ItemPath existsPath)
Returns true, if current filter can be rewritten to be nested inside exists filter with prefix path This means filter with path prefix/item will become prefix exists (item)- Parameters:
potential- exists path- Returns:
- true if filter can be rewritten and nested inside exists
-
nested
@Experimental default ValueFilter<V,D> nested(ItemPath existsPath)
-
-