Class PathFilters


  • public final class PathFilters
    extends java.lang.Object
    Static factory methods for path filter types.
    Author:
    David M. Lloyd
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static PathFilter acceptAll()
      Get a filter which always returns true.
      static PathFilter all​(java.util.Collection<PathFilter> filters)
      Get a path filter which returns true if all of the given filters return true.
      static PathFilter all​(PathFilter... filters)
      Get a path filter which returns true if all of the given filters return true.
      static PathFilter any​(java.util.Collection<PathFilter> filters)
      Get a path filter which returns true if any of the given filters return true.
      static PathFilter any​(PathFilter... filters)
      Get a path filter which returns true if any of the given filters return true.
      static java.util.Iterator<Resource> filtered​(PathFilter filter, java.util.Iterator<Resource> original)
      Get a filtered view of a resource iteration.
      static PathFilter getDefaultImportFilter()
      Get the default import path filter, which excludes all of META-INF and its subdirectories.
      static PathFilter getDefaultImportFilterWithServices()
      Get the default import-with-services path filter which excludes all of META-INF and its subdirectories, with the exception of META-INF/services.
      static PathFilter getMetaInfFilter()
      Get a filter which matches the path "META-INF".
      static PathFilter getMetaInfServicesFilter()
      Get a filter which matches the path "META-INF/services".
      static PathFilter getMetaInfSubdirectoriesFilter()
      Get a filter which matches any subdirectory of the path "META-INF".
      static PathFilter getMetaInfSubdirectoriesWithoutMetaInfFilter()
      Get a filter which matches all of META-INF's subdirectories, but not META-INF itself.
      static PathFilter in​(java.util.Collection<java.lang.String> paths)
      Get a filter which returns true if the tested path is contained within the given collection.
      static PathFilter in​(java.util.Set<java.lang.String> paths)
      Get a filter which returns true if the tested path is contained within the given set.
      static PathFilter is​(java.lang.String path)
      Get a path filter which matches an exact path name.
      static PathFilter isChildOf​(java.lang.String path)
      Get a path filter which matches any path which is a child of the given path name (not including the path name itself).
      static PathFilter isOrIsChildOf​(java.lang.String path)
      Get a path filter which matches any path which is equal to, or a child of, the given path name.
      static PathFilter match​(java.lang.String glob)
      Get a path filter which matches a glob.
      static MultiplePathFilterBuilder multiplePathFilterBuilder​(boolean defaultValue)
      Get a builder for a multiple-path filter.
      static PathFilter none​(java.util.Collection<PathFilter> filters)
      Get a path filter which returns true if none of the given filters return true.
      static PathFilter none​(PathFilter... filters)
      Get a path filter which returns true if none of the given filters return true.
      static PathFilter not​(PathFilter filter)
      Get a path filter which is true when the given filter is false, and vice-versa.
      static PathFilter rejectAll()
      Get a filter which always returns false.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • all

        public static PathFilter all​(PathFilter... filters)
        Get a path filter which returns true if all of the given filters return true.
        Parameters:
        filters - the filters
        Returns:
        the "all" filter
      • all

        public static PathFilter all​(java.util.Collection<PathFilter> filters)
        Get a path filter which returns true if all of the given filters return true.
        Parameters:
        filters - the filters
        Returns:
        the "all" filter
      • any

        public static PathFilter any​(PathFilter... filters)
        Get a path filter which returns true if any of the given filters return true.
        Parameters:
        filters - the filters
        Returns:
        the "any" filter
      • any

        public static PathFilter any​(java.util.Collection<PathFilter> filters)
        Get a path filter which returns true if any of the given filters return true.
        Parameters:
        filters - the filters
        Returns:
        the "any" filter
      • none

        public static PathFilter none​(PathFilter... filters)
        Get a path filter which returns true if none of the given filters return true.
        Parameters:
        filters - the filters
        Returns:
        the "none" filter
      • none

        public static PathFilter none​(java.util.Collection<PathFilter> filters)
        Get a path filter which returns true if none of the given filters return true.
        Parameters:
        filters - the filters
        Returns:
        the "none" filter
      • not

        public static PathFilter not​(PathFilter filter)
        Get a path filter which is true when the given filter is false, and vice-versa.
        Parameters:
        filter - the filter
        Returns:
        the inverting filter
      • match

        public static PathFilter match​(java.lang.String glob)
        Get a path filter which matches a glob. The given glob is a path separated by "/" characters, which may include the special "*" and "**" segment strings which match any directory and any number of nested directories, respectively.
        Parameters:
        glob - the glob
        Returns:
        a filter which returns true if the glob matches
      • is

        public static PathFilter is​(java.lang.String path)
        Get a path filter which matches an exact path name.
        Parameters:
        path - the path name
        Returns:
        a filter which returns true if the path name is an exact match
      • isChildOf

        public static PathFilter isChildOf​(java.lang.String path)
        Get a path filter which matches any path which is a child of the given path name (not including the path name itself).
        Parameters:
        path - the path name
        Returns:
        a filter which returns true if the path name is a child of the given path
      • isOrIsChildOf

        public static PathFilter isOrIsChildOf​(java.lang.String path)
        Get a path filter which matches any path which is equal to, or a child of, the given path name.
        Parameters:
        path - the path name
        Returns:
        a filter which returns true if the path name is equal to, or a child of, the given path
      • multiplePathFilterBuilder

        public static MultiplePathFilterBuilder multiplePathFilterBuilder​(boolean defaultValue)
        Get a builder for a multiple-path filter. Such a filter contains multiple filters, each associated with a flag which indicates that matching paths should be included or excluded.
        Parameters:
        defaultValue - the value to return if none of the nested filters match
        Returns:
        the builder
      • acceptAll

        public static PathFilter acceptAll()
        Get a filter which always returns true.
        Returns:
        the accept-all filter
      • rejectAll

        public static PathFilter rejectAll()
        Get a filter which always returns false.
        Returns:
        the reject-all filter
      • in

        public static PathFilter in​(java.util.Set<java.lang.String> paths)
        Get a filter which returns true if the tested path is contained within the given set. Each member of the set is a path separated by "/" characters; nulls are disallowed.
        Parameters:
        paths - the path set
        Returns:
        the filter
      • in

        public static PathFilter in​(java.util.Collection<java.lang.String> paths)
        Get a filter which returns true if the tested path is contained within the given collection. Each member of the collection is a path separated by "/" characters; nulls are disallowed.
        Parameters:
        paths - the path collection
        Returns:
        the filter
      • filtered

        public static java.util.Iterator<Resource> filtered​(PathFilter filter,
                                                            java.util.Iterator<Resource> original)
        Get a filtered view of a resource iteration. Only resources which pass the given filter are accepted.
        Parameters:
        filter - the filter to check
        original - the original iterator
        Returns:
        the filtered iterator
      • getDefaultImportFilter

        public static PathFilter getDefaultImportFilter()
        Get the default import path filter, which excludes all of META-INF and its subdirectories.
        Returns:
        the default import path filter
      • getDefaultImportFilterWithServices

        public static PathFilter getDefaultImportFilterWithServices()
        Get the default import-with-services path filter which excludes all of META-INF and its subdirectories, with the exception of META-INF/services.
        Returns:
        the default import-with-services path filter
      • getMetaInfFilter

        public static PathFilter getMetaInfFilter()
        Get a filter which matches the path "META-INF".
        Returns:
        the filter
      • getMetaInfSubdirectoriesFilter

        public static PathFilter getMetaInfSubdirectoriesFilter()
        Get a filter which matches any subdirectory of the path "META-INF".
        Returns:
        the filter
      • getMetaInfServicesFilter

        public static PathFilter getMetaInfServicesFilter()
        Get a filter which matches the path "META-INF/services".
        Returns:
        the filter
      • getMetaInfSubdirectoriesWithoutMetaInfFilter

        public static PathFilter getMetaInfSubdirectoriesWithoutMetaInfFilter()
        Get a filter which matches all of META-INF's subdirectories, but not META-INF itself.
        Returns:
        the filter