org.schmant.task.apache.ant
Class AntTask

java.lang.Object
  extended by org.schmant.support.AbstractArgumentChecker
      extended by org.schmant.task.stub.AbstractTask<T>
          extended by org.schmant.task.template.process.AbstractExtProcessTask<AntTask>
              extended by org.schmant.task.apache.ant.AntTask
All Implemented Interfaces:
TaskDependency, ActionTaskConfigurable<AntTask>, ActionTaskSpec<AntTask>, LoggingConfigurable<AntTask>, SourceConfigurable<AntTask>, SourceConfigured, Task, TaskRunnable, TaskSpecification<AntTask>, ExtProcessConfigured, ExtProcessTask<AntTask>

public final class AntTask
extends AbstractExtProcessTask<AntTask>
implements ActionTaskSpec<AntTask>

A task for running an external Ant program.

See AntTF

Since:
0.5
Author:
Karl Gustafsson
Task_package:
org.apache.ant

Method Summary
 AntTask addSource(Object o)
          Add one or several sources.
 AntTask addSources(Object o)
          This method does the same as SourceConfigurable.addSource(Object)
 AntTask clearSources()
          Clear the collection of sources.
 void copyProperties(AntTask spec)
          Copy the properties to the target object.
protected  String getDefaultLogHeader()
          Get the default log header to log (to level INFO) before the task is run if the task user has not set a custom header.
 Object getSource()
          Get the first source set.
 List<Object> getSources()
          Get the source list.
protected  void runInternal(Report r)
          Subclasses implement this.
 AntTask setRelativeToBase(RelativeLocation loc)
          This property is set with the task's source's location relative to a base location if the task is run within a recursive task.
 AntTask setSource(Object o)
          Set one or several sources, discarding previously set sources.
 AntTask setSources(Object o)
          This method does the same as SourceConfigurable.setSource(Object)
 String toString()
          Default implementation for tasks.
protected  Collection<String> validate(Report r)
          This method may be overridden by subclasses to validate their configuration (including their TaskFactory:s) before the task is run.
 
Methods inherited from class org.schmant.task.template.process.AbstractExtProcessTask
addArgumentsToCommandList, execAndWait, getArguments, getEnvironmentVariables, getProcessResult, getStderrStrategy, getStdoutStrategy, getWorkingDirectory, isFailOnErrors, isInheritEnvironmentVariables
 
Methods inherited from class org.schmant.task.stub.AbstractTask
cancel, createTask, getDefaultLogFooter, getDependencyForTasksScheduledByThisTask, getDependencyObservable, getFailureCause, getLogFooter, getLogHeader, getSatisfiedStateLock, getThis, isCancelled, isDone, isInterrupted, isRunning, isSatisfied, isSuccessful, run, setLogFooter, setLogHeader, setReportLevel, setTraceLogging
 
Methods inherited from class org.schmant.support.AbstractArgumentChecker
check, check, check, check
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.schmant.task.TaskSpecification
createTask
 
Methods inherited from interface org.schmant.task.confable.LoggingConfigurable
setLogFooter, setLogHeader, setReportLevel, setTraceLogging
 
Methods inherited from interface org.schmant.task.Task
cancel, getDependencyForTasksScheduledByThisTask, getFailureCause, isCancelled, isDone, isInterrupted, isRunning, isSuccessful
 
Methods inherited from interface org.schmant.run.TaskDependency
getDependencyObservable, getSatisfiedStateLock, isSatisfied
 
Methods inherited from interface org.schmant.task.TaskRunnable
run
 

Method Detail

setSource

public final AntTask setSource(Object o)
Description copied from interface: SourceConfigurable
Set one or several sources, discarding previously set sources.

Specified by:
setSource in interface SourceConfigurable<AntTask>
Parameters:
o - The source. If this is a Collection or an array, it is flattened (see FlatteningList), and all objects in the collection or array are set.
Returns:
this

setSources

public final AntTask setSources(Object o)
Description copied from interface: SourceConfigurable
This method does the same as SourceConfigurable.setSource(Object)

Specified by:
setSources in interface SourceConfigurable<AntTask>
Parameters:
o - The source or sources.
Returns:
this

addSource

public final AntTask addSource(Object o)
Description copied from interface: SourceConfigurable
Add one or several sources.

Specified by:
addSource in interface SourceConfigurable<AntTask>
Parameters:
o - The source. If this is a Collection or an array, it is flattened (see FlatteningList), and all sources in the collection or array are added.
Returns:
this

addSources

public final AntTask addSources(Object o)
Description copied from interface: SourceConfigurable
This method does the same as SourceConfigurable.addSource(Object)

Specified by:
addSources in interface SourceConfigurable<AntTask>
Parameters:
o - The source or sources.
Returns:
this

clearSources

public final AntTask clearSources()
Description copied from interface: SourceConfigurable
Clear the collection of sources.

Specified by:
clearSources in interface SourceConfigurable<AntTask>
Returns:
this.

getSource

public Object getSource()
Description copied from interface: SourceConfigured
Get the first source set.

Specified by:
getSource in interface SourceConfigured
Returns:
The first source in the source list or null if no source is set.

getSources

public List<Object> getSources()
Description copied from interface: SourceConfigured
Get the source list.

Specified by:
getSources in interface SourceConfigured
Returns:
The source list. Possibly empty but never null.

setRelativeToBase

public final AntTask setRelativeToBase(RelativeLocation loc)
Description copied from interface: SourceConfigurable
This property is set with the task's source's location relative to a base location if the task is run within a recursive task. The base location is the location of the source of the recursive task.

If the SourceConfigurable (this object) is an action task factory that is used in a recursive action task, the recursive action task sets this property for each created task.

Specified by:
setRelativeToBase in interface SourceConfigurable<AntTask>
Parameters:
loc - The source's location relative to the base location.
Returns:
this

getDefaultLogHeader

protected String getDefaultLogHeader()
Description copied from class: AbstractTask
Get the default log header to log (to level INFO) before the task is run if the task user has not set a custom header. Subclasses may override this to return better headers.

This is called after validating the task.

Return null to disable logging.

Overrides:
getDefaultLogHeader in class AbstractTask<AntTask>
Returns:
"Running " + toString()

validate

protected Collection<String> validate(Report r)
Description copied from class: AbstractTask
This method may be overridden by subclasses to validate their configuration (including their TaskFactory:s) before the task is run.

Validation errors are collected as strings. If this method is overridden, always call super.validate.

Overrides:
validate in class AbstractTask<AntTask>
Parameters:
r - A report to log warning and debug messages to. Validation errors should not be logged, though. They are logged later.
Returns:
A collection of error messages.

runInternal

protected void runInternal(Report r)
                    throws IOException,
                           InterruptedException
Description copied from class: AbstractTask
Subclasses implement this. The task is AbstractTask.validate(Report):d before this method is called, see AbstractTask.run().

Specified by:
runInternal in class AbstractTask<AntTask>
Parameters:
r - The current thread's Report.
Throws:
IOException
InterruptedException

copyProperties

public void copyProperties(AntTask spec)
Description copied from class: AbstractTask
Copy the properties to the target object.

Subclasses must override this to copy their properties. The overriding method must call super.copyProperties.

Specified by:
copyProperties in interface TaskSpecification<AntTask>
Overrides:
copyProperties in class AbstractExtProcessTask<AntTask>
Parameters:
spec - The specification to copy properties to.

toString

public String toString()
Description copied from class: AbstractTask
Default implementation for tasks. Task implementations may override this. It is used in the default log header that is written (level INFO) before a task is run.

This implementation just returns the class name.

Overrides:
toString in class AbstractTask<AntTask>