Interface ValueFilter<V extends PrismValue,D extends ItemDefinition<?>>

All Superinterfaces:
DebugDumpable, Freezable, Itemable, ItemFilter, ObjectFilter, Revivable, Serializable
All Known Subinterfaces:
AnyInFilter<T>, ComparativeFilter<T>, EqualFilter<T>, FuzzyStringMatchFilter<T>, GreaterFilter<T>, LessFilter<T>, PropertyValueFilter<T>, RefFilter, SubstringFilter<T>

public interface ValueFilter<V extends PrismValue,D extends ItemDefinition<?>> extends ObjectFilter, ItemFilter, Itemable
  • Method Details

    • getFullPath

      @NotNull @NotNull ItemPath getFullPath()
      Specified by:
      getFullPath in interface ItemFilter
    • getParentPath

      @NotNull @NotNull ItemPath getParentPath()
    • getElementName

      @NotNull @NotNull ItemName getElementName()
      Specified by:
      getElementName in interface Itemable
    • getDefinition

      @Nullable D getDefinition()
      Specified by:
      getDefinition in interface Itemable
    • 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, then getValues() is definitely not null.
    • getSingleValue

      @Nullable V getSingleValue()
      Returns single value or null, throws exception if multiple values are present.
    • setValue

      void setValue(V value)
      Parameters:
      value - value, has to be parent-less
    • setValues

      void setValues(@NotNull @NotNull Collection<V> values)
      Parameters:
      values - values to be set, have 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)
    • getPath

      ItemPath getPath()
      Specified by:
      getPath in interface Itemable
    • isRaw

      boolean isRaw()
    • match

      boolean match(PrismContainerValue<?> cvalue, MatchingRuleRegistry matchingRuleRegistry) throws SchemaException
      Specified by:
      match in interface ObjectFilter
      Throws:
      SchemaException
    • clone

      ValueFilter<V,D> clone()
      Description copied from interface: ObjectFilter
      Does a SHALLOW clone.
      Specified by:
      clone in interface ObjectFilter
    • equals

      boolean equals(Object o, boolean exact)
      Specified by:
      equals in interface ObjectFilter
    • checkConsistence

      void checkConsistence(boolean requireDefinitions)
      Specified by:
      checkConsistence in interface ObjectFilter
    • matchesOnly

      default boolean matchesOnly(ItemPath... paths)
      Description copied from interface: ObjectFilter
      Returns 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 in RefFilter
      Specified by:
      matchesOnly in interface ObjectFilter
    • 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)