Class PathUtil


  • public class PathUtil
    extends java.lang.Object
    Utility methods for paths
    • Field Detail

      • ROOT

        public static final Path ROOT
    • Constructor Detail

      • PathUtil

        public PathUtil()
    • Method Detail

      • asPath

        public static Path asPath​(java.lang.String path)
      • pathFromComponents

        public static Path pathFromComponents​(java.lang.String[] components)
        create a path from an array of components
        Parameters:
        components - path components strings
        Returns:
        a path
      • pathStringFromComponents

        public static java.lang.String pathStringFromComponents​(java.lang.String[] components)
        create a path from an array of components
        Parameters:
        components - path components strings
        Returns:
        a path string
      • componentsFromPath

        public static java.lang.String[] componentsFromPath​(Path path)
        Parameters:
        path - path
        Returns:
        path components
      • componentsFromPathString

        public static java.lang.String[] componentsFromPathString​(java.lang.String path)
        Parameters:
        path - path string
        Returns:
        path components
      • hasRoot

        public static boolean hasRoot​(Path path,
                                      Path root)
        Parameters:
        path - test path
        root - root
        Returns:
        true if the given path starts with the given root
      • hasRoot

        public static boolean hasRoot​(java.lang.String path,
                                      java.lang.String root)
        Parameters:
        path - test path
        root - root
        Returns:
        true if the given path starts with the given root
      • parentPath

        public static Path parentPath​(Path path)
      • isRoot

        public static boolean isRoot​(java.lang.String path)
        Parameters:
        path - path string
        Returns:
        true if the path is the root
      • isRoot

        public static boolean isRoot​(Path path)
        Parameters:
        path - path
        Returns:
        true if the path is the root
      • equals

        public static boolean equals​(Path patha,
                                     Path pathb)
        Parameters:
        patha - path A
        pathb - path B
        Returns:
        true if the paths are equal
      • parentPathString

        public static java.lang.String parentPathString​(java.lang.String path)
        Return the string representing the parent of the given path
        Parameters:
        path - path string
        Returns:
        parent path string
      • cleanPath

        public static java.lang.String cleanPath​(java.lang.String path)
        Clean the path string by removing leading and trailing slashes and removing duplicate slashes.
        Parameters:
        path - input path
        Returns:
        cleaned path string
      • pathName

        public static java.lang.String pathName​(java.lang.String path)
      • removePrefix

        public static java.lang.String removePrefix​(java.lang.String rootPath,
                                                    java.lang.String extpath)
      • appendPath

        public static Path appendPath​(Path prefix,
                                      java.lang.String subpath)
        Append one path to another
        Parameters:
        prefix - prefix
        subpath - sub path
        Returns:
        sub path appended to the prefix
      • appendPath

        public static java.lang.String appendPath​(java.lang.String prefixPath,
                                                  java.lang.String subpath)
        Append one path to another
        Parameters:
        prefixPath - prefix
        subpath - sub path
        Returns:
        sub path appended to the prefix
      • subpathSelector

        public static PathSelector subpathSelector​(Path rootPath)
        Parameters:
        rootPath - path to match
        Returns:
        A Path selector that matches the given root path and any resource below it.
      • allpathSelector

        public static PathSelector allpathSelector()
      • exactMetadataResourceSelector

        public static <T extends ContentMetaResourceSelector<T> exactMetadataResourceSelector​(java.util.Map<java.lang.String,​java.lang.String> required,
                                                                                                boolean requireAll)
        A resource selector which requires metadata values to be equal to some required strings
        Type Parameters:
        T - content type
        Parameters:
        required - required metadata strings
        requireAll - if true, require all values are equal, otherwise require one value to be equal
        Returns:
        selector for resources with all or some required metadata values
      • regexMetadataResourceSelector

        public static <T extends ContentMetaResourceSelector<T> regexMetadataResourceSelector​(java.util.Map<java.lang.String,​java.lang.String> required,
                                                                                                boolean requireAll)
        A resource selector which requires metadata values to match regexes
        Type Parameters:
        T - content type
        Parameters:
        required - required metadata regexes
        requireAll - if true, require all values match regexes, otherwise require one value to match the regex
        Returns:
        selector for resources with all or some matching metadata values
      • composeSelector

        public static <T extends ContentMetaResourceSelector<T> composeSelector​(ResourceSelector<T> a,
                                                                                  ResourceSelector<T> b,
                                                                                  boolean and)
        compose two selectors
        Type Parameters:
        T - resource type
        Parameters:
        a - selector 1
        b - selector 2
        and - true indicates AND, otherwise OR
        Returns:
        new selector appyling the operator to the selector
      • allResourceSelector

        public static <T extends ContentMetaResourceSelector<T> allResourceSelector()
        A resource selector which always matches
        Type Parameters:
        T - content type
        Returns:
        selector
      • resourceSelector

        public static <T extends ContentMetaResourceSelector<T> resourceSelector​(java.lang.String selector)
        Return a ResourceSelector constructed using this selector syntax:
         key OP value [; key OP value]*
         
        OP can be "=" (exact match) or "=~" (regular expression match).
        The returned selector effectively "AND"s the match requirements.
        The special string "*" equates to allResourceSelector()
        Type Parameters:
        T - resource type
        Parameters:
        selector - the selector syntax string to parse, not null
        Returns:
        a resource selector corresponding to the parsed selector string