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 Object
      implements Scanner

  Scan a directory tree for files, with specified inclusions and exclusions.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---

    `static 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 MKS: **/project.pj 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, **/.gitignore, **/.gitattributes, **/.git/** Bitkeeper: **/BitKeeper, **/BitKeeper/**, **/ChangeSet, **/ChangeSet/** Darcs: **/_darcs, **/_darcs/**, **/.darcsrepo, **/.darcsrepo/****/-darcs-backup*, **/.darcs-temp-mail

    `protected String[]` | `excludes` The patterns for the files to be excluded.
    `protected 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

    Constructors
    Constructor and Description
    `AbstractScanner()`

  - ### Method Summary

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

    - ### 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 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
      - MKS: **/project.pj
      - 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, **/.gitignore, **/.gitattributes, **/.git/**
      - Bitkeeper: **/BitKeeper, **/BitKeeper/**, **/ChangeSet, **/ChangeSet/**
      - Darcs: **/_darcs, **/_darcs/**, **/.darcsrepo, **/.darcsrepo/****/-darcs-backup*, **/.darcs-temp-mail
      See Also:
        `addDefaultExcludes()`

    - #### includes

          protected String[] includes

      The patterns for the files to be included.

    - #### excludes

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

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

    - #### matchPath

          protected 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

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

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

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

    - #### setIncludes

          public void setIncludes(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(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(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.

    - #### isIncluded

          protected boolean isIncluded(String name,
                           String[] tokenizedName)

    - #### couldHoldIncluded

          protected boolean couldHoldIncluded(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(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.

    - #### isExcluded

          protected boolean isExcluded(String name,
                           String[] tokenizedName)

    - #### addDefaultExcludes

          public void addDefaultExcludes()

      Adds default exclusions to the current exclusions set.
      Specified by:
        `addDefaultExcludes` in interface `Scanner`

    - #### setupDefaultFilters

          protected void setupDefaultFilters()

    - #### setupMatchPatterns

          protected void setupMatchPatterns()

Copyright © 2015. All rights reserved.