org.apache.tools.ant.taskdefs
Class Copy

java.lang.Object
  |
  +--org.apache.tools.ant.Task
        |
        +--org.apache.tools.ant.taskdefs.Copy
Direct Known Subclasses:
Move

public class Copy
extends Task

A consolidated copy task. Copies a file or directory to a new file or directory. Files are only copied if the source file is newer than the destination file, or when the destination file does not exist. It is possible to explicitly overwrite existing files.

This implementation is based on Arnout Kuiper's initial design document, the following mailing list discussions, and the copyfile/copydir tasks.

Author:
Glenn McAllister glennm@ca.ibm.com, Stefan Bodewig

Field Summary
protected  java.io.File destDir
           
protected  java.io.File destFile
           
protected  java.util.Hashtable dirCopyMap
           
protected  java.io.File file
           
protected  java.util.Hashtable fileCopyMap
           
protected  java.util.Vector filesets
           
protected  boolean filtering
           
protected  boolean flatten
           
protected  boolean forceOverwrite
           
protected  boolean includeEmpty
           
protected  Mapper mapperElement
           
protected  boolean preserveLastModified
           
protected  int verbosity
           
 
Fields inherited from class org.apache.tools.ant.Task
description, location, project, target, taskName, taskType, wrapper
 
Constructor Summary
Copy()
           
 
Method Summary
 void addFileset(FileSet set)
          Adds a set of files (nested fileset attribute).
protected  void buildMap(java.io.File fromDir, java.io.File toDir, java.lang.String[] names, FileNameMapper mapper, java.util.Hashtable map)
           
 Mapper createMapper()
          Defines the FileNameMapper to use (nested mapper element).
protected  void doFileOperations()
          Actually does the file (and possibly empty directory) copies.
 void execute()
          Performs the copy operation.
protected  void scan(java.io.File fromDir, java.io.File toDir, java.lang.String[] files, java.lang.String[] dirs)
          Compares source files to destination files to see if they should be copied.
 void setFile(java.io.File file)
          Sets a single source file to copy.
 void setFiltering(boolean filtering)
          Sets filtering.
 void setFlatten(boolean flatten)
          When copying directory trees, the files can be "flattened" into a single directory.
 void setIncludeEmptyDirs(boolean includeEmpty)
          Used to copy empty directories.
 void setOverwrite(boolean overwrite)
          Overwrite any existing destination file(s).
 void setPreserveLastModified(java.lang.String preserve)
          Give the copied files the same last modified time as the original files.
 void setTodir(java.io.File destDir)
          Sets the destination directory.
 void setTofile(java.io.File destFile)
          Sets the destination file.
 void setVerbose(boolean verbose)
          Used to force listing of all names of copied files.
protected  void validateAttributes()
          Ensure we have a consistent and legal set of attributes, and set any internal flags necessary based on different combinations of attributes.
 
Methods inherited from class org.apache.tools.ant.Task
getDescription, getLocation, getOwningTarget, getProject, getRuntimeConfigurableWrapper, getTaskName, init, log, log, maybeConfigure, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

file

protected java.io.File file

destFile

protected java.io.File destFile

destDir

protected java.io.File destDir

filesets

protected java.util.Vector filesets

filtering

protected boolean filtering

preserveLastModified

protected boolean preserveLastModified

forceOverwrite

protected boolean forceOverwrite

flatten

protected boolean flatten

verbosity

protected int verbosity

includeEmpty

protected boolean includeEmpty

fileCopyMap

protected java.util.Hashtable fileCopyMap

dirCopyMap

protected java.util.Hashtable dirCopyMap

mapperElement

protected Mapper mapperElement
Constructor Detail

Copy

public Copy()
Method Detail

setFile

public void setFile(java.io.File file)
Sets a single source file to copy.

setTofile

public void setTofile(java.io.File destFile)
Sets the destination file.

setTodir

public void setTodir(java.io.File destDir)
Sets the destination directory.

setPreserveLastModified

public void setPreserveLastModified(java.lang.String preserve)
Give the copied files the same last modified time as the original files.

setFiltering

public void setFiltering(boolean filtering)
Sets filtering.

setOverwrite

public void setOverwrite(boolean overwrite)
Overwrite any existing destination file(s).

setFlatten

public void setFlatten(boolean flatten)
When copying directory trees, the files can be "flattened" into a single directory. If there are multiple files with the same name in the source directory tree, only the first file will be copied into the "flattened" directory, unless the forceoverwrite attribute is true.

setVerbose

public void setVerbose(boolean verbose)
Used to force listing of all names of copied files.

setIncludeEmptyDirs

public void setIncludeEmptyDirs(boolean includeEmpty)
Used to copy empty directories.

addFileset

public void addFileset(FileSet set)
Adds a set of files (nested fileset attribute).

createMapper

public Mapper createMapper()
                    throws BuildException
Defines the FileNameMapper to use (nested mapper element).

execute

public void execute()
             throws BuildException
Performs the copy operation.
Overrides:
execute in class Task
Following copied from class: org.apache.tools.ant.Task
Throws:
BuildException - if someting goes wrong with the build

validateAttributes

protected void validateAttributes()
                           throws BuildException
Ensure we have a consistent and legal set of attributes, and set any internal flags necessary based on different combinations of attributes.

scan

protected void scan(java.io.File fromDir,
                    java.io.File toDir,
                    java.lang.String[] files,
                    java.lang.String[] dirs)
Compares source files to destination files to see if they should be copied.

buildMap

protected void buildMap(java.io.File fromDir,
                        java.io.File toDir,
                        java.lang.String[] names,
                        FileNameMapper mapper,
                        java.util.Hashtable map)

doFileOperations

protected void doFileOperations()
Actually does the file (and possibly empty directory) copies. This is a good method for subclasses to override.


Copyright ? 2000 Apache Software Foundation. All Rights Reserved.