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

    • Method Detail

      • getParentPath

        @NotNull
        @NotNull ItemPath getParentPath()
      • 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
      • 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()
      • 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