Interface DirectoryScanner
- All Known Implementing Classes:
DefaultDirectoryScanner
,HeadDirectoryScanner
,RecursiveDirectoryScanner
public interface DirectoryScanner
Strategy for scanning directories. Implementations may select all children
and grandchildren of the scanned directory in any order. This interface is
intended to enable the customization of selection, locking and ordering of
files in a directory like RecursiveDirectoryScanner. If the only requirement
is to ignore certain files a EntryListFilter implementation should suffice.
- Author:
- Iwein Fuld
-
Method Summary
Modifier and TypeMethodDescriptionScans the directory according to the strategy particular to this implementation and returns the selected files as a File array.void
setFilter
(FileListFilter<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
Claim the file to process.
-
Method Details
-
listFiles
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.- 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
-
setFilter
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.- Parameters:
filter
- the custom filter to be used
-
setLocker
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.- Parameters:
locker
- the custom locker to be used
-
tryClaim
Claim the file to process. It is up to the implementation to decide what additional safe guards are required to attain a claim to the file. But if a locker is set implementations MUST invoke itslock
method and MUST returnfalse
if the locker did not grant the lock.- Parameters:
file
- file to be claimed- Returns:
- true if the claim was granted false otherwise
-