Class DefaultDirectoryScanner

java.lang.Object
org.springframework.integration.file.DefaultDirectoryScanner
All Implemented Interfaces:
DirectoryScanner
Direct Known Subclasses:
HeadDirectoryScanner, RecursiveDirectoryScanner

public class DefaultDirectoryScanner
extends Object
implements DirectoryScanner
Default directory scanner and base class for other directory scanners. Manages the default interrelations between filtering, scanning and locking.
Since:
2.0
Author:
Iwein Fuld, Gunnar Hillert, Artem Bilan
  • Constructor Details

  • Method Details

    • setFilter

      public void setFilter​(FileListFilter<File> filter)
      Description copied from interface: DirectoryScanner
      Sets a custom filter to be used by this scanner. The filter will get a chance to reject files before the scanner presents them through its listFiles method. A scanner may use additional filtering that is out of the control of the provided filter.
      Specified by:
      setFilter in interface DirectoryScanner
      Parameters:
      filter - the custom filter to be used
    • getFilter

      protected FileListFilter<File> getFilter()
    • setLocker

      public final void setLocker​(FileLocker locker)
      Description copied from interface: DirectoryScanner
      Sets a custom locker to be used by this scanner. The locker will get a chance to lock files and reject claims on files that are already locked.
      Specified by:
      setLocker in interface DirectoryScanner
      Parameters:
      locker - the custom locker to be used
    • getLocker

      protected FileLocker getLocker()
    • tryClaim

      public boolean tryClaim​(File file)
      This class takes the minimal implementation and merely delegates to the locker if set.
      Specified by:
      tryClaim in interface DirectoryScanner
      Parameters:
      file - the file to try to claim.
      Returns:
      true if the claim was granted false otherwise
    • listFiles

      public List<File> listFiles​(File directory) throws IllegalArgumentException
      Description copied from interface: DirectoryScanner
      Scans the directory according to the strategy particular to this implementation and returns the selected files as a File array. This method may never return files that are rejected by the filter.
      Specified by:
      listFiles in interface DirectoryScanner
      Parameters:
      directory - the directory to scan for files
      Returns:
      a list of files representing the content of the directory
      Throws:
      IllegalArgumentException - if the input is incorrect
    • listEligibleFiles

      protected File[] listEligibleFiles​(File directory)
      Subclasses may refine the listing strategy by overriding this method. The files returned here are passed onto the filter.
      Parameters:
      directory - root directory to use for listing
      Returns:
      the files this scanner should consider