org.apache.xalan.xsltc.trax

## Class SmartTransformerFactoryImpl

- java.lang.Object
- - javax.xml.transform.TransformerFactory
  - - javax.xml.transform.sax.SAXTransformerFactory
    - - org.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl

    public class SmartTransformerFactoryImpl
    extends SAXTransformerFactory

Implementation of a transformer factory that uses an XSLTC transformer factory for the creation of Templates objects and uses the Xalan processor transformer factory for the creation of Transformer objects.

Author:
  G. Todd Miller

### Field Summary

### Fields inherited from class javax.xml.transform.sax.SAXTransformerFactory

`FEATURE, FEATURE_XMLFILTER`

### Constructor Summary

Constructors
Constructor and Description
`SmartTransformerFactoryImpl()` implementation of the SmartTransformerFactory.

### Method Summary

Methods
`Source` `getAssociatedStylesheet(Source source, java.lang.String media, java.lang.String title, java.lang.String charset)` Get the stylesheet specification(s) associated with the XML `Source` document via the xml-stylesheet processing instruction that match the given criteria.
`java.lang.Object` `getAttribute(java.lang.String name)` Allows the user to retrieve specific attributes on the underlying implementation.
`ErrorListener` `getErrorListener()` Get the error event handler for the TransformerFactory.
`boolean` `getFeature(java.lang.String name)` javax.xml.transform.sax.TransformerFactory implementation.
`URIResolver` `getURIResolver()` Get the object that is used by default during the transformation to resolve URIs used in document(), xsl:import, or xsl:include.
`Templates` `newTemplates(Source source)` Create a Templates object that from the input stylesheet Uses the org.apache.xalan.xsltc.trax.TransformerFactory.
`TemplatesHandler` `newTemplatesHandler()` Get a TemplatesHandler object that can process SAX ContentHandler events into a Templates object.
`Transformer` `newTransformer()` Create a Transformer object that copies the input document to the result.
`Transformer` `newTransformer(Source source)` Create a Transformer object that from the input stylesheet Uses the org.apache.xalan.processor.TransformerFactory.
`TransformerHandler` `newTransformerHandler()` Get a TransformerHandler object that can process SAX ContentHandler events based on a copy transformer.
`TransformerHandler` `newTransformerHandler(Source src)` Get a TransformerHandler object that can process SAX ContentHandler events based on a transformer specified by the stylesheet Source.
`TransformerHandler` `newTransformerHandler(Templates templates)` Get a TransformerHandler object that can process SAX ContentHandler events based on a transformer specified by the stylesheet Source.
`XMLFilter` `newXMLFilter(Source src)` Create an XMLFilter that uses the given source as the transformation instructions.
`XMLFilter` `newXMLFilter(Templates templates)` Create an XMLFilter, based on the Templates argument..
`void` `setAttribute(java.lang.String name, java.lang.Object value)` Allows the user to set specific attributes on the underlying implementation.
`void` `setErrorListener(ErrorListener listener)` Set the error event listener for the TransformerFactory, which is used for the processing of transformation instructions, and not for the transformation itself.
`void` `setFeature(java.lang.String name, boolean value)` Set a feature for this `SmartTransformerFactory` and `Transformer`s or `Template`s created by this factory.
`void` `setURIResolver(URIResolver resolver)` Set an object that is used by default during the transformation to resolve URIs used in document(), xsl:import, or xsl:include.

### Methods inherited from class javax.xml.transform.TransformerFactory

`newInstance`

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

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

### Constructor Detail

#### SmartTransformerFactoryImpl

    public SmartTransformerFactoryImpl()

implementation of the SmartTransformerFactory. This factory uses org.apache.xalan.xsltc.trax.TransformerFactory to return Templates objects; and uses org.apache.xalan.processor.TransformerFactory to return Transformer objects.

### Method Detail

#### setErrorListener

    public void setErrorListener(ErrorListener listener)
                          throws java.lang.IllegalArgumentException

Description copied from class: `TransformerFactory`
Set the error event listener for the TransformerFactory, which is used for the processing of transformation instructions, and not for the transformation itself. An `IllegalArgumentException` is thrown if the `ErrorListener` listener is `null`.

Specified by:
  `setErrorListener` in class `TransformerFactory`
Parameters:
  `listener` - The new error listener.
Throws:
  `java.lang.IllegalArgumentException`

#### getErrorListener

    public ErrorListener getErrorListener()

Description copied from class: `TransformerFactory`
Get the error event handler for the TransformerFactory.

Specified by:
  `getErrorListener` in class `TransformerFactory`
