AggregateTransformer (Apache Ant API)
Date: 2018-07-10

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

## Class AggregateTransformer

- java.lang.Object
- - 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

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `AggregateTransformer.Format` defines acceptable formats.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

    Constructors
    Constructor and Description
    `AggregateTransformer(Task task)` constructor creating the transformer from the junitreport task.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `checkOptions()` check for invalid options
    `protected void` | `configureForRedirectExtension()` If we end up using the JDK's own TraX factory on Java 9+, then set the features and attributes necessary to allow redirect extensions to be used.
    `Path` | `createClasspath()` Creates a classpath to be used for the internal XSLT task.
    `XSLTProcess.Factory` | `createFactory()` Creates a factory configuration to be used for the internal XSLT task.
    `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

    - #### createClasspath

          public Path createClasspath()

      Creates a classpath to be used for the internal XSLT task.
      Returns:
        the classpath to be configured
      Since:
        Ant 1.9.5

    - #### createFactory

          public XSLTProcess.Factory createFactory()

      Creates a factory configuration to be used for the internal XSLT task.
      Returns:
        the factory description to be configured
      Since:
        Ant 1.9.5

    - #### 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.

    - #### configureForRedirectExtension

          protected void configureForRedirectExtension()

      If we end up using the JDK's own TraX factory on Java 9+, then set the features and attributes necessary to allow redirect extensions to be used.
      Since:
        Ant 1.9.8