org.apache.xalan.processor
Class TransformerFactoryImpl

java.lang.Object
  extended by javax.xml.transform.TransformerFactory
      extended by javax.xml.transform.sax.SAXTransformerFactory
          extended by org.apache.xalan.processor.TransformerFactoryImpl

public class TransformerFactoryImpl
extends javax.xml.transform.sax.SAXTransformerFactory

The TransformerFactoryImpl, which implements the TRaX TransformerFactory interface, processes XSLT stylesheets into a Templates object (a StylesheetRoot).


Field Summary
static java.lang.String FEATURE_INCREMENTAL
          Static string to be used for incremental feature
static java.lang.String FEATURE_OPTIMIZE
          Static string to be used for optimize feature
static java.lang.String FEATURE_SOURCE_LOCATION
          Static string to be used for source_location feature
private  java.lang.String m_DOMsystemID
          The systemID that was specified in processFromNode(Node node, String systemID).
private  javax.xml.transform.ErrorListener m_errorListener
          The error listener.
private  boolean m_incremental
          Flag set by FEATURE_INCREMENTAL.
private  boolean m_isSecureProcessing
          State of secure processing feature.
private  boolean m_optimize
          Flag set by FEATURE_OPTIMIZE.
private  boolean m_source_location
          Flag set by FEATURE_SOURCE_LOCATION.
(package private)  javax.xml.transform.URIResolver m_uriResolver
          The object that implements the URIResolver interface, or null.
static java.lang.String XSLT_PROPERTIES
          The path/filename of the property file: XSLTInfo.properties Maintenance note: see also org.apache.xpath.functions.FuncSystemProperty.XSLT_PROPERTIES
 
Fields inherited from class javax.xml.transform.sax.SAXTransformerFactory
FEATURE, FEATURE_XMLFILTER
 
Constructor Summary
TransformerFactoryImpl()
          Constructor TransformerFactoryImpl
 
