ExecuteOn (Apache Ant API)

org.apache.tools.ant.taskdefs
Class ExecuteOn


java.lang.Object

  |

  +--org.apache.tools.ant.ProjectComponent

        |

        +--org.apache.tools.ant.Task

              |

              +--org.apache.tools.ant.taskdefs.ExecTask

                    |

                    +--org.apache.tools.ant.taskdefs.ExecuteOn

Direct Known Subclasses:
Chmod, Transform

public class ExecuteOn
extends ExecTask

Executes a given command, supplying a set of files as arguments.

Since:
Ant 1.2
Author:
Stefan Bodewig
, Mariusz Nowostawski

Nested Class Summary
static class ExecuteOn.FileDirBoth
          Enumerated attribute with the values "file", "dir" and "both" for the type attribute.
 
Field Summary
protected  java.io.File destDir
           
protected  java.util.Vector filesets
           
protected  FileNameMapper mapper
           
protected  Mapper mapperElement
           
protected  Commandline.Marker srcFilePos
           
protected  boolean srcIsFirst
          Has <srcfile> been specified before <targetfile>
protected  Commandline.Marker targetFilePos
           
protected  java.lang.String type
           
 
Fields inherited from class org.apache.tools.ant.taskdefs.ExecTask
cmdl, failOnError, newEnvironment
 
Fields inherited from class org.apache.tools.ant.Task
description, location, target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
project
 
Constructor Summary
ExecuteOn()
           
 
Method Summary
 void addFileset(FileSet set)
          Source files to operate upon.
protected  void checkConfiguration()
          Has the user set all necessary attributes?
 Mapper createMapper()
          Mapper to use for mapping source files to target files.
 Commandline.Marker createSrcfile()
          Marker that indicates where the name of the source file should be put on the command line.
 Commandline.Marker createTargetfile()
          Marker that indicates where the name of the target file should be put on the command line.
protected  java.lang.String[] getCommandline(java.lang.String[] srcFiles, java.io.File[] baseDirs)
          Construct the command line for parallel execution.
protected  java.lang.String[] getCommandline(java.lang.String srcFile, java.io.File baseDir)
          Construct the command line for serial execution.
protected  java.lang.String[] getDirs(java.io.File baseDir, DirectoryScanner ds)
          Return the list of Directories from this DirectoryScanner that should be included on the command line.
protected  java.lang.String[] getFiles(java.io.File baseDir, DirectoryScanner ds)
          Return the list of files from this DirectoryScanner that should be included on the command line.
protected  void runExec(Execute exe)
          Run the command using the given Execute instance.
 void setDest(java.io.File destDir)
          The directory where target files are to be placed.
 void setParallel(boolean parallel)
          If true, run the command only once, appending all files as arguments.
 void setRelative(boolean relative)
          Whether the filenames should be passed on the command line as absolute or relative pathnames.
 void setSkipEmptyFilesets(boolean skip)
          If no source files have been found or are newer than their corresponding target files, do not run the command.
 void setType(ExecuteOn.FileDirBoth type)
          Whether the command works only on files, directories or both?
 
Methods inherited from class org.apache.tools.ant.taskdefs.ExecTask
addEnv, createArg, createHandler, createWatchdog, execute, isValidOs, logFlush, maybeSetResultPropertyValue, prepareExec, runExecute, setAppend, setCommand, setDir, setExecutable, setFailIfExecutionFails, setFailonerror, setNewenvironment, setOs, setOutput, setOutputproperty, setResultProperty, setTimeout, setTimeout, setVMLauncher
 
Methods inherited from class org.apache.tools.ant.Task
getDescription, getLocation, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, handleErrorOutput, handleOutput, init, isInvalid, log, log, maybeConfigure, perform, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
getProject, setProject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

filesets


protected java.util.Vector filesets

type


protected java.lang.String type

srcFilePos


protected Commandline.Marker srcFilePos

targetFilePos


protected Commandline.Marker targetFilePos

mapperElement


protected Mapper mapperElement

mapper


protected FileNameMapper mapper

destDir


protected java.io.File destDir

srcIsFirst


protected boolean srcIsFirst
Has <srcfile> been specified before <targetfile>

Constructor Detail

ExecuteOn


public ExecuteOn()
Method Detail

addFileset


public void addFileset(FileSet set)
Source files to operate upon.


setRelative


public void setRelative(boolean relative)
Whether the filenames should be passed on the command line as absolute or relative pathnames. Paths are relative to the base directory of the corresponding fileset for source files or the dest attribute for target files.


setParallel


public void setParallel(boolean parallel)
If true, run the command only once, appending all files as arguments. If false, command will be executed once for every file. Defaults to false.


setType


public void setType(ExecuteOn.FileDirBoth type)
Whether the command works only on files, directories or both?


setSkipEmptyFilesets


public void setSkipEmptyFilesets(boolean skip)
If no source files have been found or are newer than their corresponding target files, do not run the command.


setDest


public void setDest(java.io.File destDir)
The directory where target files are to be placed.


createSrcfile


public Commandline.Marker createSrcfile()
Marker that indicates where the name of the source file should be put on the command line.


createTargetfile


public Commandline.Marker createTargetfile()
Marker that indicates where the name of the target file should be put on the command line.


createMapper


public Mapper createMapper()
                    throws BuildException
Mapper to use for mapping source files to target files.

BuildException

checkConfiguration


protected void checkConfiguration()
Description copied from class: ExecTask
Has the user set all necessary attributes?

Overrides:
checkConfiguration in class ExecTask
To do:
using taskName here is brittle, as a user could override it. this should probably be modified to use the classname instead.

runExec


protected void runExec(Execute exe)
                throws BuildException
Description copied from class: ExecTask
Run the command using the given Execute instance. This may be overidden by subclasses

Overrides:
runExec in class ExecTask
BuildException

getCommandline


protected java.lang.String[] getCommandline(java.lang.String[] srcFiles,
                                            java.io.File[] baseDirs)
Construct the command line for parallel execution.

Parameters:
srcFiles - The filenames to add to the commandline

getCommandline


protected java.lang.String[] getCommandline(java.lang.String srcFile,
                                            java.io.File baseDir)
Construct the command line for serial execution.

Parameters:
srcFile - The filename to add to the commandline
baseDir - filename is relative to this dir

getFiles


protected java.lang.String[] getFiles(java.io.File baseDir,
                                      DirectoryScanner ds)
Return the list of files from this DirectoryScanner that should be included on the command line.


getDirs


protected java.lang.String[] getDirs(java.io.File baseDir,
                                     DirectoryScanner ds)
Return the list of Directories from this DirectoryScanner that should be included on the command line.



Copyright © 2000-2002 Apache Software Foundation. All Rights Reserved.