Package org.apache.tools.ant.util

## Class SourceFileScanner

- java.lang.Object
- - org.apache.tools.ant.util.SourceFileScanner

- All Implemented Interfaces:
    `ResourceFactory`

      public class SourceFileScanner
      extends java.lang.Object
      implements ResourceFactory

  Utility class that collects the functionality of the various scanDir methods that have been scattered in several tasks before.

  The only method returns an array of source files. The array is a subset of the files given as a parameter and holds only those that are newer than their corresponding target files.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Task` | `task` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SourceFileScanner​(Task task)` | Construct a new SourceFileScanner.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Resource` | `getResource​(java.lang.String name)` | Returns resource information for a file at destination.
    `java.lang.String[]` | `restrict​(java.lang.String[] files, java.io.File srcDir, java.io.File destDir, FileNameMapper mapper)` | Restrict the given set of files to those that are newer than their corresponding target files.
    `java.lang.String[]` | `restrict​(java.lang.String[] files, java.io.File srcDir, java.io.File destDir, FileNameMapper mapper, long granularity)` | Restrict the given set of files to those that are newer than their corresponding target files.
    `java.io.File[]` | `restrictAsFiles​(java.lang.String[] files, java.io.File srcDir, java.io.File destDir, FileNameMapper mapper)` | Convenience layer on top of restrict that returns the source files as File objects (containing absolute paths if srcDir is absolute).
    `java.io.File[]` | `restrictAsFiles​(java.lang.String[] files, java.io.File srcDir, java.io.File destDir, FileNameMapper mapper, long granularity)` | Convenience layer on top of restrict that returns the source files as File objects (containing absolute paths if srcDir is absolute).

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### task

          protected Task task

  - ### Constructor Detail

    - #### SourceFileScanner

          public SourceFileScanner​(Task task)

      Construct a new SourceFileScanner.
      Parameters:
        `task` - The task we should log messages through.

  - ### Method Detail

    - #### restrict

          public java.lang.String[] restrict​(java.lang.String[] files,
                                             java.io.File srcDir,
                                             java.io.File destDir,
                                             FileNameMapper mapper)

      Restrict the given set of files to those that are newer than their corresponding target files.
      Parameters:
        `files` - the original set of files.
        `srcDir` - all files are relative to this directory.
        `destDir` - target files live here. if null file names returned by the mapper are assumed to be absolute.
        `mapper` - knows how to construct a target file names from source file names.
      Returns:
        an array of filenames.

    - #### restrict

          public java.lang.String[] restrict​(java.lang.String[] files,
                                             java.io.File srcDir,
                                             java.io.File destDir,
                                             FileNameMapper mapper,
                                             long granularity)

      Restrict the given set of files to those that are newer than their corresponding target files.
      Parameters:
        `files` - the original set of files.
        `srcDir` - all files are relative to this directory.
        `destDir` - target files live here. If null file names returned by the mapper are assumed to be absolute.
        `mapper` - knows how to construct a target file names from source file names.
        `granularity` - The number of milliseconds leeway to give before deciding a target is out of date.
      Returns:
        an array of filenames.
      Since:
        Ant 1.6.2

    - #### restrictAsFiles

          public java.io.File[] restrictAsFiles​(java.lang.String[] files,
                                                java.io.File srcDir,
                                                java.io.File destDir,
                                                FileNameMapper mapper)

      Convenience layer on top of restrict that returns the source files as File objects (containing absolute paths if srcDir is absolute).
      Parameters:
        `files` - the original set of files.
        `srcDir` - all files are relative to this directory.
        `destDir` - target files live here. If null file names returned by the mapper are assumed to be absolute.
        `mapper` - knows how to construct a target file names from source file names.
      Returns:
        an array of files.

    - #### restrictAsFiles

          public java.io.File[] restrictAsFiles​(java.lang.String[] files,
                                                java.io.File srcDir,
                                                java.io.File destDir,
                                                FileNameMapper mapper,
                                                long granularity)

      Convenience layer on top of restrict that returns the source files as File objects (containing absolute paths if srcDir is absolute).
      Parameters:
        `files` - the original set of files.
        `srcDir` - all files are relative to this directory.
        `destDir` - target files live here. If null file names returned by the mapper are assumed to be absolute.
        `mapper` - knows how to construct a target file names from source file names.
        `granularity` - The number of milliseconds leeway to give before deciding a target is out of date.
      Returns:
        an array of files.
      Since:
        Ant 1.6.2

    - #### getResource

          public Resource getResource​(java.lang.String name)

      Returns resource information for a file at destination.
      Specified by:
        `getResource` in interface `ResourceFactory`
      Parameters:
        `name` - relative path of file at destination.
      Returns:
        data concerning a file whose relative path to destDir is name.
      Since:
        Ant 1.5.2