Class PathFilter


  • public class PathFilter
    extends Object
    Filter which determines whether given path should be included for processing or not
    • Field Detail

      • PROP_INCLUDED_PATHS

        public static final String PROP_INCLUDED_PATHS
        Multi value property name used to determine list of paths to be included
        See Also:
        Constant Field Values
      • PROP_EXCLUDED_PATHS

        public static final String PROP_EXCLUDED_PATHS
        Multi value property name used to determine list of paths to be excluded
        See Also:
        Constant Field Values
    • Constructor Detail

      • PathFilter

        public PathFilter​(Iterable<String> includes,
                          Iterable<String> excludes)
        Constructs the predicate with given included and excluded paths

        If both are empty then all paths would be considered to be included

        Parameters:
        includes - list of paths which should be included
        excludes - list of paths which should not be included
    • Method Detail

      • from

        public static PathFilter from​(@NotNull
                                      @NotNull NodeBuilder defn)
        Constructs the predicate based on given definition state. It looks for multi value property with names PROP_INCLUDED_PATHS and PROP_EXCLUDED_PATHS. Both the properties are optional. If the properties are defined as String instead of Strings, then they are interpreted as a single-element list.
        Parameters:
        defn - nodestate representing the configuration. Generally it would be the nodestate representing the index definition
        Returns:
        predicate based on the passed definition state
      • filter

        public PathFilter.Result filter​(@NotNull
                                        @NotNull String path)
        Determines whether given path is to be included or not
        Parameters:
        path - path to check
        Returns:
        result indicating if the path needs to be included, excluded or just traversed
      • getIncludedPaths

        public List<String> getIncludedPaths()
      • getExcludedPaths

        public List<String> getExcludedPaths()
      • areAllDescendantsIncluded

        public boolean areAllDescendantsIncluded​(String path)
        Check whether this node and all descendants are included in this filter.
        Parameters:
        path - the path
        Returns:
        true if this and all descendants of this path are included in the filter