Class AbstractSyncTask

  • All Implemented Interfaces:
    java.lang.Cloneable
    Direct Known Subclasses:
    CopyTask

    public abstract class AbstractSyncTask
    extends VfsTask
    An abstract file synchronization task. Scans a set of source files and folders, and a destination folder, and performs actions on missing and out-of-date files. Specifically, performs actions on the following:
    • Missing destination file.
    • Missing source file.
    • Out-of-date destination file.
    • Up-to-date destination file.
    TODO - Deal with case where dest file maps to a child of one of the source files.
    TODO - Deal with case where dest file already exists and is incorrect type (not file, not a folder).
    TODO - Use visitors.
    TODO - Add default excludes.
    TOOD - Allow selector, mapper, filters, etc to be specified.
    TODO - Handle source/dest directories as well.
    TODO - Allow selector to be specified for choosing which dest files to sync.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  AbstractSyncTask.SourceInfo
      Information about a source file.
    • Field Summary

      • Fields inherited from class org.apache.tools.ant.Task

        target, taskName, taskType, wrapper
      • Fields inherited from class org.apache.tools.ant.ProjectComponent

        description, location, project
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addConfiguredSrc​(AbstractSyncTask.SourceInfo srcInfo)
      Adds a nested <src> element.
      protected boolean detectMissingSourceFiles()
      Check if this task cares about destination files with a missing source file.
      void execute()
      Executes this task.
      protected void handleMissingSourceFile​(FileObject destFile)
      Handles a destination for which there is no corresponding source file.
      protected void handleOutOfDateFile​(FileObject srcFile, FileObject destFile)
      Handles an out-of-date file.
      protected void handleUpToDateFile​(FileObject srcFile, FileObject destFile)
      Handles an up-to-date file.
      boolean isFailonerror()
      Sets whether we should fail if there was an error or not.
      protected void logOrDie​(java.lang.String message, int level)  
      void setDestDir​(java.lang.String destDir)
      Sets the destination directory.
      void setDestFile​(java.lang.String destFile)
      Sets the destination file.
      void setFailonerror​(boolean failonerror)
      Sets whether we should fail if there was an error or not.
      void setIncludes​(java.lang.String filesList)
      Sets the files to includes.
      void setSrc​(java.lang.String srcFile)
      Sets the source file.
      void setSrcDir​(java.lang.String srcDir)
      Sets the source directory.
      void setSrcDirIsBase​(boolean srcDirIsBase)
      Sets whether the source directory should be consider as the base directory.
      • Methods inherited from class org.apache.tools.ant.Task

        bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
      • Methods inherited from class org.apache.tools.ant.ProjectComponent

        clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • setDestFile

        public void setDestFile​(java.lang.String destFile)
        Sets the destination file.
        Parameters:
        destFile - The destination file name.
      • setDestDir

        public void setDestDir​(java.lang.String destDir)
        Sets the destination directory.
        Parameters:
        destDir - The destination directory.
      • setSrc

        public void setSrc​(java.lang.String srcFile)
        Sets the source file.
        Parameters:
        srcFile - The source file name.
      • setSrcDir

        public void setSrcDir​(java.lang.String srcDir)
        Sets the source directory.
        Parameters:
        srcDir - The source directory.
      • setSrcDirIsBase

        public void setSrcDirIsBase​(boolean srcDirIsBase)
        Sets whether the source directory should be consider as the base directory.
        Parameters:
        srcDirIsBase - true if the source directory is the base directory.
      • setFailonerror

        public void setFailonerror​(boolean failonerror)
        Sets whether we should fail if there was an error or not.
        Parameters:
        failonerror - true if the operation should fail if there is an error.
      • isFailonerror

        public boolean isFailonerror()
        Sets whether we should fail if there was an error or not.
        Returns:
        true if the operation should fail if there was an error.
      • setIncludes

        public void setIncludes​(java.lang.String filesList)
        Sets the files to includes.
        Parameters:
        filesList - The list of files to include.
      • addConfiguredSrc

        public void addConfiguredSrc​(AbstractSyncTask.SourceInfo srcInfo)
                              throws org.apache.tools.ant.BuildException
        Adds a nested <src> element.
        Parameters:
        srcInfo - A nested source element.
        Throws:
        org.apache.tools.ant.BuildException - if the SourceInfo doesn't reference a file.
      • execute

        public void execute()
                     throws org.apache.tools.ant.BuildException
        Executes this task.
        Overrides:
        execute in class org.apache.tools.ant.Task
        Throws:
        org.apache.tools.ant.BuildException - if an error occurs.
      • logOrDie

        protected void logOrDie​(java.lang.String message,
                                int level)
      • handleOutOfDateFile

        protected void handleOutOfDateFile​(FileObject srcFile,
                                           FileObject destFile)
                                    throws java.lang.Exception
        Handles an out-of-date file.

        This is a file where the destination file either doesn't exist, or is older than the source file.

        This implementation does nothing.

        Parameters:
        srcFile - The source file.
        destFile - The destination file.
        Throws:
        java.lang.Exception - Implementation can throw any Exception.
      • handleUpToDateFile

        protected void handleUpToDateFile​(FileObject srcFile,
                                          FileObject destFile)
                                   throws java.lang.Exception
        Handles an up-to-date file.

        This is where the destination file exists and is newer than the source file.

        This implementation does nothing.

        Parameters:
        srcFile - The source file.
        destFile - The destination file.
        Throws:
        java.lang.Exception - Implementation can throw any Exception.
      • handleMissingSourceFile

        protected void handleMissingSourceFile​(FileObject destFile)
                                        throws java.lang.Exception
        Handles a destination for which there is no corresponding source file.

        This implementation does nothing.

        Parameters:
        destFile - The existing destination file.
        Throws:
        java.lang.Exception - Implementation can throw any Exception.
      • detectMissingSourceFiles

        protected boolean detectMissingSourceFiles()
        Check if this task cares about destination files with a missing source file.

        This implementation returns false.

        Returns:
        True if missing file is detected.