Method Summary
 javax.xml.transform.Source getAssociatedStylesheet(javax.xml.transform.Source source, java.lang.String media, java.lang.String title, java.lang.String charset)
          Get InputSource specification(s) that are associated with the given document specified in the source param, via the xml-stylesheet processing instruction (see http://www.w3.org/TR/xml-stylesheet/), and that matches the given criteria.
 java.lang.Object getAttribute(java.lang.String name)
          Allows the user to retrieve specific attributes on the underlying implementation.
(package private)  java.lang.String getDOMsystemID()
          The systemID that was specified in processFromNode(Node node, String systemID).
 javax.xml.transform.ErrorListener getErrorListener()
          Get the error listener in effect for the TransformerFactory.
 boolean getFeature(java.lang.String name)
          Look up the value of a feature.
 javax.xml.transform.URIResolver getURIResolver()
          Get the object that will be used to resolve URIs used in xsl:import, etc.
 boolean isSecureProcessing()
          Return the state of the secure processing feature.
 javax.xml.transform.Templates newTemplates(javax.xml.transform.Source source)
          Process the source into a Templates object, which is likely a compiled representation of the source.
 javax.xml.transform.sax.TemplatesHandler newTemplatesHandler()
          Create a new Transformer object that performs a copy of the source to the result.
 javax.xml.transform.Transformer newTransformer()
          Create a new Transformer object that performs a copy of the source to the result.
 javax.xml.transform.Transformer newTransformer(javax.xml.transform.Source source)
          Process the source into a Transformer object.
 javax.xml.transform.sax.TransformerHandler newTransformerHandler()
          Get a TransformerHandler object that can process SAX ContentHandler events into a Result.
 javax.xml.transform.sax.TransformerHandler newTransformerHandler(javax.xml.transform.Source src)
          Get a TransformerHandler object that can process SAX ContentHandler events into a Result, based on the transformation instructions specified by the argument.
 javax.xml.transform.sax.TransformerHandler newTransformerHandler(javax.xml.transform.Templates templates)
          Get a TransformerHandler object that can process SAX ContentHandler events into a Result, based on the Templates argument.
 org.xml.sax.XMLFilter newXMLFilter(javax.xml.transform.Source src)
          Create an XMLFilter that uses the given source as the transformation instructions.
 org.xml.sax.XMLFilter newXMLFilter(javax.xml.transform.Templates templates)
          Create an XMLFilter that uses the given source as the transformation instructions.
 javax.xml.transform.Templates processFromNode(org.w3c.dom.Node node)
           
(package private)  javax.xml.transform.Templates processFromNode(org.w3c.dom.Node node, java.lang.String systemID)
          Process the stylesheet from a DOM tree, if the processor supports the "http://xml.org/trax/features/dom/input" feature.
 void setAttribute(java.lang.String name, java.lang.Object value)
          Allows the user to set specific attributes on the underlying implementation.
 void setErrorListener(javax.xml.transform.ErrorListener listener)
          Set an error listener for the TransformerFactory.
 void setFeature(java.lang.String name, boolean value)
          Set a feature for this TransformerFactory and Transformers or Templates created by this factory.
 void setURIResolver(javax.xml.transform.URIResolver resolver)
          Set an object that will be used to resolve URIs used in xsl:import, etc.
 
Methods inherited from class javax.xml.transform.TransformerFactory
newInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XSLT_PROPERTIES

public static final java.lang.String XSLT_PROPERTIES
The path/filename of the property file: XSLTInfo.properties Maintenance note: see also org.apache.xpath.functions.FuncSystemProperty.XSLT_PROPERTIES

See Also:
Constant Field Values

m_isSecureProcessing

private boolean m_isSecureProcessing

State of secure processing feature.


FEATURE_INCREMENTAL

public static final java.lang.String FEATURE_INCREMENTAL
Static string to be used for incremental feature

See Also:
Constant Field Values

FEATURE_OPTIMIZE

public static final java.lang.String FEATURE_OPTIMIZE
Static string to be used for optimize feature

See Also:
Constant Field Values

FEATURE_SOURCE_LOCATION

public static final java.lang.String FEATURE_SOURCE_LOCATION
Static string to be used for source_location feature

See Also:
Constant Field Values

m_DOMsystemID

private java.lang.String m_DOMsystemID
The systemID that was specified in processFromNode(Node node, String systemID).


m_optimize

private boolean m_optimize
Flag set by FEATURE_OPTIMIZE. This feature specifies whether to Optimize stylesheet processing. By default it is set to true.


m_source_location

private boolean m_source_location
Flag set by FEATURE_SOURCE_LOCATION. This feature specifies whether the transformation phase should keep track of line and column numbers for the input source document. Note that this works only when that information is available from the source -- in other words, if you pass in a DOM, there's little we can do for you. The default is false. Setting it true may significantly increase storage cost per node.


m_incremental

private boolean m_incremental
Flag set by FEATURE_INCREMENTAL. This feature specifies whether to produce output incrementally, rather than waiting to finish parsing the input before generating any output. By default this attribute is set to false.


m_uriResolver

javax.xml.transform.URIResolver m_uriResolver
The object that implements the URIResolver interface, or null.


m_errorListener

private javax.xml.transform.ErrorListener m_errorListener
The error listener.

Constructor Detail

TransformerFactoryImpl

public TransformerFactoryImpl()
Constructor TransformerFactoryImpl

Method Detail

processFromNode

public javax.xml.transform.Templates processFromNode(org.w3c.dom.Node node)
                                              throws javax.xml.transform.TransformerConfigurationException
Throws:
javax.xml.transform.TransformerConfigurationException

getDOMsystemID

java.lang.String getDOMsystemID()
The systemID that was specified in processFromNode(Node node, String systemID).

Returns:
The systemID, or null.

processFromNode

javax.xml.transform.Templates processFromNode(org.w3c.dom.Node node,
                                              java.lang.String systemID)
                                        throws javax.xml.transform.TransformerConfigurationException
Process the stylesheet from a DOM tree, if the processor supports the "http://xml.org/trax/features/dom/input" feature.

Parameters:
node - A DOM tree which must contain valid transform instructions that this processor understands.
systemID - The systemID from where xsl:includes and xsl:imports should be resolved from.
Returns:
A Templates object capable of being used for transformation purposes.
Throws:
javax.xml.transform.TransformerConfigurationException

getAssociatedStylesheet

public javax.xml.transform.Source getAssociatedStylesheet(javax.xml.transform.Source source,
                                                          java.lang.String media,
                                                          java.lang.String title,
                                                          java.lang.String charset)
                                                   throws javax.xml.transform.TransformerConfigurationException
Get InputSource specification(s) that are associated with the given document specified in the source param, via the xml-stylesheet processing instruction (see http://www.w3.org/TR/xml-stylesheet/), and that matches the given criteria. Note that it is possible to return several stylesheets that match the criteria, in which case they are applied as if they were a list of imports or cascades.

Note that DOM2 has it's own mechanism for discovering stylesheets. Therefore, there isn't a DOM version of this method.

Specified by:
getAssociatedStylesheet in class javax.xml.transform.TransformerFactory
Parameters:
source - The XML source that is to be searched.
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 capable of being used to create a Templates object.
Throws:
javax.xml.transform.TransformerConfigurationException

newTemplatesHandler

public javax.xml.transform.sax.TemplatesHandler newTemplatesHandler()
                                                             throws javax.xml.transform.TransformerConfigurationException
Create a new Transformer object that performs a copy of the source to the result.

Specified by:
newTemplatesHandler in class javax.xml.transform.sax.SAXTransformerFactory
Returns:
A Transformer object that may be used to perform a transformation in a single thread, never null.
Throws:
javax.xml.transform.TransformerConfigurationException - May throw this during the parse when it is constructing the Templates object and fails.

setFeature

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

Set a feature for this TransformerFactory and Transformers or Templates created by this factory.

Feature names are fully qualified URIs. Implementations may define their own features. An TransformerConfigurationException is thrown if this TransformerFactory or the Transformers or Templates 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 javax.xml.transform.TransformerFactory
Parameters:
name - Feature name.
value - Is feature state true or false.
Throws:
javax.xml.transform.TransformerConfigurationException - if this TransformerFactory or the Transformers or Templates it creates cannot support this feature.
java.lang.NullPointerException - If the name parameter is null.

getFeature

public boolean getFeature(java.lang.String name)
Look up the value of a feature.

The feature name is any fully-qualified URI. It is possible for an TransformerFactory to recognize a feature name but to be unable to return its value; this is especially true in the case of an adapter for a SAX1 Parser, which has no way of knowing whether the underlying parser is validating, for example.

Specified by:
getFeature in class javax.xml.transform.TransformerFactory
Parameters:
name - The feature name, which is a fully-qualified URI.
Returns:
The current state of the feature (true or false).

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object value)
                  throws java.lang.IllegalArgumentException
Allows the user to set specific attributes on the underlying implementation.

Specified by:
setAttribute in class javax.xml.transform.TransformerFactory
Parameters:
name - The name of the attribute.
value - The value of the attribute; Boolean or String="true"|"false"
Throws:
java.lang.IllegalArgumentException - thrown if the underlying implementation doesn't recognize the attribute.

getAttribute

public java.lang.Object getAttribute(java.lang.String name)
                              throws java.lang.IllegalArgumentException
Allows the user to retrieve specific attributes on the underlying implementation.

Specified by:
getAttribute in class javax.xml.transform.TransformerFactory
Parameters:
name - The name of the attribute.
Returns:
value The value of the attribute.
Throws:
java.lang.IllegalArgumentException - thrown if the underlying implementation doesn't recognize the attribute.

newXMLFilter

public org.xml.sax.XMLFilter newXMLFilter(javax.xml.transform.Source src)
                                   throws javax.xml.transform.TransformerConfigurationException
Create an XMLFilter that uses the given source as the transformation instructions.

Specified by:
newXMLFilter in class javax.xml.transform.sax.SAXTransformerFactory
Parameters:
src - The source of the transformation instructions.
Returns:
An XMLFilter object, or null if this feature is not supported.
Throws:
javax.xml.transform.TransformerConfigurationException

newXMLFilter

public org.xml.sax.XMLFilter newXMLFilter(javax.xml.transform.Templates templates)
                                   throws javax.xml.transform.TransformerConfigurationException
Create an XMLFilter that uses the given source as the transformation instructions.

Specified by:
newXMLFilter in class javax.xml.transform.sax.SAXTransformerFactory
Parameters:
templates - non-null reference to Templates object.
Returns:
An XMLFilter object, or null if this feature is not supported.
Throws:
javax.xml.transform.TransformerConfigurationException

newTransformerHandler

public javax.xml.transform.sax.TransformerHandler newTransformerHandler(javax.xml.transform.Source src)
                                                                 throws javax.xml.transform.TransformerConfigurationException
Get a TransformerHandler object that can process SAX ContentHandler events into a Result, based on the transformation instructions specified by the argument.

Specified by:
newTransformerHandler in class javax.xml.transform.sax.SAXTransformerFactory
Parameters:
src - The source of the transformation instructions.
Returns:
TransformerHandler ready to transform SAX events.
Throws:
javax.xml.transform.TransformerConfigurationException

newTransformerHandler

public javax.xml.transform.sax.TransformerHandler newTransformerHandler(javax.xml.transform.Templates templates)
                                                                 throws javax.xml.transform.TransformerConfigurationException
Get a TransformerHandler object that can process SAX ContentHandler events into a Result, based on the Templates argument.

Specified by:
newTransformerHandler in class javax.xml.transform.sax.SAXTransformerFactory
Parameters:
templates - The source of the transformation instructions.
Returns:
TransformerHandler ready to transform SAX events.
Throws:
javax.xml.transform.TransformerConfigurationException

newTransformerHandler

public javax.xml.transform.sax.TransformerHandler newTransformerHandler()
                                                                 throws javax.xml.transform.TransformerConfigurationException
Get a TransformerHandler object that can process SAX ContentHandler events into a Result.

Specified by:
newTransformerHandler in class javax.xml.transform.sax.SAXTransformerFactory
Returns:
TransformerHandler ready to transform SAX events.
Throws:
javax.xml.transform.TransformerConfigurationException

newTransformer

public javax.xml.transform.Transformer newTransformer(javax.xml.transform.Source source)
                                               throws javax.xml.transform.TransformerConfigurationException
Process the source into a Transformer object. Care must be given to know that this object can not be used concurrently in multiple threads.

Specified by:
newTransformer in class javax.xml.transform.TransformerFactory
Parameters:
source - An object that holds a URL, input stream, etc.
Returns:
A Transformer object capable of being used for transformation purposes in a single thread.
Throws:
javax.xml.transform.TransformerConfigurationException - May throw this during the parse when it is constructing the Templates object and fails.

newTransformer

public javax.xml.transform.Transformer newTransformer()
                                               throws javax.xml.transform.TransformerConfigurationException
Create a new Transformer object that performs a copy of the source to the result.

Specified by:
newTransformer in class javax.xml.transform.TransformerFactory
Returns:
A Transformer object capable of being used for transformation purposes in a single thread.
Throws:
javax.xml.transform.TransformerConfigurationException - May throw this during the parse when it is constructing the Templates object and it fails.

newTemplates

public javax.xml.transform.Templates newTemplates(javax.xml.transform.Source source)
                                           throws javax.xml.transform.TransformerConfigurationException
Process the source into a Templates object, which is likely a compiled representation of the source. This Templates object may then be used concurrently across multiple threads. Creating a Templates object allows the TransformerFactory to do detailed performance optimization of transformation instructions, without penalizing runtime transformation.

Specified by:
newTemplates in class javax.xml.transform.TransformerFactory
Parameters:
source - An object that holds a URL, input stream, etc.
Returns:
A Templates object capable of being used for transformation purposes.
Throws:
javax.xml.transform.TransformerConfigurationException - May throw this during the parse when it is constructing the Templates object and fails.

setURIResolver

public void setURIResolver(javax.xml.transform.URIResolver resolver)
Set an object that will be used to resolve URIs used in xsl:import, etc. This will be used as the default for the transformation.

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

getURIResolver

public javax.xml.transform.URIResolver getURIResolver()
Get the object that will be used to resolve URIs used in xsl:import, etc. This will be used as the default for the transformation.

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

getErrorListener

public javax.xml.transform.ErrorListener getErrorListener()
Get the error listener in effect for the TransformerFactory.

Specified by:
getErrorListener in class javax.xml.transform.TransformerFactory
Returns:
A non-null reference to an error listener.

setErrorListener

public void setErrorListener(javax.xml.transform.ErrorListener listener)
                      throws java.lang.IllegalArgumentException
Set an error listener for the TransformerFactory.

Specified by:
setErrorListener in class javax.xml.transform.TransformerFactory
Parameters:
listener - Must be a non-null reference to an ErrorListener.
Throws:
java.lang.IllegalArgumentException - if the listener argument is null.

isSecureProcessing

public boolean isSecureProcessing()
Return the state of the secure processing feature.

Returns:
state of the secure processing feature.