org.schmant.task.xml.xslt
Class XsltTask

java.lang.Object
  extended by org.schmant.support.AbstractArgumentChecker
      extended by org.schmant.task.stub.AbstractTask<T>
          extended by org.schmant.task.stub.AbstractActionTask<T>
              extended by org.schmant.task.stub.AbstractProcessTask<XsltTask>
                  extended by org.schmant.task.xml.xslt.XsltTask
All Implemented Interfaces:
Producer<WritableFile>, TaskDependency, ActionTaskConfigurable<XsltTask>, ActionTaskSpec<XsltTask>, LoggingConfigurable<XsltTask>, OverwriteConfigurable<XsltTask>, SourceConfigurable<XsltTask>, SourceConfigured, TargetConfigurable<XsltTask>, TargetConfigured, GeneratorTaskConfigurable<XsltTask>, GeneratorTaskSpec<XsltTask>, ProcessTaskConfigurable<XsltTask>, ProcessTaskSpec<XsltTask>, Task, TaskRunnable, TaskSpecification<XsltTask>

public final class XsltTask
extends AbstractProcessTask<XsltTask>
implements Producer<WritableFile>

See XsltTF

Since:
0.5
Author:
Karl Gustafsson
Task_package:
org.schmant.task.base

Field Summary
 
Fields inherited from interface org.schmant.task.confable.OverwriteConfigurable
DEFAULT_OVERWRITE_STRATEGY
 
Method Summary
 void copyProperties(XsltTask spec)
          Override the implementation from AbstractTask to copy the source properties.
 WritableFile get()
          Returns the produced object, or null if nothing is produced yet.
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.
protected  Templates interpretTemplates(Object o)
          Interpret the object as a Templates object using the following algorithm: If the object is a Producer, run the generated object through this method. If the object is a Templates object, return it.
protected  void runInternal(Report r)
          Subclasses implement this.
 String toString()
          Default implementation for tasks.
protected  Collection<String> validate(Report r)
          Override the method inherited from AbstractTask to give a validation error if no source is set (and AbstractActionTask.isSourcesMandatory() is true).
 
Methods inherited from class org.schmant.task.stub.AbstractProcessTask
getOverwriteStrategy, getTarget, isTargetMandatory, setOverwrite, setOverwriteStrategy, setTarget
 
Methods inherited from class org.schmant.task.stub.AbstractActionTask
addSource, addSources, clearSources, getRelativeToBase, getSource, getSources, isMoreThanOneSourceAllowed, isSourcesMandatory, setRelativeToBase, setSource, setSources
 
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.confable.SourceConfigurable
addSource, addSources, clearSources, setRelativeToBase, setSource, setSources
 
Methods inherited from interface org.schmant.task.confable.SourceConfigured
getSource, getSources
 
Methods inherited from interface org.schmant.task.TaskSpecification
createTask
 
Methods inherited from interface org.schmant.task.confable.LoggingConfigurable
setLogFooter, setLogHeader, setReportLevel, setTraceLogging
 

Method Detail

get

public WritableFile get()
Description copied from interface: Producer
Returns the produced object, or null if nothing is produced yet.

This method should be implemented thread-safe.

Specified by:
get in interface Producer<WritableFile>
Returns:
The produced object.

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<XsltTask>
Returns:
"Running " + toString()

validate

protected Collection<String> validate(Report r)
Description copied from class: AbstractActionTask
Override the method inherited from AbstractTask to give a validation error if no source is set (and AbstractActionTask.isSourcesMandatory() is true).

Subclasses may override this to add their own validations.

Overrides:
validate in class AbstractProcessTask<XsltTask>
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.

interpretTemplates

protected Templates interpretTemplates(Object o)
                                throws TaskFailedException
Interpret the object as a Templates object using the following algorithm:
  1. If the object is a Producer, run the generated object through this method.
  2. If the object is a Templates object, return it.

Parameters:
o - The object to interpret.
Returns:
The templates object.
Throws:
TaskFailedException - If the object cannot be interpreted.

runInternal

protected void runInternal(Report r)
                    throws IOException,
                           TransformerConfigurationException,
                           TransformerException
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<XsltTask>
Parameters:
r - The current thread's Report.
Throws:
IOException
TransformerConfigurationException
TransformerException

copyProperties

public void copyProperties(XsltTask spec)
Description copied from class: AbstractActionTask
Override the implementation from AbstractTask to copy the source properties. Subclasses must override this to copy their own properties.

Specified by:
copyProperties in interface TaskSpecification<XsltTask>
Overrides:
copyProperties in class AbstractProcessTask<XsltTask>
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 AbstractProcessTask<XsltTask>