org.apache.tools.ant.taskdefs.optional.junit
Class AggregateTransformer

java.lang.Object
  extended by org.apache.tools.ant.taskdefs.optional.junit.AggregateTransformer

public class AggregateTransformer
extends java.lang.Object

Transform a JUnit xml report. The default transformation generates an html report in either framed or non-framed style. The non-framed style is convenient to have a concise report via mail, the framed report is much more convenient if you want to browse into different packages or testcases since it is a Javadoc like report.


Nested Class Summary
static class AggregateTransformer.Format
          defines acceptable formats.
 
Field Summary
protected static javax.xml.parsers.DocumentBuilderFactory dbfactory
          XML Parser factory accessible to subclasses
protected  org.w3c.dom.Document document
          the xml document to process
protected  java.lang.String format
          the format to use for the report.
static java.lang.String FRAMES
          name of the frames format.
static java.lang.String NOFRAMES
          name of the no frames format.
protected  java.io.File styleDir
          the style directory.
protected  Task task
          Task
protected  java.io.File toDir
          the destination directory, this is the root from where html should be generated
 
Constructor Summary
AggregateTransformer(Task task)
          constructor creating the transformer from the junitreport task.
 
Method Summary
protected  void checkOptions()
          check for invalid options
 XSLTProcess.Param createParam()
          Create an instance of an XSL parameter for configuration by Ant.
protected static javax.xml.parsers.DocumentBuilderFactory getDocumentBuilderFactory()
          Get the Document Builder Factory
protected  Resource getStylesheet()
          access the stylesheet to be used as a resource.
protected  java.lang.String getStylesheetSystemId()
          Get the systemid of the appropriate stylesheet based on its name and styledir.
 void setExtension(java.lang.String ext)
          set the extension of the output files
 void setFormat(AggregateTransformer.Format format)
          sets the format.
 void setStyledir(java.io.File styledir)
          set the style directory.
 void setTodir(java.io.File todir)
          set the destination directory.
 void setXmlDocument(org.w3c.dom.Document doc)
          sets the input document.
protected  void setXmlfile(java.io.File xmlfile)
          Set the xml file to be processed.
 void transform()
          transformation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FRAMES

public static final java.lang.String FRAMES
name of the frames format.

See Also:
Constant Field Values

NOFRAMES

public static final java.lang.String NOFRAMES
name of the no frames format.

See Also:
Constant Field Values

task

protected Task task
Task


document

protected org.w3c.dom.Document document
the xml document to process


styleDir

protected java.io.File styleDir
the style directory. XSLs should be read from here if necessary


toDir

protected java.io.File toDir
the destination directory, this is the root from where html should be generated


format

protected java.lang.String format
the format to use for the report. Must be FRAMES or NOFRAMES


dbfactory

protected static javax.xml.parsers.DocumentBuilderFactory dbfactory
XML Parser factory accessible to subclasses

Constructor Detail

AggregateTransformer

public AggregateTransformer(Task task)
constructor creating the transformer from the junitreport task.

Parameters:
task - task delegating to this class
Method Detail

getDocumentBuilderFactory

protected static javax.xml.parsers.DocumentBuilderFactory getDocumentBuilderFactory()
Get the Document Builder Factory

Returns:
the DocumentBuilderFactory instance in use

setFormat

public void setFormat(AggregateTransformer.Format format)
sets the format.

Parameters:
format - Must be FRAMES or NOFRAMES

setXmlDocument

public void setXmlDocument(org.w3c.dom.Document doc)
sets the input document.

Parameters:
doc - input dom tree

setXmlfile

protected void setXmlfile(java.io.File xmlfile)
                   throws BuildException
Set the xml file to be processed. This is a helper if you want to set the file directly. Much more for testing purposes.

Parameters:
xmlfile - xml file to be processed
Throws:
BuildException - if the document cannot be parsed.

setStyledir

public void setStyledir(java.io.File styledir)
set the style directory. It is optional and will override the default xsl used.

Parameters:
styledir - the directory containing the xsl files if the user would like to override with its own style.

setTodir

public void setTodir(java.io.File todir)
set the destination directory.

Parameters:
todir - the destination directory

setExtension

public void setExtension(java.lang.String ext)
set the extension of the output files

Parameters:
ext - extension.

createParam

public XSLTProcess.Param createParam()
Create an instance of an XSL parameter for configuration by Ant.

Returns:
an instance of the Param class to be configured.
Since:
Ant 1.7

transform

public void transform()
               throws BuildException
transformation

Throws:
BuildException - exception if something goes wrong with the transformation.

getStylesheet

protected Resource getStylesheet()
access the stylesheet to be used as a resource.

Returns:
stylesheet as a resource

checkOptions

protected void checkOptions()
                     throws BuildException
check for invalid options

Throws:
BuildException - if something goes wrong.

getStylesheetSystemId

protected java.lang.String getStylesheetSystemId()
                                          throws java.io.IOException
Get the systemid of the appropriate stylesheet based on its name and styledir. If no styledir is defined it will load it as a java resource in the xsl child package, otherwise it will get it from the given directory.

Returns:
system ID of the stylesheet.
Throws:
java.io.IOException - thrown if the requested stylesheet does not exist.