Package org.rundeck.storage.api
Class PathUtil
- java.lang.Object
-
- org.rundeck.storage.api.PathUtil
-
public class PathUtil extends java.lang.Object
Utility methods for paths
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PathUtil.PathImpl
-
Constructor Summary
Constructors Constructor Description PathUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static PathSelector
allpathSelector()
static <T extends ContentMeta>
ResourceSelector<T>allResourceSelector()
A resource selector which always matchesstatic java.lang.String
appendPath(java.lang.String prefixPath, java.lang.String subpath)
Append one path to anotherstatic Path
appendPath(Path prefix, java.lang.String subpath)
Append one path to anotherstatic Path
asPath(java.lang.String path)
static java.lang.String
cleanPath(java.lang.String path)
Clean the path string by removing leading and trailing slashes and removing duplicate slashes.static java.lang.String[]
componentsFromPath(Path path)
static java.lang.String[]
componentsFromPathString(java.lang.String path)
static <T extends ContentMeta>
ResourceSelector<T>composeSelector(ResourceSelector<T> a, ResourceSelector<T> b, boolean and)
compose two selectorsstatic boolean
equals(Path patha, Path pathb)
static <T extends ContentMeta>
ResourceSelector<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 stringsstatic boolean
hasRoot(java.lang.String path, java.lang.String root)
static boolean
hasRoot(Path path, Path root)
static boolean
isRoot(java.lang.String path)
static boolean
isRoot(Path path)
static Path
parentPath(Path path)
static java.lang.String
parentPathString(java.lang.String path)
Return the string representing the parent of the given pathstatic Path
pathFromComponents(java.lang.String[] components)
create a path from an array of componentsstatic java.lang.String
pathName(java.lang.String path)
static java.lang.String
pathStringFromComponents(java.lang.String[] components)
create a path from an array of componentsstatic <T extends ContentMeta>
ResourceSelector<T>regexMetadataResourceSelector(java.util.Map<java.lang.String,java.lang.String> required, boolean requireAll)
A resource selector which requires metadata values to match regexesstatic java.lang.String
removePrefix(java.lang.String rootPath, java.lang.String extpath)
static <T extends ContentMeta>
ResourceSelector<T>resourceSelector(java.lang.String selector)
Return aResourceSelector
constructed using this selector syntax:static PathSelector
subpathSelector(Path rootPath)
-
-
-
Field Detail
-
SEPARATOR
public static final java.lang.String SEPARATOR
- See Also:
- Constant Field Values
-
ROOT
public static final Path ROOT
-
-
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 pathroot
- 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 pathroot
- root- Returns:
- true if the given path starts with the given root
-
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 Apathb
- 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
- prefixsubpath
- 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
- prefixsubpath
- 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 ContentMeta> ResourceSelector<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 stringsrequireAll
- 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 ContentMeta> ResourceSelector<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 regexesrequireAll
- 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 ContentMeta> ResourceSelector<T> composeSelector(ResourceSelector<T> a, ResourceSelector<T> b, boolean and)
compose two selectors- Type Parameters:
T
- resource type- Parameters:
a
- selector 1b
- selector 2and
- true indicates AND, otherwise OR- Returns:
- new selector appyling the operator to the selector
-
allResourceSelector
public static <T extends ContentMeta> ResourceSelector<T> allResourceSelector()
A resource selector which always matches- Type Parameters:
T
- content type- Returns:
- selector
-
resourceSelector
public static <T extends ContentMeta> ResourceSelector<T> resourceSelector(java.lang.String selector)
Return aResourceSelector
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 toallResourceSelector()
- 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
-
-