Class IfFileName
- java.lang.Object
-
- org.apache.logging.log4j.core.appender.rolling.action.IfFileName
-
- All Implemented Interfaces:
PathCondition
@Plugin(name="IfFileName", category="Core", printObject=true) public final class IfFileName extends java.lang.Object implements PathCondition
PathCondition that accepts files for deletion if their relative path matches either a glob pattern or a regular expression. If both a regular expression and a glob pattern are specified the glob pattern is used and the regular expression is ignored.The regular expression is a pattern as defined by the
Patternclass. A glob is a simplified pattern expression described inFileSystem.getPathMatcher(String).
-
-
Field Summary
Fields Modifier and Type Field Description private static LoggerLOGGERprivate PathCondition[]nestedConditionsprivate java.nio.file.PathMatcherpathMatcherprivate java.lang.StringsyntaxAndPattern-
Fields inherited from interface org.apache.logging.log4j.core.appender.rolling.action.PathCondition
EMPTY_ARRAY
-
-
Constructor Summary
Constructors Modifier Constructor Description privateIfFileName(java.lang.String glob, java.lang.String regex, PathCondition... nestedConditions)Constructs a FileNameFilter filter.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaccept(java.nio.file.Path basePath, java.nio.file.Path relativePath, java.nio.file.attribute.BasicFileAttributes attrs)Returnstrueif the specified candidate path should be deleted,falseotherwise.voidbeforeFileTreeWalk()Invoked before a new file tree walk is started.static IfFileNamecreateNameCondition(java.lang.String glob, java.lang.String regex, PathCondition... nestedConditions)Creates a IfFileName condition that returns true if either the specified glob pattern or the regular expression matches the relative path.(package private) static java.lang.StringcreateSyntaxAndPatternString(java.lang.String glob, java.lang.String regex)java.util.List<PathCondition>getNestedConditions()java.lang.StringgetSyntaxAndPattern()Returns the baseDir-relative path pattern of the files to delete.java.lang.StringtoString()
-
-
-
Field Detail
-
LOGGER
private static final Logger LOGGER
-
pathMatcher
private final java.nio.file.PathMatcher pathMatcher
-
syntaxAndPattern
private final java.lang.String syntaxAndPattern
-
nestedConditions
private final PathCondition[] nestedConditions
-
-
Constructor Detail
-
IfFileName
private IfFileName(java.lang.String glob, java.lang.String regex, PathCondition... nestedConditions)Constructs a FileNameFilter filter. If both a regular expression and a glob pattern are specified the glob pattern is used and the regular expression is ignored.- Parameters:
glob- the baseDir-relative path pattern of the files to delete (may contain '*' and '?' wildcarts)regex- the regular expression that matches the baseDir-relative path of the file(s) to deletenestedConditions- nested conditions to evaluate if this condition accepts a path
-
-
Method Detail
-
createSyntaxAndPatternString
static java.lang.String createSyntaxAndPatternString(java.lang.String glob, java.lang.String regex)
-
getSyntaxAndPattern
public java.lang.String getSyntaxAndPattern()
Returns the baseDir-relative path pattern of the files to delete. The returned string takes the formsyntax:patternwhere syntax is one of "glob" or "regex" and the pattern is either a regular expression or a simplified pattern expression described under "glob" inFileSystem.getPathMatcher(String).- Returns:
- relative path of the file(s) to delete (may contain regular expression or wildcarts)
-
getNestedConditions
public java.util.List<PathCondition> getNestedConditions()
-
accept
public boolean accept(java.nio.file.Path basePath, java.nio.file.Path relativePath, java.nio.file.attribute.BasicFileAttributes attrs)Description copied from interface:PathConditionReturnstrueif the specified candidate path should be deleted,falseotherwise.- Specified by:
acceptin interfacePathCondition- Parameters:
basePath- the directory from where to start scanning for deletion candidate filesrelativePath- the candidate for deletion. This path is relative to the baseDir.attrs- attributes of the candidate path- Returns:
- whether the candidate path should be deleted
-
beforeFileTreeWalk
public void beforeFileTreeWalk()
Description copied from interface:PathConditionInvoked before a new file tree walk is started. Stateful PathConditions can reset their state when this method is called.- Specified by:
beforeFileTreeWalkin interfacePathCondition
-
createNameCondition
@PluginFactory public static IfFileName createNameCondition(@PluginAttribute("glob") java.lang.String glob, @PluginAttribute("regex") java.lang.String regex, @PluginElement("PathConditions") PathCondition... nestedConditions)
Creates a IfFileName condition that returns true if either the specified glob pattern or the regular expression matches the relative path. If both a regular expression and a glob pattern are specified the glob pattern is used and the regular expression is ignored.- Parameters:
glob- the baseDir-relative path pattern of the files to delete (may contain '*' and '?' wildcarts)regex- the regular expression that matches the baseDir-relative path of the file(s) to deletenestedConditions- nested conditions to evaluate if this condition accepts a path- Returns:
- A IfFileName condition.
- See Also:
FileSystem.getPathMatcher(String)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-