JDOMResult (JDOM v1.1.1)
Date: 2016-03-09

org.jdom.transform

## Class JDOMResult

- java.lang.Object
- - javax.xml.transform.sax.SAXResult
  - - org.jdom.transform.JDOMResult

- All Implemented Interfaces:
    javax.xml.transform.Result

      public class JDOMResult
      extends javax.xml.transform.sax.SAXResult

  A holder for an XSL Transformation result, generally a list of nodes although it can be a JDOM Document also. As stated by the XSLT 1.0 specification, the result tree generated by an XSL transformation is not required to be a well-formed XML document. The result tree may have "any sequence of nodes as children that would be possible for an element node".

  The following example shows how to apply an XSL Transformation to a JDOM document and get the transformation result in the form of a list of JDOM nodes:

         public static List transform(Document doc, String stylesheet)
                                              throws JDOMException {
           try {
             Transformer transformer = TransformerFactory.newInstance()
                                   .newTransformer(new StreamSource(stylesheet));
             JDOMSource in = new JDOMSource(doc);
             JDOMResult out = new JDOMResult();
             transformer.transform(in, out);
             return out.getResult();
           }
           catch (TransformerException e) {
             throw new JDOMException("XSLT Transformation failed", e);
           }
         }

  Version:
    $Revision: 1.24 $, $Date: 2007/11/10 05:29:02 $
  Author:
    Laurent Bihanic, Jason Hunter
  See Also:
    `JDOMSource`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `JDOM_FEATURE` If `TransformerFactory.getFeature(java.lang.String)` returns `true` when passed this value as an argument, the Transformer natively supports JDOM.

    - ### Fields inherited from class javax.xml.transform.sax.SAXResult

      `FEATURE`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JDOMResult()` Public default constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Document` | `getDocument()` Returns the result of an XSL Transformation as a JDOM document.
    `JDOMFactory` | `getFactory()` Returns the custom JDOMFactory used to build the transformation result.
    `java.util.List` | `getResult()` Returns the result of an XSL Transformation as a list of JDOM nodes.
    `void` | `setDocument(Document document)` Sets the document produced as result of an XSL Transformation.
    `void` | `setFactory(JDOMFactory factory)` Sets a custom JDOMFactory to use when building the transformation result.
    `void` | `setHandler(org.xml.sax.ContentHandler handler)` Sets the target to be a SAX2 ContentHandler.
    `void` | `setLexicalHandler(org.xml.sax.ext.LexicalHandler handler)` Sets the SAX2 LexicalHandler for the output.
    `void` | `setResult(java.util.List result)` Sets the object(s) produced as result of an XSL Transformation.

    - ### Methods inherited from class javax.xml.transform.sax.SAXResult

      `getHandler, getLexicalHandler, getSystemId, setSystemId`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### JDOM_FEATURE

          public static final java.lang.String JDOM_FEATURE

      If `TransformerFactory.getFeature(java.lang.String)` returns `true` when passed this value as an argument, the Transformer natively supports JDOM.

      Note: This implementation does not override the `SAXResult.FEATURE` value defined by its superclass to be considered as a SAXResult by Transformer implementations not natively supporting JDOM.

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### JDOMResult

          public JDOMResult()

      Public default constructor.

  - ### Method Detail

    - #### setResult

          public void setResult(java.util.List result)

      Sets the object(s) produced as result of an XSL Transformation.

      Note: This method shall be used by the `Transformer` implementations that natively support JDOM to directly set the transformation result rather than considering this object as a `SAXResult`. Applications should not use this method.

      Parameters:
        `result` - the result of a transformation as a `list` of JDOM nodes (Elements, Texts, Comments, PIs...).
      See Also:
        `getResult()`

    - #### getResult

          public java.util.List getResult()

      Returns the result of an XSL Transformation as a list of JDOM nodes.

      If the result of the transformation is a JDOM document, this method converts it into a list of JDOM nodes; any subsequent call to `getDocument()` will return `null`.

      Returns:
        the transformation result as a (possibly empty) list of JDOM nodes (Elements, Texts, Comments, PIs...).

    - #### setDocument

          public void setDocument(Document document)

      Sets the document produced as result of an XSL Transformation.

      Note: This method shall be used by the `Transformer` implementations that natively support JDOM to directly set the transformation result rather than considering this object as a `SAXResult`. Applications should not use this method.

      Parameters:
        `document` - the JDOM document result of a transformation.
      See Also:
        `setResult(java.util.List)`, `getDocument()`

    - #### getDocument

          public Document getDocument()

      Returns the result of an XSL Transformation as a JDOM document.

      If the result of the transformation is a list of nodes, this method attempts to convert it into a JDOM document. If successful, any subsequent call to `getResult()` will return an empty list.

      Warning: The XSLT 1.0 specification states that the output of an XSL transformation is not a well-formed XML document but a list of nodes. Applications should thus use `getResult()` instead of this method or at least expect `null` documents to be returned.

      Returns:
        the transformation result as a JDOM document or `null` if the result of the transformation can not be converted into a well-formed document.
      See Also:
        `getResult()`

    - #### setFactory

          public void setFactory(JDOMFactory factory)

      Sets a custom JDOMFactory to use when building the transformation result. Use a custom factory to build the tree with your own subclasses of the JDOM classes.
      Parameters:
        `factory` - the custom `JDOMFactory` to use or `null` to use the default JDOM classes.
      See Also:
        `getFactory()`

    - #### getFactory

          public JDOMFactory getFactory()

      Returns the custom JDOMFactory used to build the transformation result.
      Returns:
        the custom `JDOMFactory` used to build the transformation result or `null` if the default JDOM classes are being used.
      See Also:
        `setFactory(org.jdom.JDOMFactory)`

    - #### setHandler

          public void setHandler(org.xml.sax.ContentHandler handler)

      Sets the target to be a SAX2 ContentHandler.
      Overrides:
        `setHandler` in class `javax.xml.transform.sax.SAXResult`
      Parameters:
        `handler` - Must be a non-null ContentHandler reference.

    - #### setLexicalHandler

          public void setLexicalHandler(org.xml.sax.ext.LexicalHandler handler)

      Sets the SAX2 LexicalHandler for the output.

      This is needed to handle XML comments and the like. If the lexical handler is not set, an attempt should be made by the transformer to cast the ContentHandler to a LexicalHandler.

      Overrides:
        `setLexicalHandler` in class `javax.xml.transform.sax.SAXResult`
      Parameters:
        `handler` - A non-null LexicalHandler for handling lexical parse events.

Copyright ? 2007 Jason Hunter, Brett McLaughlin. All Rights Reserved.