Class IfFileName

  • All Implemented Interfaces:
    PathCondition

    @Plugin(name="IfFileName",
            category="Core",
            printObject=true)
    public final class IfFileName
    extends 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 Pattern class. A glob is a simplified pattern expression described in FileSystem.getPathMatcher(String).

    • Method Detail

      • getSyntaxAndPattern

        public String getSyntaxAndPattern()
        Returns the baseDir-relative path pattern of the files to delete. The returned string takes the form syntax:pattern where syntax is one of "glob" or "regex" and the pattern is either a regular expression or a simplified pattern expression described under "glob" in FileSystem.getPathMatcher(String).
        Returns:
        relative path of the file(s) to delete (may contain regular expression or wildcarts)
      • accept

        public boolean accept​(Path basePath,
                              Path relativePath,
                              BasicFileAttributes attrs)
        Description copied from interface: PathCondition
        Returns true if the specified candidate path should be deleted, false otherwise.
        Specified by:
        accept in interface PathCondition
        Parameters:
        basePath - the directory from where to start scanning for deletion candidate files
        relativePath - 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
      • createNameCondition

        @PluginFactory
        public static IfFileName createNameCondition​(@PluginAttribute("glob")
                                                     String glob,
                                                     @PluginAttribute("regex")
                                                     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 delete
        nestedConditions - nested conditions to evaluate if this condition accepts a path
        Returns:
        A IfFileName condition.
        See Also:
        FileSystem.getPathMatcher(String)