Class FileSetManager


  • public class FileSetManager
    extends java.lang.Object
    Provides operations for use with FileSet instances, such as retrieving the included/excluded files, deleting all matching entries, etc.
    Version:
    $Id: FileSetManager.java 1721672 2015-12-25 13:18:36Z khmarbaise $
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.lang.String[] EMPTY_STRING_ARRAY  
      private org.apache.maven.shared.io.logging.MessageHolder messages  
      private boolean verbose  
    • Constructor Summary

      Constructors 
      Constructor Description
      FileSetManager()
      Create a new manager instance with an empty messages.
      FileSetManager​(org.apache.maven.plugin.logging.Log log)
      Create a new manager instance with the supplied log instance.
      FileSetManager​(org.apache.maven.plugin.logging.Log log, boolean verbose)
      Create a new manager instance with the supplied log instance and flag for whether to output verbose messages.
      FileSetManager​(org.codehaus.plexus.logging.Logger log)
      Create a new manager instance with the supplied log instance.
      FileSetManager​(org.codehaus.plexus.logging.Logger log, boolean verbose)
      Create a new manager instance with the supplied log instance and flag for whether to output verbose messages.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private boolean delete​(java.io.File f)
      Delete a file
      void delete​(FileSet fileSet)
      Delete the matching files and directories for the given file-set definition.
      void delete​(FileSet fileSet, boolean throwsError)
      Delete the matching files and directories for the given file-set definition.
      private void excludeParentDirectoriesOfExcludedPaths​(java.util.List<java.lang.String> excludedPaths, java.util.Set<java.lang.String> deletablePaths)
      Removes all parent directories of the already excluded files/directories from the given set of deletable directories.
      private java.util.Set<java.lang.String> findDeletableDirectories​(FileSet fileSet)  
      private java.util.Set<java.lang.String> findDeletableFiles​(FileSet fileSet, java.util.Set<java.lang.String> deletableDirectories)  
      private java.util.Set<java.lang.String> findDeletablePaths​(FileSet fileSet)  
      java.lang.String[] getExcludedDirectories​(FileSet fileSet)
      Get all the directory names which have been excluded by the rules in this fileset.
      java.lang.String[] getExcludedFiles​(FileSet fileSet)
      Get all the filenames which have been excluded by the rules in this fileset.
      java.lang.String[] getIncludedDirectories​(FileSet fileSet)
      Get all the directory names which have been included by the rules in this fileset.
      java.lang.String[] getIncludedFiles​(FileSet fileSet)
      Get all the filenames which have been included by the rules in this fileset.
      private boolean isSymlink​(java.io.File file)  
      java.util.Map<java.lang.String,​java.lang.String> mapIncludedFiles​(FileSet fileSet)  
      private void removeDir​(java.io.File dir, boolean followSymlinks, boolean throwsError, java.util.List<java.lang.String> warnMessages)
      Delete a directory
      private org.apache.maven.shared.utils.io.DirectoryScanner scan​(FileSet fileSet)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EMPTY_STRING_ARRAY

        private static final java.lang.String[] EMPTY_STRING_ARRAY
      • verbose

        private final boolean verbose
      • messages

        private org.apache.maven.shared.io.logging.MessageHolder messages
    • Constructor Detail

      • FileSetManager

        public FileSetManager​(org.apache.maven.plugin.logging.Log log,
                              boolean verbose)
        Create a new manager instance with the supplied log instance and flag for whether to output verbose messages.
        Parameters:
        log - The mojo log instance
        verbose - Whether to output verbose messages
      • FileSetManager

        public FileSetManager​(org.apache.maven.plugin.logging.Log log)
        Create a new manager instance with the supplied log instance. Verbose flag is set to false.
        Parameters:
        log - The mojo log instance
      • FileSetManager

        public FileSetManager​(org.codehaus.plexus.logging.Logger log,
                              boolean verbose)
        Create a new manager instance with the supplied log instance and flag for whether to output verbose messages.
        Parameters:
        log - The mojo log instance
        verbose - Whether to output verbose messages
      • FileSetManager

        public FileSetManager​(org.codehaus.plexus.logging.Logger log)
        Create a new manager instance with the supplied log instance. Verbose flag is set to false.
        Parameters:
        log - The mojo log instance
      • FileSetManager

        public FileSetManager()
        Create a new manager instance with an empty messages. Verbose flag is set to false.
    • Method Detail

      • getIncludedFiles

        public java.lang.String[] getIncludedFiles​(FileSet fileSet)
        Get all the filenames which have been included by the rules in this fileset.
        Parameters:
        fileSet - The fileset defining rules for inclusion/exclusion, and base directory.
        Returns:
        the array of matching filenames, relative to the basedir of the file-set.
      • getIncludedDirectories

        public java.lang.String[] getIncludedDirectories​(FileSet fileSet)
        Get all the directory names which have been included by the rules in this fileset.
        Parameters:
        fileSet - The fileset defining rules for inclusion/exclusion, and base directory.
        Returns:
        the array of matching dirnames, relative to the basedir of the file-set.
      • getExcludedFiles

        public java.lang.String[] getExcludedFiles​(FileSet fileSet)
        Get all the filenames which have been excluded by the rules in this fileset.
        Parameters:
        fileSet - The fileset defining rules for inclusion/exclusion, and base directory.
        Returns:
        the array of non-matching filenames, relative to the basedir of the file-set.
      • getExcludedDirectories

        public java.lang.String[] getExcludedDirectories​(FileSet fileSet)
        Get all the directory names which have been excluded by the rules in this fileset.
        Parameters:
        fileSet - The fileset defining rules for inclusion/exclusion, and base directory.
        Returns:
        the array of non-matching dirnames, relative to the basedir of the file-set.
      • delete

        public void delete​(FileSet fileSet)
                    throws java.io.IOException
        Delete the matching files and directories for the given file-set definition.
        Parameters:
        fileSet - The file-set matching rules, along with search base directory
        Throws:
        java.io.IOException - If a matching file cannot be deleted
      • delete

        public void delete​(FileSet fileSet,
                           boolean throwsError)
                    throws java.io.IOException
        Delete the matching files and directories for the given file-set definition.
        Parameters:
        fileSet - The file-set matching rules, along with search base directory.
        throwsError - Throw IOException when errors have occurred by deleting files or directories.
        Throws:
        java.io.IOException - If a matching file cannot be deleted and throwsError=true, otherwise print warning messages.
      • isSymlink

        private boolean isSymlink​(java.io.File file)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • findDeletablePaths

        private java.util.Set<java.lang.String> findDeletablePaths​(FileSet fileSet)
      • findDeletableDirectories

        private java.util.Set<java.lang.String> findDeletableDirectories​(FileSet fileSet)
      • findDeletableFiles

        private java.util.Set<java.lang.String> findDeletableFiles​(FileSet fileSet,
                                                                   java.util.Set<java.lang.String> deletableDirectories)
      • excludeParentDirectoriesOfExcludedPaths

        private void excludeParentDirectoriesOfExcludedPaths​(java.util.List<java.lang.String> excludedPaths,
                                                             java.util.Set<java.lang.String> deletablePaths)
        Removes all parent directories of the already excluded files/directories from the given set of deletable directories. I.e. if "subdir/excluded.txt" should not be deleted, "subdir" should be excluded from deletion, too.
        Parameters:
        excludedPaths - The relative paths of the files/directories which are excluded from deletion, must not be null.
        deletablePaths - The relative paths to files/directories which are scheduled for deletion, must not be null.
      • removeDir

        private void removeDir​(java.io.File dir,
                               boolean followSymlinks,
                               boolean throwsError,
                               java.util.List<java.lang.String> warnMessages)
                        throws java.io.IOException
        Delete a directory
        Parameters:
        dir - the directory to delete
        followSymlinks - whether to follow symbolic links, or simply delete the link
        throwsError - Throw IOException when errors have occurred by deleting files or directories.
        warnMessages - A list of warning messages used when throwsError=false.
        Throws:
        java.io.IOException - If a matching file cannot be deleted and throwsError=true.
      • delete

        private boolean delete​(java.io.File f)
        Delete a file
        Parameters:
        f - a file
      • scan

        private org.apache.maven.shared.utils.io.DirectoryScanner scan​(FileSet fileSet)