org.codehaus.plexus.util

Class SelectorUtils


public final class SelectorUtils
extends java.lang.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.

Authors:
Arnout J. Kuiper ajkuiper@wxs.nl
Magesh Umasankar
Bruce Atherton
Since:
1.5

Field Summary

private static SelectorUtils
instance

Constructor Summary

SelectorUtils()
Private Constructor

Method Summary

static SelectorUtils
getInstance()
Retrieves the manager of the Singleton.
static boolean
isOutOfDate(File src, File target, int granularity)
Returns dependency information on these two files.
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
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
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).
static Vector
tokenizePath(String path)
Breaks a path up into a Vector of path elements, tokenizing on File.separator.

Field Details

instance

private static SelectorUtils instance

Constructor Details

SelectorUtils

private SelectorUtils()
Private Constructor

Method Details

getInstance

public static SelectorUtils getInstance()
Retrieves the manager of the Singleton.

isOutOfDate

public static boolean isOutOfDate(File src,
                                  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 file
target - the file being compared against
granularity - the amount in seconds of slack we will give in determining out of dateness
Returns:
whether the target is out of date

match

public static boolean match(String pattern,
                            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 be null.
str - The string which must be matched against the pattern. Must not be null.
Returns:
true if the string matches against the pattern, or false otherwise.

match

public static boolean match(String pattern,
                            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 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.
Returns:
true if the string matches against the pattern, or false otherwise.

matchPath

public static boolean matchPath(String pattern,
                                String str)
Tests whether or not a given path matches a given pattern.
Parameters:
pattern - The pattern to match against. Must not be null.
str - The path to match, as a String. Must not be null.
Returns:
true if the pattern matches against the string, or false otherwise.

matchPath

public static boolean matchPath(String pattern,
                                String str,
                                boolean isCaseSensitive)
Tests whether or not a given path matches a given pattern.
Parameters:
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.
Returns:
true if the pattern matches against the string, or false otherwise.

matchPatternStart

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.

Parameters:
pattern - The pattern to match against. Must not be null.
str - The path to match, as a String. Must not be null.
Returns:
whether or not a given path matches the start of a given pattern up to the first "**".

matchPatternStart

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.

Parameters:
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.
Returns:
whether or not a given path matches the start of a given pattern up to the first "**".

removeWhitespace

public static String removeWhitespace(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 arguement constructor.
Parameters:
input - a String to remove all whitespace.
Returns:
a String that has had all whitespace removed.

tokenizePath

public static Vector tokenizePath(String path)
Breaks a path up into a Vector of path elements, tokenizing on File.separator.
Parameters:
path - Path to tokenize. Must not be null.
Returns:
a Vector of path elements from the tokenized path