## org.codehaus.plexus.util
Class SelectorUtils

    java.lang.Object
      org.codehaus.plexus.util.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.

Since:
  1.5
Version:
  $Id: SelectorUtils.java 8248 2009-05-29 18:22:58Z jdcasey $
Author:
  Arnout J. Kuiper ajkuiper@wxs.nl, Magesh Umasankar, Bruce Atherton

Field Summary
`static java.lang.String` `ANT_HANDLER_PREFIX`
`static java.lang.String` `PATTERN_HANDLER_PREFIX`
`static java.lang.String` `PATTERN_HANDLER_SUFFIX`
`static java.lang.String` `REGEX_HANDLER_PREFIX`

Method Summary
`static SelectorUtils` `getInstance()` Retrieves the manager of the Singleton.
`static boolean` `isOutOfDate(java.io.File src, java.io.File target, int granularity)` Returns dependency information on these two files.
`static boolean` `match(java.lang.String pattern, java.lang.String str)` Tests whether or not a string matches against a pattern.
`static boolean` `match(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)` Tests whether or not a string matches against a pattern.
`static boolean` `matchPath(java.lang.String pattern, java.lang.String str)` Tests whether or not a given path matches a given pattern.
`static boolean` `matchPath(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)` Tests whether or not a given path matches a given pattern.
`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 "**".
`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 "**".
`static java.lang.String` `removeWhitespace(java.lang.String input)` "Flattens" a string by removing all whitespace (space, tab, linefeed, carriage return, and formfeed).
`static java.util.Vector` `tokenizePath(java.lang.String path)` Breaks a path up into a Vector of path elements, tokenizing on `File.separator`.
`static java.util.Vector` `tokenizePath(java.lang.String path, java.lang.String separator)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

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=**\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(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=**\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 "**".

### 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 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(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 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.

### 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 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(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 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.

### tokenizePath

    public static java.util.Vector tokenizePath(java.lang.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

### tokenizePath

    public static java.util.Vector tokenizePath(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 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

### 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 arguement constructor.

  Parameters:
    `input` - a String to remove all whitespace.
  Returns:
    a String that has had all whitespace removed.