org.apache.xalan.xsltc.trax

## Class TemplatesHandlerImpl

- java.lang.Object
- - org.apache.xalan.xsltc.trax.TemplatesHandlerImpl

All Implemented Interfaces:
  TemplatesHandler, SourceLoader, ContentHandler

    public class TemplatesHandlerImpl
    extends java.lang.Object
    implements ContentHandler, TemplatesHandler, SourceLoader

Implementation of a JAXP1.1 TemplatesHandler

Author:
  Morten Jorgensen, Santiago Pericas-Geertsen

### Method Summary

Methods
`void` `characters(char[] ch, int start, int length)` Just forward SAX2 event to parser object.
`void` `endDocument()` Just forward SAX2 event to parser object.
`void` `endElement(java.lang.String uri, java.lang.String localname, java.lang.String qname)` Just forward SAX2 event to parser object.
`void` `endPrefixMapping(java.lang.String prefix)` Just forward SAX2 event to parser object.
`java.lang.String` `getSystemId()` Implements javax.xml.transform.sax.TemplatesHandler.getSystemId() Get the base ID (URI or system ID) from where relative URLs will be resolved.
`Templates` `getTemplates()` Implements javax.xml.transform.sax.TemplatesHandler.getTemplates() When a TemplatesHandler object is used as a ContentHandler or DocumentHandler for the parsing of transformation instructions, it creates a Templates object, which the caller can get once the SAX events have been completed.
`void` `ignorableWhitespace(char[] ch, int start, int length)` Just forward SAX2 event to parser object.
`InputSource` `loadSource(java.lang.String href, java.lang.String context, XSLTC xsltc)` This method implements XSLTC's SourceLoader interface.
`void` `processingInstruction(java.lang.String name, java.lang.String value)` Just forward SAX2 event to parser object.
`void` `setDocumentLocator(Locator locator)` Set internal system Id and forward SAX2 event to parser object.
`void` `setSystemId(java.lang.String id)` Implements javax.xml.transform.sax.TemplatesHandler.setSystemId() Get the base ID (URI or system ID) from where relative URLs will be resolved.
`void` `setURIResolver(URIResolver resolver)` Store URIResolver needed for Transformers.
`void` `skippedEntity(java.lang.String name)` Just forward SAX2 event to parser object.
`void` `startDocument()` Re-initialize parser and forward SAX2 event.
`void` `startElement(java.lang.String uri, java.lang.String localname, java.lang.String qname, Attributes attributes)` Just forward SAX2 event to parser object.
`void` `startPrefixMapping(java.lang.String prefix, java.lang.String uri)` Just forward SAX2 event to parser object.

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

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

### Method Detail

#### getSystemId

    public java.lang.String getSystemId()

Implements javax.xml.transform.sax.TemplatesHandler.getSystemId() Get the base ID (URI or system ID) from where relative URLs will be resolved.

Specified by:
  `getSystemId` in interface `TemplatesHandler`
Returns:
  The systemID that was set with setSystemId(String id)

#### setSystemId

    public void setSystemId(java.lang.String id)

Implements javax.xml.transform.sax.TemplatesHandler.setSystemId() Get the base ID (URI or system ID) from where relative URLs will be resolved.

Specified by:
  `setSystemId` in interface `TemplatesHandler`
Parameters:
  `id` - Base URI for this stylesheet

#### setURIResolver

    public void setURIResolver(URIResolver resolver)

Store URIResolver needed for Transformers.

#### getTemplates

    public Templates getTemplates()

Implements javax.xml.transform.sax.TemplatesHandler.getTemplates() When a TemplatesHandler object is used as a ContentHandler or DocumentHandler for the parsing of transformation instructions, it creates a Templates object, which the caller can get once the SAX events have been completed.

Specified by:
  `getTemplates` in interface `TemplatesHandler`
Returns:
  The Templates object that was created during the SAX event process, or null if no Templates object has been created.

#### loadSource

    public InputSource loadSource(java.lang.String href,
                         java.lang.String context,
                         XSLTC xsltc)

This method implements XSLTC's SourceLoader interface. It is used to glue a TrAX URIResolver to the XSLTC compiler's Input and Import classes.

Specified by:
  `loadSource` in interface `SourceLoader`
Parameters:
  `href` - The URI of the document to load
  `context` - The URI of the currently loaded document
  `xsltc` - The compiler that resuests the document
