Class FilterSet<E extends Filter>

  • All Implemented Interfaces:
    Dumpable
    Direct Known Subclasses:
    ItemFilterSet, PathFilterSet

    public abstract class FilterSet<E extends Filter>
    extends Object
    implements Dumpable
    The item filter set holds a set of item filters each attributed as include or exclude filter. The evaluation of the set allows included items and rejects excluded items.

    Additionally it contains a "root" path for which the filters are evaluated. if an item has not the node addressed by the root path as ancestor, it is always excluded.

    • Constructor Detail

      • FilterSet

        public FilterSet()
        Default constructor. initializes the root path to "/"
      • FilterSet

        public FilterSet​(String root)
        Creates a new item filter set and sets the respective root path
        Parameters:
        root - path
    • Method Detail

      • getRoot

        @Nonnull
        public String getRoot()
        Returns the root path
        Returns:
        root path
      • setRoot

        public void setRoot​(@Nonnull
                            String path)
        Sets the root path
        Parameters:
        path - root path
      • getImportMode

        @Nonnull
        public ImportMode getImportMode()
        Returns the import mode that is specified for this filter set. Defaults to ImportMode.REPLACE.
        Returns:
        the import mode.
      • setImportMode

        public void setImportMode​(@Nonnull
                                  ImportMode mode)
        Sets the import mode.
        Parameters:
        mode - import mode
      • seal

        @Nonnull
        public FilterSet seal()
        Seals this list, i.e. makes it unmodifiable.
        Returns:
        this list
      • isSealed

        public boolean isSealed()
        Checks if this filter set is sealed.
        Returns:
        true if sealed.
      • addAll

        @Nonnull
        public FilterSet addAll​(@Nonnull
                                FilterSet<E> set)
        Adds (replaces) all entries from the given set to this one.
        Parameters:
        set - the set of entries
        Returns:
        this suitable for chaining.
      • addInclude

        @Nonnull
        public FilterSet addInclude​(@Nonnull
                                    E filter)
        Adds a new item filter as included entry.
        Parameters:
        filter - the filter
        Returns:
        this suitable for chaining.
      • addExclude

        @Nonnull
        public FilterSet addExclude​(@Nonnull
                                    E filter)
        Adds a new item filter as excluded entry.
        Parameters:
        filter - the filter
        Returns:
        this suitable for chaining.
      • isEmpty

        public boolean isEmpty()
        Checks if this filter set has any entries defined.
        Returns:
        true if empty
      • covers

        public boolean covers​(@Nonnull
                              String path)
        Checks if the given item is covered by this filter set. I.e. if the node addressed by the root path is an ancestor of the given item.
        Parameters:
        path - path of the item
        Returns:
        true if this set covers the given item
      • isAncestor

        public boolean isAncestor​(@Nonnull
                                  String path)
        Checks if the given item is an ancestor of the root node.
        Parameters:
        path - path of the item to check
        Returns:
        true if the given item is an ancestor
      • dump

        public void dump​(@Nonnull
                         DumpContext ctx,
                         boolean isLast)
        Dumps some human readable information using the given context.
        Specified by:
        dump in interface Dumpable
        Parameters:
        ctx - the dump context
        isLast - specifies if this is the last element to dump on this level
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object