## org.codehaus.plexus.util
Class AbstractScanner

    java.lang.Object
      org.codehaus.plexus.util.AbstractScanner

All Implemented Interfaces:
  Scanner

Direct Known Subclasses:
  DirectoryScanner

    public abstract class AbstractScanner

extends java.lang.Object
implements Scanner

Field Summary

`static java.lang.String[]`

`DEFAULTEXCLUDES`
Patterns which should be excluded by default, like SCM files Misc: **/*~, **/#*#, **/.#*, **/%*%, **/._* CVS: **/CVS, **/CVS/**, **/.cvsignore RCS: **/RCS, **/RCS/** SCCS: **/SCCS, **/SCCS/** VSSercer: **/vssver.scc SVN: **/.svn, **/.svn/** GNU: **/.arch-ids, **/.arch-ids/** Bazaar: **/.bzr, **/.bzr/** SurroundSCM: **/.MySCMServerInfo Mac: **/.DS_Store Serena Dimension: **/.metadata, **/.metadata/** Mercurial: **/.hg, **/.hg/** GIT: **/.git, **/.git/** Bitkeeper: **/BitKeeper, **/BitKeeper/**, **/ChangeSet, **/ChangeSet/** Darcs: **/_darcs, **/_darcs/**, **/.darcsrepo, **/.darcsrepo/****/-darcs-backup*, **/.darcs-temp-mail

`protected java.lang.String[]` `excludes` The patterns for the files to be excluded.
`protected java.lang.String[]` `includes` The patterns for the files to be included.
`protected boolean` `isCaseSensitive` Whether or not the file system should be treated as a case sensitive one.

Constructor Summary
`AbstractScanner()`

Method Summary
`void` `addDefaultExcludes()` Adds default exclusions to the current exclusions set.
`protected boolean` `couldHoldIncluded(java.lang.String name)` Tests whether or not a name matches the start of at least one include pattern.
`protected boolean` `isExcluded(java.lang.String name)` Tests whether or not a name matches against at least one exclude pattern.
`protected boolean` `isIncluded(java.lang.String name)` Tests whether or not a name matches against at least one include pattern.
`static boolean` `match(java.lang.String pattern, java.lang.String str)` Tests whether or not a string matches against a pattern.
`protected static boolean` `match(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)` Tests whether or not a string matches against a pattern.
`protected static boolean` `matchPath(java.lang.String pattern, java.lang.String str)` Tests whether or not a given path matches a given pattern.
`protected static boolean` `matchPath(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)` Tests whether or not a given path matches a given pattern.
`protected 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 "**".
`protected 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 "**".
`void` `setCaseSensitive(boolean isCaseSensitive)` Sets whether or not the file system should be regarded as case sensitive.
`void` `setExcludes(java.lang.String[] excludes)` Sets the list of exclude patterns to use.
`void` `setIncludes(java.lang.String[] includes)` Sets the list of include patterns to use.
`protected void` `setupDefaultFilters()`

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

Methods inherited from interface org.codehaus.plexus.util.Scanner
`getBasedir, getIncludedDirectories, getIncludedFiles, scan`

Field Detail

### DEFAULTEXCLUDES

    public static final java.lang.String[] DEFAULTEXCLUDES

  Patterns which should be excluded by default, like SCM files
  - Misc: **/*~, **/#*#, **/.#*, **/%*%, **/._*
  - CVS: **/CVS, **/CVS/**, **/.cvsignore
  - RCS: **/RCS, **/RCS/**
  - SCCS: **/SCCS, **/SCCS/**
  - VSSercer: **/vssver.scc
  - SVN: **/.svn, **/.svn/**
  - GNU: **/.arch-ids, **/.arch-ids/**
  - Bazaar: **/.bzr, **/.bzr/**
  - SurroundSCM: **/.MySCMServerInfo
  - Mac: **/.DS_Store
  - Serena Dimension: **/.metadata, **/.metadata/**
  - Mercurial: **/.hg, **/.hg/**
  - GIT: **/.git, **/.git/**
  - Bitkeeper: **/BitKeeper, **/BitKeeper/**, **/ChangeSet, **/ChangeSet/**
  - Darcs: **/_darcs, **/_darcs/**, **/.darcsrepo, **/.darcsrepo/****/-darcs-backup*, **/.darcs-temp-mail

  See Also:
    `addDefaultExcludes()`

### includes

    protected java.lang.String[] includes

  The patterns for the files to be included.

### excludes

    protected java.lang.String[] excludes

  The patterns for the files to be excluded.

### isCaseSensitive

    protected boolean isCaseSensitive

  Whether or not the file system should be treated as a case sensitive one.

Constructor Detail

### AbstractScanner

    public AbstractScanner()

Method Detail

### setCaseSensitive

    public void setCaseSensitive(boolean isCaseSensitive)

  Sets whether or not the file system should be regarded as case sensitive.

  Parameters:
    `isCaseSensitive` - whether or not the file system should be regarded as a case sensitive one

### matchPatternStart

    protected 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

    protected 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

    protected 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

    protected 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

    protected 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.

### setIncludes

    public void setIncludes(java.lang.String[] includes)

  Sets the list of include patterns to use. All '/' and '\' characters are replaced by `File.separatorChar`, so the separator used need not match `File.separatorChar`.

  When a pattern ends with a '/' or '\', "**" is appended.

  Specified by:
    `setIncludes` in interface `Scanner`
  Parameters:
    `includes` - A list of include patterns. May be `null`, indicating that all files should be included. If a non-`null` list is given, all elements must be non-`null`.

### setExcludes

    public void setExcludes(java.lang.String[] excludes)

  Sets the list of exclude patterns to use. All '/' and '\' characters are replaced by `File.separatorChar`, so the separator used need not match `File.separatorChar`.

  When a pattern ends with a '/' or '\', "**" is appended.

  Specified by:
    `setExcludes` in interface `Scanner`
  Parameters:
    `excludes` - A list of exclude patterns. May be `null`, indicating that no files should be excluded. If a non-`null` list is given, all elements must be non-`null`.

### isIncluded

    protected boolean isIncluded(java.lang.String name)

  Tests whether or not a name matches against at least one include pattern.

  Parameters:
    `name` - The name to match. Must not be `null`.
  Returns:
    `true` when the name matches against at least one include pattern, or `false` otherwise.

### couldHoldIncluded

    protected boolean couldHoldIncluded(java.lang.String name)

  Tests whether or not a name matches the start of at least one include pattern.

  Parameters:
    `name` - The name to match. Must not be `null`.
  Returns:
    `true` when the name matches against the start of at least one include pattern, or `false` otherwise.

### isExcluded

    protected boolean isExcluded(java.lang.String name)

  Tests whether or not a name matches against at least one exclude pattern.

  Parameters:
    `name` - The name to match. Must not be `null`.
  Returns:
    `true` when the name matches against at least one exclude pattern, or `false` otherwise.

### addDefaultExcludes

    public void addDefaultExcludes()

  Adds default exclusions to the current exclusions set.

  Specified by:
    `addDefaultExcludes` in interface `Scanner`

### setupDefaultFilters

    protected void setupDefaultFilters()