com.icl.saxon
public class Controller extends Transformer implements NodeOrderComparer
Version: 10 December 1999: methods for building the tree extracted to class Builder,
methods for maintaining rulesets extracted to RuleManager.
The Controller class now incorporates the previous StylesheetInstance class.
A StyleSheetInstance represents a single execution of a prepared stylesheet.
A PreparedStyleSheet can be used any number of times, in series or in parallel,
but each use of it to render a source document requires a separate Controller
object, which is not reusable or shareable.
The Controller is capable of comparing whether nodes are in document order;
therefore it acts as a NodeOrderComparer.
Field Summary | |
---|---|
static int | DO_NOT_RECOVER |
static int | RECOVER_SILENTLY |
static int | RECOVER_WITH_WARNINGS |
Constructor Summary | |
---|---|
Controller()
Default constructor is provided for Java-only programs, i.e. applications
that use the RuleManager to set up Java handlers for nodes, without using
a stylesheet | |
protected | Controller(TransformerFactoryImpl factory)
Create a Controller and initialise variables. |
Method Summary | |
---|---|
void | addTraceListener(TraceListener trace)
Adds the specified trace listener to receive trace events from
this instance.
|
void | applyImports(Context c, Mode mode, int min, int max, ParameterSet params)
Apply a template imported from the stylesheet containing the current template |
void | applyTemplates(Context c, Expression select, Mode mode, ParameterSet parameters)
ApplyTemplates to process selected nodes using the handlers registered for a particular
mode. |
void | changeOutputDestination(Properties props, Result result)
Set a new output destination, supplying the output format details. |
void | changeToTextOutputDestination(StringBuffer buffer)
Set a simple StringBuffer output destination. |
void | clearDocumentPool()
Clear the document pool. |
void | clearParameters()
Reset the parameters to a null list. |
int | compare(NodeInfo n1, NodeInfo n2)
Compare the position of two nodes in document order |
void | disableWhitespaceStripping(boolean disable)
Disable whitespace stripping |
Bindery | getBindery()
Get the current bindery |
DecimalFormatManager | getDecimalFormatManager() |
DocumentPool | getDocumentPool()
Get the document pool. |
ErrorListener | getErrorListener()
Get the error listener |
KeyManager | getKeyManager()
Get the KeyManager |
Emitter | getMessageEmitter()
Get the Emitter used for xsl:message output |
NamePool | getNamePool()
Get the name pool in use |
Properties | getOutputProperties()
Get the output properties for the transformation. |
String | getOutputProperty(String name)
Get the value of an output property |
Outputter | getOutputter()
Get the current outputter |
Object | getParameter(String expandedName)
Get a parameter to the transformation |
int | getRecoveryPolicy()
Get the policy for handling recoverable errors |
RuleManager | getRuleManager() |
URIResolver | getStandardURIResolver()
Get the fallback URI resolver. |
TraceListener | getTraceListener() |
TransformerFactoryImpl | getTransformerFactory() |
int | getTreeModel()
Get the tree model in use |
URIResolver | getURIResolver()
Get the primary URI resolver. |
Object | getUserData(NodeInfo node, String name)
Get the named user data property for the node |
boolean | isLineNumbering()
Determine whether line numbering is enabled |
boolean | isTracing() |
boolean | isWhitespaceStrippingDisabled()
Determine if whitespace stripping is disabled |
Builder | makeBuilder()
Make a builder for the selected tree model |
Context | makeContext(NodeInfo node)
Create a new context with a given node as the current node and the only node in the current
node list. |
Emitter | makeMessageEmitter()
Make an Emitter to be used for xsl:message output |
Stripper | makeStripper(Builder b) |
void | pauseTracing(boolean pause) |
void | removeTraceListener(TraceListener trace)
Removes the specified trace listener so that the next invocation
of the render method will not send trace events to the listener. |
void | reportRecoverableError(String message, SourceLocator location)
Report a recoverable error |
void | reportRecoverableError(TransformerException err)
Report a recoverable error |
void | reset() Reset this
|
void | resetOutputDestination(Outputter outputter)
Close the current outputter, and revert to the previous outputter. |
void | run(NodeInfo node)
Process a Document. This method is intended for use when performing a pure Java transformation, without a stylesheet. |
void | setDecimalFormatManager(DecimalFormatManager manager) |
void | setDiagnosticName(String name)
Set a diagnostic name for this transformation (accessible through toString()) |
void | setErrorListener(ErrorListener listener)
Set the error listener |
void | setLineNumbering(boolean onOrOff)
Set line numbering (of the source document) on or off |
void | setMessageEmitter(Emitter emitter)
Set the Emitter to be used for xsl:message output |
void | setNamePool(NamePool pool)
Set the name pool to be used |
void | setOutputProperties(Properties properties)
Set the output properties for the transformation. |
void | setOutputProperty(String name, String value)
Set an output property for the transformation. |
void | setParameter(String expandedName, Object value)
Set a parameter for the transformation. |
void | setParams(ParameterSet params)
Set parameters supplied externally (typically, on the command line).
(non-TRAX method retained for backwards compatibility) |
void | setPreparedStyleSheet(PreparedStyleSheet sheet)
Associate this Controller with a compiled stylesheet |
void | setRecoveryPolicy(int policy)
Set the policy for handling recoverable errors |
void | setRuleManager(RuleManager r) |
void | setTraceListener(TraceListener trace) |
void | setTreeModel(int model)
Set the tree data model to use |
void | setURIResolver(URIResolver resolver)
Set an object that will be used to resolve URIs used in
document(), etc. |
void | setUserData(NodeInfo node, String name, Object data)
Set a user data property for a node. |
String | toString() |
void | transform(Source source, Result result)
Process the source tree to SAX parse events. |
void | transformDocument(NodeInfo startNode, Result result)
Render a source XML document supplied as a tree. |
protected boolean | usesPreviewMode()
Does this transformation use preview mode? |
Parameters: trace the trace listener.
Parameters: select A node-set expression (or more accurately a node-list) that determines which nodes are selected. Note: if the nodes are to be sorted, the select Expression will take care of this. mode Identifies the processing mode. It should match the mode defined when the element handler was registered using setHandler with a mode parameter. Set this parameter to null to invoke the default mode. parameters A ParameterSet containing the parameters to the handler/template being invoked. Specify null if there are no parameters.
Parameters: props Details of the new output format result Details of the new output destination
Parameters: n1 The first node n2 The second node
Returns: <0 if the first node is first in document order; >0 if the second node comes first in document order; 0 if the two parameters identify the same node
Returns: the the system-defined URIResolver
Returns: the user-supplied URI resolver if there is one, or the system-defined one otherwise (Note, this isn't quite as JAXP specifies it).
Parameters: name the name of the user data property to return
Returns: The value of the named user data property. Returns null if no property of that name has been set using setUserData() for this NodeInfo object.
Parameters: trace the trace listener.
Throws: TransformerException if the error listener decides not to recover from the error
Throws: TransformerException if the error listener decides not to recover from the error
Reset this Transformer
to its original configuration.
Transformer
is reset to the same state as when it was created with
javax.xml.transform.TransformerFactory#newTransformer(),
javax.xml.transform.TransformerFactory#newTransformer(javax.xml.transform.Source source) or
javax.xml.transform.Templates#newTransformer().
reset()
is designed to allow the reuse of existing Transformer
s
thus saving resources associated with the creation of new Transformer
s.
The reset Transformer
is not guaranteed to have the same javax.xml.transform.URIResolver
or javax.xml.transform.ErrorListener Object
s, e.g. Object#equals(Object obj).
It is guaranteed to have a functionally equal URIResolver
and ErrorListener
.
NOTE: the Saxon implementation of this method does not clear the document pool. This is because the reason for resetting an existing Transformer rather than creating a new one is to reuse resources, and the document pool is the most important resource held by the Transformer. If there is a requirement to clear the document pool, then it is possible either (a) to call the clearDocumentPool method, or (b) to create a new Transformer.
Since: 1.5
Parameters: outputter The outputter to revert to
This method is intended for use when performing a pure Java transformation, without a stylesheet. Where there is an XSLT stylesheet, use transformDocument() or transform() instead: those methods set up information from the stylesheet before calling run().
The process starts by calling the registered node handler to process the supplied node. Note that the same document can be processed any number of times, typically with different node handlers for each pass. The NodeInfo will typically be the root of a tree built using com.icl.saxon.om.Builder.
Parameters: expandedName The name of the parameter in {uri}local format value The value object. This can be any valid Java object it follows the same conversion rules as a value returned from a Saxon extension function.
Parameters: params A ParameterSet containing the (name, value) pairs.
Parameters: resolver An object that implements the URIResolver interface, or null.
Parameters: name The name of the user data property to be set. Any existing user data property of the same name will be overwritten. data an object to be saved with this element, which can be retrieved later using getUserData().
Parameters: source The input for the source tree. result The destination for the result tree.
Throws: TransformerException if the transformation fails. As a special case, the method throws a TerminationException (a subclass of TransformerException) if the transformation was terminated using xsl:message terminate="yes".
Parameters: startNode A Node that identifies the source document to be transformed and the node where the transformation should start result The output destination