org.apache.commons.vfs.tasks
Class AbstractSyncTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.commons.vfs.tasks.VfsTask
              extended by org.apache.commons.vfs.tasks.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:

Version:
$Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
Author:
Adam Murdoch

Nested Class Summary
static class AbstractSyncTask.SourceInfo
          Information about a source file.
 
Field Summary
private  java.lang.String destDirUrl
           
private  java.lang.String destFileUrl
           
private  boolean failonerror
           
private  java.lang.String filesList
           
private  boolean srcDirIsBase
           
private  java.lang.String srcDirUrl
           
private  java.util.ArrayList srcFiles
           
 
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
 
Constructor Summary
AbstractSyncTask()
           
 
Method Summary
 void addConfiguredSrc(AbstractSyncTask.SourceInfo srcInfo)
          Adds a nested element.
protected  boolean detectMissingSourceFiles()
          Check if this task cares about destination files with a missing source file.
 void execute()
          Executes this task.
private  void handleFile(FileObject srcFile, FileObject destFile)
          Handles a single source file.
private  void handleFile(java.util.Set destFiles, FileObject srcFile, FileObject destFile)
          Handles a single file, checking for collisions where more than one source file maps to the same destination file.
private  void handleFiles()
          Copies the source files to the destination.
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 (a file where the destination file either doesn't exist, or is older than the source file).
private  void handleSingleFile()
          Copies a single file.
protected  void handleUpToDateFile(FileObject srcFile, FileObject destFile)
          Handles an up-to-date file (where the destination file exists and is newer than the source 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.commons.vfs.tasks.VfsTask
closeManager, resolveFile
 
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
 

Field Detail

srcFiles

private final java.util.ArrayList srcFiles

destFileUrl

private java.lang.String destFileUrl

destDirUrl

private java.lang.String destDirUrl

srcDirUrl

private java.lang.String srcDirUrl

srcDirIsBase

private boolean srcDirIsBase

failonerror

private boolean failonerror

filesList

private java.lang.String filesList
Constructor Detail

AbstractSyncTask

public AbstractSyncTask()
Method Detail

setDestFile

public void setDestFile(java.lang.String destFile)
Sets the destination file.


setDestDir

public void setDestDir(java.lang.String destDir)
Sets the destination directory.


setSrc

public void setSrc(java.lang.String srcFile)
Sets the source file


setSrcDir

public void setSrcDir(java.lang.String srcDir)
Sets the source directory


setSrcDirIsBase

public void setSrcDirIsBase(boolean srcDirIsBase)
Sets whether the source directory should be consider as the base directory.


setFailonerror

public void setFailonerror(boolean failonerror)
Sets whether we should fail if there was an error or not


isFailonerror

public boolean isFailonerror()
Sets whether we should fail if there was an error or not


setIncludes

public void setIncludes(java.lang.String filesList)
Sets the files to includes


addConfiguredSrc

public void addConfiguredSrc(AbstractSyncTask.SourceInfo srcInfo)
                      throws org.apache.tools.ant.BuildException
Adds a nested element.

Throws:
org.apache.tools.ant.BuildException

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

logOrDie

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

handleFiles

private void handleFiles()
                  throws java.lang.Exception
Copies the source files to the destination.

Throws:
java.lang.Exception

handleFile

private void handleFile(java.util.Set destFiles,
                        FileObject srcFile,
                        FileObject destFile)
                 throws java.lang.Exception
Handles a single file, checking for collisions where more than one source file maps to the same destination file.

Throws:
java.lang.Exception

handleSingleFile

private void handleSingleFile()
                       throws java.lang.Exception
Copies a single file.

Throws:
java.lang.Exception

handleFile

private void handleFile(FileObject srcFile,
                        FileObject destFile)
                 throws java.lang.Exception
Handles a single source file.

Throws:
java.lang.Exception

handleOutOfDateFile

protected void handleOutOfDateFile(FileObject srcFile,
                                   FileObject destFile)
                            throws java.lang.Exception
Handles an out-of-date file (a file where the destination file either doesn't exist, or is older than the source file). This implementation does nothing.

Throws:
java.lang.Exception

handleUpToDateFile

protected void handleUpToDateFile(FileObject srcFile,
                                  FileObject destFile)
                           throws java.lang.Exception
Handles an up-to-date file (where the destination file exists and is newer than the source file). This implementation does nothing.

Throws:
java.lang.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.

Throws:
java.lang.Exception

detectMissingSourceFiles

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