Returns:
  An InputSource with the loaded document

#### startDocument

    public void startDocument()

Re-initialize parser and forward SAX2 event.

Specified by:
  `startDocument` in interface `ContentHandler`
See Also:
  `ContentHandler.endDocument()`

#### endDocument

    public void endDocument()
                     throws SAXException

Just forward SAX2 event to parser object.

Specified by:
  `endDocument` in interface `ContentHandler`
Throws:
  `SAXException` - any SAX exception, possibly wrapping another exception
See Also:
  `ContentHandler.startDocument()`

#### startPrefixMapping

    public void startPrefixMapping(java.lang.String prefix,
                          java.lang.String uri)

Just forward SAX2 event to parser object.

Specified by:
  `startPrefixMapping` in interface `ContentHandler`
Parameters:
  `prefix` - the Namespace prefix being declared. An empty string is used for the default element namespace, which has no prefix.
  `uri` - the Namespace URI the prefix is mapped to
See Also:
  `ContentHandler.endPrefixMapping(java.lang.String)`, `ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)`

#### endPrefixMapping

    public void endPrefixMapping(java.lang.String prefix)

Just forward SAX2 event to parser object.

Specified by:
  `endPrefixMapping` in interface `ContentHandler`
Parameters:
  `prefix` - the prefix that was being mapped. This is the empty string when a default mapping scope ends.
See Also:
  `ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)`, `ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)`

#### startElement

    public void startElement(java.lang.String uri,
                    java.lang.String localname,
                    java.lang.String qname,
                    Attributes attributes)
                      throws SAXException

Just forward SAX2 event to parser object.

Specified by:
  `startElement` in interface `ContentHandler`
Parameters:
  `uri` - the Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed
  `localname` - the local name (without prefix), or the empty string if Namespace processing is not being performed
  `qname` - the qualified name (with prefix), or the empty string if qualified names are not available
  `attributes` - the attributes attached to the element. If there are no attributes, it shall be an empty Attributes object. The value of this object after startElement returns is undefined
Throws:
  `SAXException` - any SAX exception, possibly wrapping another exception
See Also:
  `ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)`, `Attributes`, `AttributesImpl`

#### endElement

    public void endElement(java.lang.String uri,
                  java.lang.String localname,
                  java.lang.String qname)

Just forward SAX2 event to parser object.

Specified by:
  `endElement` in interface `ContentHandler`
Parameters:
  `uri` - the Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed
  `localname` - the local name (without prefix), or the empty string if Namespace processing is not being performed
  `qname` - the qualified XML name (with prefix), or the empty string if qualified names are not available

#### characters

    public void characters(char[] ch,
                  int start,
                  int length)

Just forward SAX2 event to parser object.

Specified by:
  `characters` in interface `ContentHandler`
Parameters:
  `ch` - the characters from the XML document
  `start` - the start position in the array
  `length` - the number of characters to read from the array
See Also:
  `ContentHandler.ignorableWhitespace(char[], int, int)`, `Locator`

#### processingInstruction

    public void processingInstruction(java.lang.String name,
                             java.lang.String value)

Just forward SAX2 event to parser object.

Specified by:
  `processingInstruction` in interface `ContentHandler`
Parameters:
  `name` - the processing instruction target
  `value` - the processing instruction data, or null if none was supplied. The data does not include any whitespace separating it from the target

#### ignorableWhitespace

    public void ignorableWhitespace(char[] ch,
                           int start,
                           int length)

Just forward SAX2 event to parser object.

Specified by:
  `ignorableWhitespace` in interface `ContentHandler`
Parameters:
  `ch` - the characters from the XML document
  `start` - the start position in the array
  `length` - the number of characters to read from the array
See Also:
  `ContentHandler.characters(char[], int, int)`

#### skippedEntity

    public void skippedEntity(java.lang.String name)

Just forward SAX2 event to parser object.

Specified by:
  `skippedEntity` in interface `ContentHandler`
Parameters:
  `name` - the name of the skipped entity. If it is a parameter entity, the name will begin with '%', and if it is the external DTD subset, it will be the string "[dtd]"

#### setDocumentLocator

    public void setDocumentLocator(Locator locator)

Set internal system Id and forward SAX2 event to parser object.

Specified by:
  `setDocumentLocator` in interface `ContentHandler`
Parameters:
  `locator` - an object that can return the location of any SAX document event
See Also:
  `Locator`