Class Path
- java.lang.Object
-
- org.apache.sling.api.resource.path.Path
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
GLOB_PREFIX
The prefix to be used for glob patterns
-
Constructor Summary
Constructors Constructor Description Path(@NotNull java.lang.String path)
Create a new path object either from a concrete path or from a glob pattern.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(@NotNull Path o)
boolean
equals(java.lang.Object obj)
java.lang.String
getPath()
Return the path if thisPath
object holds a path, returns the pattern otherwise.int
hashCode()
boolean
isPattern()
Returns {code true} if thisPath
object is holding a patternboolean
matches(java.lang.String otherPath)
If thisPath
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.java.lang.String
toString()
-
-
-
Field Detail
-
GLOB_PREFIX
public static final java.lang.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 java.lang.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:
java.lang.NullPointerException
- IfotherPath
isnull
java.lang.IllegalArgumentException
- If the provided path is not absolute, or if the glob pattern does not start with a slash.
- The
-
-
Method Detail
-
matches
public boolean matches(java.lang.String otherPath)
If thisPath
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 returnstrue
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 isglob:/apps/foo/bar/*.jsp
this method will return true. Same if the provided pattern isglob:/apps/**/hello.html
. If thisPath
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 onlytrue
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 returnsfalse
.- Parameters:
otherPath
- Absolute path to check.- Returns:
true
If other path is within the sub tree of this path or matches the pattern.- Throws:
java.lang.NullPointerException
- IfotherPath
isnull
java.lang.IllegalArgumentException
- If the provided path is not absolute, or if the glob pattern does not start with a slash.- See Also:
isPattern()
-
getPath
public java.lang.String getPath()
Return the path if thisPath
object holds a path, returns the pattern otherwise.- Returns:
- The path or pattern.
- See Also:
isPattern()
-
isPattern
public boolean isPattern()
Returns {code true} if thisPath
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)
-
compareTo
public int compareTo(@NotNull @NotNull Path o)
- Specified by:
compareTo
in interfacejava.lang.Comparable<Path>
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-