Returns:
  The current error handler, which should never be null.

#### getAttribute

    public java.lang.Object getAttribute(java.lang.String name)
                                  throws java.lang.IllegalArgumentException

Description copied from class: `TransformerFactory`
Allows the user to retrieve specific attributes on the underlying implementation. An `IllegalArgumentException` is thrown if the underlying implementation doesn't recognize the attribute.

Specified by:
  `getAttribute` in class `TransformerFactory`
Parameters:
  `name` - The name of the attribute.
Returns:
  value The value of the attribute.
Throws:
  `java.lang.IllegalArgumentException`

#### setAttribute

    public void setAttribute(java.lang.String name,
                    java.lang.Object value)
                      throws java.lang.IllegalArgumentException

Description copied from class: `TransformerFactory`
Allows the user to set specific attributes on the underlying implementation. An attribute in this context is defined to be an option that the implementation provides. An `IllegalArgumentException` is thrown if the underlying implementation doesn't recognize the attribute.

Specified by:
  `setAttribute` in class `TransformerFactory`
Parameters:
  `name` - The name of the attribute.
  `value` - The value of the attribute.
Throws:
  `java.lang.IllegalArgumentException`

#### setFeature

    public void setFeature(java.lang.String name,
                  boolean value)
                    throws TransformerConfigurationException

Set a feature for this `SmartTransformerFactory` and `Transformer`s or `Template`s created by this factory.

Feature names are fully qualified `URI`s. Implementations may define their own features. An `TransformerConfigurationException` is thrown if this `TransformerFactory` or the `Transformer`s or `Template`s it creates cannot support the feature. It is possible for an `TransformerFactory` to expose a feature value but be unable to change its state.

See `TransformerFactory` for full documentation of specific features.

Specified by:
  `setFeature` in class `TransformerFactory`
Parameters:
  `name` - Feature name.
  `value` - Is feature state `true` or `false`.
Throws:
  `TransformerConfigurationException` - if this `TransformerFactory` or the `Transformer`s or `Template`s it creates cannot support this feature.
  `java.lang.NullPointerException` - If the `name` parameter is null.

#### getFeature

    public boolean getFeature(java.lang.String name)

javax.xml.transform.sax.TransformerFactory implementation. Look up the value of a feature (to see if it is supported). This method must be updated as the various methods and features of this class are implemented.

Specified by:
  `getFeature` in class `TransformerFactory`
Parameters:
  `name` - The feature name
Returns:
  'true' if feature is supported, 'false' if not

#### getURIResolver

    public URIResolver getURIResolver()

Description copied from class: `TransformerFactory`
Get the object that is used by default during the transformation to resolve URIs used in document(), xsl:import, or xsl:include.

Specified by:
  `getURIResolver` in class `TransformerFactory`
Returns:
  The URIResolver that was set with setURIResolver.

#### setURIResolver

    public void setURIResolver(URIResolver resolver)

Description copied from class: `TransformerFactory`
Set an object that is used by default during the transformation to resolve URIs used in document(), xsl:import, or xsl:include.

Specified by:
  `setURIResolver` in class `TransformerFactory`
Parameters:
  `resolver` - An object that implements the URIResolver interface, or null.

#### getAssociatedStylesheet

    public Source getAssociatedStylesheet(Source source,
                                 java.lang.String media,
                                 java.lang.String title,
                                 java.lang.String charset)
                                   throws TransformerConfigurationException

Description copied from class: `TransformerFactory`

Get the stylesheet specification(s) associated with the XML `Source` document via the xml-stylesheet processing instruction that match the given criteria. Note that it is possible to return several stylesheets, in which case they are applied as if they were a list of imports or cascades in a single stylesheet.

Specified by:
  `getAssociatedStylesheet` in class `TransformerFactory`
Parameters:
  `source` - The XML source document.
  `media` - The media attribute to be matched. May be null, in which case the prefered templates will be used (i.e. alternate = no).
  `title` - The value of the title attribute to match. May be null.
  `charset` - The value of the charset attribute to match. May be null.
Returns:
  A `Source` `Object` suitable for passing to the `TransformerFactory`.
Throws:
  `TransformerConfigurationException` - An `Exception` is thrown if an error occurings during parsing of the `source`.
See Also:
  Associating Style Sheets with XML documents Version 1.0

#### newTransformer

    public Transformer newTransformer()
                               throws TransformerConfigurationException

Create a Transformer object that copies the input document to the result. Uses the org.apache.xalan.processor.TransformerFactory.

Specified by:
  `newTransformer` in class `TransformerFactory`
