Class SelectorUtils
- java.lang.Object
-
- org.codehaus.plexus.util.SelectorUtils
-
public final class SelectorUtils extends java.lang.ObjectThis 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
Fields Modifier and Type Field Description static java.lang.StringANT_HANDLER_PREFIXprivate static SelectorUtilsinstancestatic java.lang.StringPATTERN_HANDLER_PREFIXstatic java.lang.StringPATTERN_HANDLER_SUFFIXstatic java.lang.StringREGEX_HANDLER_PREFIX
-
Constructor Summary
Constructors Modifier Constructor Description privateSelectorUtils()Private Constructor
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static booleanequals(char c1, char c2, boolean isCaseSensitive)Tests whether two characters are equal.static SelectorUtilsgetInstance()Retrieves the manager of the Singleton.(package private) static booleanisAntPrefixedPattern(java.lang.String pattern)private static booleanisDoubleStar(char[] patDir)static booleanisOutOfDate(java.io.File src, java.io.File target, int granularity)Returns dependency information on these two files.(package private) static booleanisRegexPrefixedPattern(java.lang.String pattern)static booleanmatch(char[] patArr, char[] strArr, boolean isCaseSensitive)static booleanmatch(java.lang.String pattern, java.lang.String str)Tests whether or not a string matches against a pattern.static booleanmatch(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)Tests whether or not a string matches against a pattern.(package private) static booleanmatchAntPathPattern(char[][] patDirs, char[][] strDirs, boolean isCaseSensitive)(package private) static booleanmatchAntPathPattern(java.lang.String[] patDirs, java.lang.String[] strDirs, boolean isCaseSensitive)(package private) static booleanmatchAntPathPattern(java.lang.String pattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)(package private) static booleanmatchAntPathPattern(MatchPattern matchPattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)(package private) static booleanmatchAntPathPatternStart(java.lang.String[] patDirs, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)(package private) static booleanmatchAntPathPatternStart(java.lang.String pattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)(package private) static booleanmatchAntPathPatternStart(MatchPattern pattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)static booleanmatchPath(java.lang.String pattern, java.lang.String str)Tests whether or not a given path matches a given pattern.static booleanmatchPath(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)Tests whether or not a given path matches a given pattern.static booleanmatchPath(java.lang.String pattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)static booleanmatchPatternStart(java.lang.String pattern, java.lang.String str)Tests whether or not a given path matches the start of a given pattern up to the first "**".static booleanmatchPatternStart(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)Tests whether or not a given path matches the start of a given pattern up to the first "**".static java.lang.StringremoveWhitespace(java.lang.String input)"Flattens" a string by removing all whitespace (space, tab, linefeed, carriage return, and formfeed).private static booleanseparatorPatternStartSlashMismatch(java.lang.String pattern, java.lang.String str, java.lang.String separator)private static booleanseparatorPatternStartSlashMismatch(MatchPattern matchPattern, java.lang.String str, java.lang.String separator)private static java.lang.String[]tokenizePathToString(java.lang.String path, java.lang.String separator)
-
-
-
Field Detail
-
PATTERN_HANDLER_PREFIX
public static final java.lang.String PATTERN_HANDLER_PREFIX
- See Also:
- Constant Field Values
-
PATTERN_HANDLER_SUFFIX
public static final java.lang.String PATTERN_HANDLER_SUFFIX
- See Also:
- Constant Field Values
-
REGEX_HANDLER_PREFIX
public static final java.lang.String REGEX_HANDLER_PREFIX
- See Also:
- Constant Field Values
-
ANT_HANDLER_PREFIX
public static final java.lang.String ANT_HANDLER_PREFIX
- See Also:
- Constant Field Values
-
instance
private static SelectorUtils instance
-
-
Method Detail
-
getInstance
public static SelectorUtils getInstance()
Retrieves the manager of the Singleton.
-
matchPatternStart
public static boolean matchPatternStart(java.lang.String pattern, java.lang.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=**\aandstr=bwill 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
public static boolean matchPatternStart(java.lang.String pattern, java.lang.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=**\aandstr=bwill 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
static boolean isAntPrefixedPattern(java.lang.String pattern)
-
matchAntPathPatternStart
static boolean matchAntPathPatternStart(MatchPattern pattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)
-
matchAntPathPatternStart
static boolean matchAntPathPatternStart(java.lang.String pattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)
-
separatorPatternStartSlashMismatch
private static boolean separatorPatternStartSlashMismatch(java.lang.String pattern, java.lang.String str, java.lang.String separator)
-
separatorPatternStartSlashMismatch
private static boolean separatorPatternStartSlashMismatch(MatchPattern matchPattern, java.lang.String str, java.lang.String separator)
-
matchAntPathPatternStart
static boolean matchAntPathPatternStart(java.lang.String[] patDirs, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)
-
matchPath
public static boolean matchPath(java.lang.String pattern, java.lang.String str)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:
trueif the pattern matches against the string, orfalseotherwise.
-
matchPath
public static boolean matchPath(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)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:
trueif the pattern matches against the string, orfalseotherwise.
-
matchPath
public static boolean matchPath(java.lang.String pattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)
-
isRegexPrefixedPattern
static boolean isRegexPrefixedPattern(java.lang.String pattern)
-
matchAntPathPattern
static boolean matchAntPathPattern(MatchPattern matchPattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)
-
matchAntPathPattern
static boolean matchAntPathPattern(java.lang.String pattern, java.lang.String str, java.lang.String separator, boolean isCaseSensitive)
-
matchAntPathPattern
static boolean matchAntPathPattern(java.lang.String[] patDirs, java.lang.String[] strDirs, boolean isCaseSensitive)
-
matchAntPathPattern
static boolean matchAntPathPattern(char[][] patDirs, char[][] strDirs, boolean isCaseSensitive)
-
isDoubleStar
private static boolean isDoubleStar(char[] patDir)
-
match
public static boolean match(java.lang.String pattern, java.lang.String str)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:
trueif the string matches against the pattern, orfalseotherwise.
-
match
public static boolean match(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)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:
trueif the string matches against the pattern, orfalseotherwise.
-
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
private static java.lang.String[] tokenizePathToString(java.lang.String path, java.lang.String separator)
-
isOutOfDate
public static boolean isOutOfDate(java.io.File src, java.io.File target, int granularity)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
public static java.lang.String removeWhitespace(java.lang.String input)
"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.
-
-