Class Path

  • All Implemented Interfaces:
    Comparable<Path>

    public class Path
    extends Object
    implements Comparable<Path>
    Simple helper class for path matching.
    Since:
    1.0.0 (Sling API Bundle 2.11.0)
    • Field Detail

      • GLOB_PREFIX

        public static final String GLOB_PREFIX
        The prefix to be used for glob patterns
        Since:
        1.2.0 (Sling API Bundle 2.15.0)
        See Also:
        Constant Field Values
    • Constructor Detail

      • Path

        public Path​(@NotNull
                    @NotNull String path)

        Create a new path object either from a concrete path or from a glob pattern.

        A glob pattern must start with the glob: prefix (e.g. glob:**/*.html). The following rules are used to interpret glob patterns:

        • The * character matches zero or more characters of a name component without crossing directory boundaries.
        • The ** characters match zero or more characters crossing directory boundaries.
        Parameters:
        path - The resource path or a glob pattern.
        Throws:
        NullPointerException - If otherPath is null
        IllegalArgumentException - If the provided path is not absolute, or if the glob pattern does not start with a slash.
    • Method Detail

      • matches

        public boolean matches​(String otherPath)
        If this Path object holds a path (and not a pattern), this method checks whether the provided path is equal to this path or a sub path of it. If a glob pattern is provided as the argument, it performs the same check and respects the provided pattern. This means it returns true if this path is a parent to any potential path matching the provided pattern. For example if this path is /apps/foo and the provided pattern is glob:/apps/foo/bar/*.jsp this method will return true. Same if the provided pattern is glob:/apps&#47;**&#47;hello.html. If this Path object holds a pattern, it checks whether the provided path matches the pattern. If this path object holds a pattern and a pattern is provided as the argument, it returns only true if the pattern is the same. If the provided argument is not an absolute path (e.g. if it is a relative path or a pattern), this method returns false.
        Parameters:
        otherPath - Absolute path to check.
        Returns:
        true If other path is within the sub tree of this path or matches the pattern.
        Throws:
        NullPointerException - If otherPath is null
        IllegalArgumentException - If the provided path is not absolute, or if the glob pattern does not start with a slash.
        See Also:
        isPattern()
      • getPath

        public String getPath()
        Return the path if this Path object holds a path, returns the pattern otherwise.
        Returns:
        The path or pattern.
        See Also:
        isPattern()
      • isPattern

        public boolean isPattern()
        Returns {code true} if this Path object is holding a pattern
        Returns:
        {code true} for a pattern, false for a path.
        Since:
        1.2.0 (Sling API Bundle 2.15.0)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object