Returns:
  A Transformer object.
Throws:
  `TransformerConfigurationException` - Thrown if it is not possible to create a `Transformer` instance.

#### newTransformer

    public Transformer newTransformer(Source source)
                               throws TransformerConfigurationException

Create a Transformer object that from the input stylesheet Uses the org.apache.xalan.processor.TransformerFactory.

Specified by:
  `newTransformer` in class `TransformerFactory`
Parameters:
  `source` - the stylesheet.
Returns:
  A Transformer object.
Throws:
  `TransformerConfigurationException` - Thrown if there are errors when parsing the `Source` or it is not possible to create a `Transformer` instance.
See Also:
  XSL Transformations (XSLT) Version 1.0

#### newTemplates

    public Templates newTemplates(Source source)
                           throws TransformerConfigurationException

Create a Templates object that from the input stylesheet Uses the org.apache.xalan.xsltc.trax.TransformerFactory.

Specified by:
  `newTemplates` in class `TransformerFactory`
Parameters:
  `source` - the stylesheet.
Returns:
  A Templates object.
Throws:
  `TransformerConfigurationException` - May throw this during the parse when it is constructing the Templates object and fails.

#### newTemplatesHandler

    public TemplatesHandler newTemplatesHandler()
                                         throws TransformerConfigurationException

Get a TemplatesHandler object that can process SAX ContentHandler events into a Templates object. Uses the org.apache.xalan.xsltc.trax.TransformerFactory.

Specified by:
  `newTemplatesHandler` in class `SAXTransformerFactory`
Returns:
  A non-null reference to a TransformerHandler, that may be used as a ContentHandler for SAX parse events.
Throws:
  `TransformerConfigurationException` - If for some reason the TemplatesHandler cannot be created.

#### newTransformerHandler

    public TransformerHandler newTransformerHandler()
                                             throws TransformerConfigurationException

Get a TransformerHandler object that can process SAX ContentHandler events based on a copy transformer. Uses org.apache.xalan.processor.TransformerFactory.

Specified by:
  `newTransformerHandler` in class `SAXTransformerFactory`
Returns:
  A non-null reference to a TransformerHandler, that may be used as a ContentHandler for SAX parse events.
Throws:
  `TransformerConfigurationException` - If for some reason the TransformerHandler cannot be created.

#### newTransformerHandler

    public TransformerHandler newTransformerHandler(Source src)
                                             throws TransformerConfigurationException

Get a TransformerHandler object that can process SAX ContentHandler events based on a transformer specified by the stylesheet Source. Uses org.apache.xalan.processor.TransformerFactory.

Specified by:
  `newTransformerHandler` in class `SAXTransformerFactory`
Parameters:
  `src` - The Source of the transformation instructions.
Returns:
  TransformerHandler ready to transform SAX events.
Throws:
  `TransformerConfigurationException` - If for some reason the TransformerHandler can not be created.

#### newTransformerHandler

    public TransformerHandler newTransformerHandler(Templates templates)
                                             throws TransformerConfigurationException

Get a TransformerHandler object that can process SAX ContentHandler events based on a transformer specified by the stylesheet Source. Uses org.apache.xalan.xsltc.trax.TransformerFactory.

Specified by:
  `newTransformerHandler` in class `SAXTransformerFactory`
Parameters:
  `templates` - The compiled transformation instructions.
Returns:
  TransformerHandler ready to transform SAX events.
Throws:
  `TransformerConfigurationException` - If for some reason the TransformerHandler can not be created.

#### newXMLFilter

    public XMLFilter newXMLFilter(Source src)
                           throws TransformerConfigurationException

Create an XMLFilter that uses the given source as the transformation instructions. Uses org.apache.xalan.xsltc.trax.TransformerFactory.

Specified by:
  `newXMLFilter` in class `SAXTransformerFactory`
Parameters:
  `src` - The Source of the transformation instructions.
Returns:
  An XMLFilter object, or null if this feature is not supported.
Throws:
  `TransformerConfigurationException` - If for some reason the TemplatesHandler cannot be created.

#### newXMLFilter

    public XMLFilter newXMLFilter(Templates templates)
                           throws TransformerConfigurationException

Description copied from class: `SAXTransformerFactory`
Create an XMLFilter, based on the Templates argument..

Specified by:
  `newXMLFilter` in class `SAXTransformerFactory`
Parameters:
  `templates` - The compiled transformation instructions.
Returns:
  An XMLFilter object, or null if this feature is not supported.
Throws:
  `TransformerConfigurationException` - If for some reason the TemplatesHandler cannot be created.