Class FilePathMatcher
- Direct Known Subclasses:
MatchExtensions
,MatchGlob
,MatchRegularExpression
Matches file-paths against some kind of pattern.
Search operations can be executed against this pattern, to find all files in a directory that match.
- Author:
- Owen Feehan
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract boolean
Determines if it possible to match a file in a subdirectory.protected abstract CheckedPredicate
<Path, IOException> createMatcherFile
(Path directory, Optional<InputContextParameters> inputContext) Create a predicate to be used for matching against path.matchingFiles
(Path directory, boolean recursive) LikematchingFiles(Path, boolean, boolean, boolean, Optional, Optional)
but uses sensible defaults.matchingFiles
(Path directory, boolean recursive, boolean ignoreHidden, boolean acceptDirectoryErrors, Optional<Integer> maxDirectoryDepth, Optional<InputManagerParameters> parameters) Finds a collection of files that match particular conditions on their paths.Methods inherited from class org.anchoranalysis.bean.AnchorBean
checkMisconfigured, describeBean, describeChildren, duplicateBean, fields, findFieldsOfClass, getBeanName, getLocalPath, localise, toString
-
Constructor Details
-
FilePathMatcher
public FilePathMatcher()
-
-
Method Details
-
matchingFiles
LikematchingFiles(Path, boolean, boolean, boolean, Optional, Optional)
but uses sensible defaults.Hidden files are ignored.
Continues even when a directory-access-error occurs, without throwing an exception.
No maximum directory depth is imposed.
No parameters are applied.
- Parameters:
directory
- root directory to search.recursive
- whether to recursively search.- Returns:
- a collection of files matching the conditions.
- Throws:
InputReadFailedException
- if an error occurrs reading/writing or interacting with the filesystem.
-
matchingFiles
public List<File> matchingFiles(Path directory, boolean recursive, boolean ignoreHidden, boolean acceptDirectoryErrors, Optional<Integer> maxDirectoryDepth, Optional<InputManagerParameters> parameters) throws InputReadFailedException Finds a collection of files that match particular conditions on their paths.- Parameters:
directory
- root directory to search.recursive
- whether to recursively search.ignoreHidden
- whether to ignore hidden files/directories or not.acceptDirectoryErrors
- if true, continues when a directory-access-error occurs (logging it), otherwise throws an exception.maxDirectoryDepth
- a maximum depth in directories to search.parameters
- parameters providing input-context- Returns:
- a collection of files matching the conditions.
- Throws:
InputReadFailedException
- if an error occurs reading/writing or interacting with the filesystem.
-
createMatcherFile
protected abstract CheckedPredicate<Path,IOException> createMatcherFile(Path directory, Optional<InputContextParameters> inputContext) throws InputReadFailedException Create a predicate to be used for matching against path.- Parameters:
directory
- the directory being searched. Only paths in this directory (or its subdirectories) will ever be passed to the predicate.inputContext
- the input-context.- Returns:
- a predicate that can be used to accept or reject a path (contained in
directory
. - Throws:
InputReadFailedException
- if the testing of the predicate fails.
-
canMatchSubdirectories
protected abstract boolean canMatchSubdirectories()Determines if it possible to match a file in a subdirectory.If it impossible to match a subdirectory, this allows us to disable any recursive search, as it is pointless effort.
- Returns:
- true if its possible for the predicate returned by
createMatcherFile
to match a file in a subdirectory, false otherwise.
-