public final class SelectorUtils extends Object
This is a utility class used by selectors and DirectoryScanner. The functionality more properly belongs just to selectors, but unfortunately DirectoryScanner exposed these as protected methods. Thus we have to support any subclasses of DirectoryScanner that may access these methods.
This is a Singleton.
Modifier and Type | Field and Description |
---|---|
static String |
ANT_HANDLER_PREFIX |
static String |
PATTERN_HANDLER_PREFIX |
static String |
PATTERN_HANDLER_SUFFIX |
static String |
REGEX_HANDLER_PREFIX |
Modifier and Type | Method and Description |
---|---|
static String |
applySlashifyRules(String path,
char sepChar)
Applies the "slashification" rules as specified in
Single Unix
Specification version 3, section 3.266 and
section 4.11 -
Pathname resolution
|
static String |
concatPaths(String p1,
String p2,
char fsSeparator)
Creates a single path by concatenating 2 parts and taking care not to create FS separator duplication in the
process
|
static boolean |
equals(char c1,
char c2,
boolean isCaseSensitive)
Tests whether two characters are equal.
|
static boolean |
isWindowsDriveSpecified(CharSequence cs) |
static boolean |
isWindowsDriveSpecified(CharSequence cs,
int offset,
int len) |
static boolean |
match(String pattern,
String str)
Tests whether or not a string matches against a pattern.
|
static boolean |
match(String pattern,
String str,
boolean isCaseSensitive)
Tests whether or not a string matches against a pattern.
|
static boolean |
matchAntPathPattern(String pattern,
String str,
boolean isCaseSensitive) |
static boolean |
matchAntPathPattern(String pattern,
String str,
String separator,
boolean isCaseSensitive) |
static boolean |
matchAntPathPatternStart(String pattern,
String str,
String separator,
boolean isCaseSensitive) |
static boolean |
matchPath(String pattern,
String str)
Tests whether or not a given path matches a given pattern.
|
static boolean |
matchPath(String pattern,
String str,
boolean isCaseSensitive)
Tests whether or not a given path matches a given pattern.
|
static boolean |
matchPath(String pattern,
String str,
String separator,
boolean isCaseSensitive) |
static boolean |
matchPatternStart(String pattern,
String str)
Tests whether or not a given path matches the start of a given pattern up to the first "**".
|
static boolean |
matchPatternStart(String pattern,
String str,
boolean isCaseSensitive)
Tests whether or not a given path matches the start of a given pattern up to the first "**".
|
static boolean |
matchPatternStart(String pattern,
String str,
String separator,
boolean isCaseSensitive) |
static String |
removeWhitespace(String input)
"Flattens" a string by removing all whitespace (space, tab, line-feed, carriage return, and form-feed).
|
static List<String> |
tokenizePath(String path)
Breaks a path up into a Vector of path elements, tokenizing on
File.separator . |
static List<String> |
tokenizePath(String path,
String separator) |
static String |
translateToFileSystemPath(String path,
String pathSeparator,
FileSystem fs)
Converts a path containing a specific separator to one using the specified file-system one
|
static String |
translateToFileSystemPath(String path,
String pathSeparator,
String fsSeparator)
Converts a path containing a specific separator to one using the specified file-system one
|
static String |
translateToLocalFileSystemPath(String path,
char pathSeparator,
FileSystem fs)
/** Converts a path to one matching the target file system by applying the "slashification" rules,
converting it to a local path and then translating its separator to the target file system one (if different than
local one)
|
static String |
translateToLocalFileSystemPath(String path,
char pathSeparator,
String fsSeparator)
Converts a path to one matching the target file system by applying the "slashification" rules,
converting it to a local path and then translating its separator to the target file system one (if different than
local one)
|
static String |
translateToLocalPath(String path)
Converts a possibly '/' separated path to a local path.
|
public static final String PATTERN_HANDLER_PREFIX
public static final String PATTERN_HANDLER_SUFFIX
public static final String REGEX_HANDLER_PREFIX
public static final String ANT_HANDLER_PREFIX
public static boolean matchPatternStart(String pattern, String str)
Tests whether or not a given path matches the start of a given pattern up to the first "**".
This is not a general purpose test and should only be used if you can live with false positives. For example,
pattern=**\a
and str=b
will yield true
.
pattern
- The pattern to match against. Must not be null
.str
- The path to match, as a String. Must not be null
.public static boolean matchPatternStart(String pattern, String str, boolean isCaseSensitive)
Tests whether or not a given path matches the start of a given pattern up to the first "**".
This is not a general purpose test and should only be used if you can live with false positives. For example,
pattern=**\a
and str=b
will yield true
.
pattern
- The pattern to match against. Must not be null
.str
- The path to match, as a String. Must not be null
.isCaseSensitive
- Whether or not matching should be performed case sensitively.public static boolean matchPatternStart(String pattern, String str, String separator, boolean isCaseSensitive)
public static boolean matchAntPathPatternStart(String pattern, String str, String separator, boolean isCaseSensitive)
public static boolean matchPath(String pattern, String str)
pattern
- The pattern to match against. Must not be null
.str
- The path to match, as a String. Must not be null
.true
if the pattern matches against the string, or false
otherwise.public static boolean matchPath(String pattern, String str, boolean isCaseSensitive)
pattern
- The pattern to match against. Must not be null
.str
- The path to match, as a String. Must not be null
.isCaseSensitive
- Whether or not matching should be performed case sensitively.true
if the pattern matches against the string, or false
otherwise.public static boolean matchPath(String pattern, String str, String separator, boolean isCaseSensitive)
public static boolean matchAntPathPattern(String pattern, String str, boolean isCaseSensitive)
public static boolean matchAntPathPattern(String pattern, String str, String separator, boolean isCaseSensitive)
public static boolean match(String pattern, String str)
pattern
- The pattern to match against. Must not be null
.str
- The string which must be matched against the pattern. Must not be null
.true
if the string matches against the pattern, or false
otherwise.public static boolean match(String pattern, String str, boolean isCaseSensitive)
pattern
- The pattern to match against. Must not be null
.str
- The string which must be matched against the pattern. Must not be null
.isCaseSensitive
- Whether or not matching should be performed case sensitively.true
if the string matches against the pattern, or false
otherwise.public static boolean equals(char c1, char c2, boolean isCaseSensitive)
c1
- 1st characterc2
- 2nd characterisCaseSensitive
- Whether to compare case sensitivetrue
if equal characterspublic static List<String> tokenizePath(String path)
File.separator
.path
- Path to tokenize. Must not be null
.public static String translateToLocalFileSystemPath(String path, char pathSeparator, FileSystem fs)
path
- The input pathpathSeparator
- The separator used to build the input pathfs
- The target FileSystem
- may not be null
translateToLocalFileSystemPath(String, char, String)
public static String translateToLocalFileSystemPath(String path, char pathSeparator, String fsSeparator)
path
- The input pathpathSeparator
- The separator used to build the input pathfsSeparator
- The target file system separatorapplySlashifyRules(String, char)
,
translateToLocalPath(String)
,
translateToFileSystemPath(String, String, String)
public static String applySlashifyRules(String path, char sepChar)
path
- The original path - ignored if null
/empty or does not contain any slashessepChar
- The "slash" characterpublic static String translateToLocalPath(String path)
C:
by converting them to "C:\"path
- The original path - ignored if null
/emptypublic static boolean isWindowsDriveSpecified(CharSequence cs)
public static boolean isWindowsDriveSpecified(CharSequence cs, int offset, int len)
public static String translateToFileSystemPath(String path, String pathSeparator, FileSystem fs)
path
- The input path - ignored if null
/emptypathSeparator
- The separator used to build the input path - may not be null
/emptyfs
- The target FileSystem
- may not be null
FileSystem.getSeparator()
,
translateToFileSystemPath(String, String, String)
public static String translateToFileSystemPath(String path, String pathSeparator, String fsSeparator)
path
- The input path - ignored if null
/emptypathSeparator
- The separator used to build the input path - may not be null
/emptyfsSeparator
- The target file system separator - may not be null
/emptyIllegalArgumentException
- if path or file-system separator are null
/empty or if the separators are
different and the path contains the target file-system separator as it would
create an ambiguitypublic static String concatPaths(String p1, String p2, char fsSeparator)
p1
- prefix part - ignored if null
/emptyp2
- suffix part - ignored if null
/emptyfsSeparator
- The expected file-system separatorpublic static String removeWhitespace(String input)
input
- a String to remove all whitespace.Copyright © 2008–2024 The Apache Software Foundation. All rights reserved.