Class DefaultDirectoryScanner

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

public class DefaultDirectoryScanner
extends java.lang.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
  • Constructor Summary

    Constructors 
    Constructor Description
    DefaultDirectoryScanner()
  • Method Summary

    Modifier and Type Method Description
    protected FileListFilter<java.io.File> getFilter()  
    protected FileLocker getLocker()  
    protected java.io.File[] listEligibleFiles​(java.io.File directory)
    Subclasses may refine the listing strategy by overriding this method.
    java.util.List<java.io.File> listFiles​(java.io.File directory)
    Scans the directory according to the strategy particular to this implementation and returns the selected files as a File array.
    void setFilter​(FileListFilter<java.io.File> filter)
    Sets a custom filter to be used by this scanner.
    void setLocker​(FileLocker locker)
    Sets a custom locker to be used by this scanner.
    boolean tryClaim​(java.io.File file)
    This class takes the minimal implementation and merely delegates to the locker if set.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • setFilter

      public void setFilter​(FileListFilter<java.io.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<java.io.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​(java.io.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 java.util.List<java.io.File> listFiles​(java.io.File directory) throws java.lang.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:
      java.lang.IllegalArgumentException - if the input is incorrect
    • listEligibleFiles

      protected java.io.File[] listEligibleFiles​(java.io.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