Class SelectorUtils
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.
- Since:
- 1.5
- Version:
- $Id$
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
private static SelectorUtils
static final String
static final String
static final String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static boolean
equals
(char c1, char c2, boolean isCaseSensitive) Tests whether two characters are equal.static SelectorUtils
Retrieves the manager of the Singleton.(package private) static boolean
isAntPrefixedPattern
(String pattern) private static boolean
isDoubleStar
(char[] patDir) static boolean
isOutOfDate
(File src, File target, int granularity) Returns dependency information on these two files.(package private) static boolean
isRegexPrefixedPattern
(String pattern) static boolean
match
(char[] patArr, char[] strArr, boolean isCaseSensitive) static boolean
Tests whether or not a string matches against a pattern.static boolean
Tests whether or not a string matches against a pattern.(package private) static boolean
matchAntPathPattern
(char[][] patDirs, char[][] strDirs, boolean isCaseSensitive) (package private) static boolean
matchAntPathPattern
(String[] patDirs, String[] strDirs, boolean isCaseSensitive) (package private) static boolean
matchAntPathPattern
(String pattern, String str, String separator, boolean isCaseSensitive) (package private) static boolean
matchAntPathPattern
(MatchPattern matchPattern, String str, String separator, boolean isCaseSensitive) (package private) static boolean
matchAntPathPatternStart
(String[] patDirs, String str, String separator, boolean isCaseSensitive) (package private) static boolean
matchAntPathPatternStart
(String pattern, String str, String separator, boolean isCaseSensitive) (package private) static boolean
matchAntPathPatternStart
(MatchPattern pattern, String str, String separator, boolean isCaseSensitive) static boolean
Tests whether or not a given path matches a given pattern.static boolean
Tests whether or not a given path matches a given pattern.static boolean
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 String
removeWhitespace
(String input) "Flattens" a string by removing all whitespace (space, tab, linefeed, carriage return, and formfeed).private static boolean
separatorPatternStartSlashMismatch
(String pattern, String str, String separator) private static boolean
separatorPatternStartSlashMismatch
(MatchPattern matchPattern, String str, String separator) private static String[]
tokenizePathToString
(String path, String separator)
-
Field Details
-
PATTERN_HANDLER_PREFIX
- See Also:
-
PATTERN_HANDLER_SUFFIX
- See Also:
-
REGEX_HANDLER_PREFIX
- See Also:
-
ANT_HANDLER_PREFIX
- See Also:
-
instance
-
-
Constructor Details
-
SelectorUtils
private SelectorUtils()Private Constructor
-
-
Method Details
-
getInstance
Retrieves the manager of the Singleton. -
matchPatternStart
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
andstr=b
will yieldtrue
.- Parameters:
pattern
- The pattern to match against. Must not benull
.str
- The path to match, as a String. Must not benull
.- Returns:
- whether or not a given path matches the start of a given pattern up to the first "**".
-
matchPatternStart
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
andstr=b
will yieldtrue
.- Parameters:
pattern
- The pattern to match against. Must not benull
.str
- The path to match, as a String. Must not benull
.isCaseSensitive
- Whether or not matching should be performed case sensitively.- Returns:
- whether or not a given path matches the start of a given pattern up to the first "**".
-
isAntPrefixedPattern
-
matchAntPathPatternStart
static boolean matchAntPathPatternStart(MatchPattern pattern, String str, String separator, boolean isCaseSensitive) -
matchAntPathPatternStart
-
separatorPatternStartSlashMismatch
-
separatorPatternStartSlashMismatch
private static boolean separatorPatternStartSlashMismatch(MatchPattern matchPattern, String str, String separator) -
matchAntPathPatternStart
-
matchPath
Tests whether or not a given path matches a given pattern.- Parameters:
pattern
- The pattern to match against. Must not benull
.str
- The path to match, as a String. Must not benull
.- Returns:
true
if the pattern matches against the string, orfalse
otherwise.
-
matchPath
Tests whether or not a given path matches a given pattern.- Parameters:
pattern
- The pattern to match against. Must not benull
.str
- The path to match, as a String. Must not benull
.isCaseSensitive
- Whether or not matching should be performed case sensitively.- Returns:
true
if the pattern matches against the string, orfalse
otherwise.
-
matchPath
-
isRegexPrefixedPattern
-
matchAntPathPattern
static boolean matchAntPathPattern(MatchPattern matchPattern, String str, String separator, boolean isCaseSensitive) -
matchAntPathPattern
-
matchAntPathPattern
-
matchAntPathPattern
static boolean matchAntPathPattern(char[][] patDirs, char[][] strDirs, boolean isCaseSensitive) -
isDoubleStar
private static boolean isDoubleStar(char[] patDir) -
match
Tests whether or not a string matches against a pattern. The pattern may contain two special characters:
'*' means zero or more characters
'?' means one and only one character- Parameters:
pattern
- The pattern to match against. Must not benull
.str
- The string which must be matched against the pattern. Must not benull
.- Returns:
true
if the string matches against the pattern, orfalse
otherwise.
-
match
Tests whether or not a string matches against a pattern. The pattern may contain two special characters:
'*' means zero or more characters
'?' means one and only one character- Parameters:
pattern
- The pattern to match against. Must not benull
.str
- The string which must be matched against the pattern. Must not benull
.isCaseSensitive
- Whether or not matching should be performed case sensitively.- Returns:
true
if the string matches against the pattern, orfalse
otherwise.
-
match
public static boolean match(char[] patArr, char[] strArr, boolean isCaseSensitive) -
equals
private static boolean equals(char c1, char c2, boolean isCaseSensitive) Tests whether two characters are equal. -
tokenizePathToString
-
isOutOfDate
Returns dependency information on these two files. If src has been modified later than target, it returns true. If target doesn't exist, it likewise returns true. Otherwise, target is newer than src and is not out of date, thus the method returns false. It also returns false if the src file doesn't even exist, since how could the target then be out of date.- Parameters:
src
- the original filetarget
- the file being compared againstgranularity
- the amount in seconds of slack we will give in determining out of dateness- Returns:
- whether the target is out of date
-
removeWhitespace
"Flattens" a string by removing all whitespace (space, tab, linefeed, carriage return, and formfeed). This uses StringTokenizer and the default set of tokens as documented in the single argument constructor.- Parameters:
input
- a String to remove all whitespace.- Returns:
- a String that has had all whitespace removed.
-