net.sf.saxon.dom
Class DOMSender

java.lang.Object
  extended by net.sf.saxon.dom.DOMSender
All Implemented Interfaces:
SourceLocator, LocationProvider, SaxonLocator, SourceLocationProvider, Locator

public class DOMSender
extends Object
implements SaxonLocator, SourceLocationProvider

DOMSender.java: pseudo-SAX driver for a DOM source document. This class takes an existing DOM Document and walks around it in a depth-first traversal, calling a Receiver to process the nodes as it does so


Field Summary
protected  Node root
           
protected  String systemId
           
 
Constructor Summary
DOMSender(Node startNode, Receiver receiver)
          Create a DOMSender that will send events representing the nodes in a tree to a nominated receiver
 
Method Summary
 int getColumnNumber()
           
 int getColumnNumber(long locationId)
          Get the column number within the document, entity, or module containing a particular location
 int getLineNumber()
           
 int getLineNumber(long locationId)
          Get the line number within the document, entity or module containing a particular location
 String getPublicId()
           
 String getSystemId()
           
 String getSystemId(long locationId)
          Get the URI of the document, entity, or module containing a particular location
 void send()
          Walk a tree (traversing the nodes depth first).
 void setSystemId(String systemId)
          Set the systemId of the source document (which will also be used for the destination)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

root

protected Node root

systemId

protected String systemId
Constructor Detail

DOMSender

public DOMSender(Node startNode,
                 Receiver receiver)
Create a DOMSender that will send events representing the nodes in a tree to a nominated receiver

Parameters:
startNode - the root node of the tree to be send. Usually a document or element node.
receiver - the object to be notified of the resulting events. The supplied Receiver must be initialized with a PipelineConfiguration.The PipelineConfiguration of the Receiver will be modified to set this DOMSender as its LocationProvider.
Method Detail

setSystemId

public void setSystemId(String systemId)
Set the systemId of the source document (which will also be used for the destination)

Parameters:
systemId - the systemId of the source document

send

public void send()
          throws XPathException
Walk a tree (traversing the nodes depth first).

Throws:
IllegalStateException - if the start node is of a node kind other than document, document fragment, element, text, comment, or processing instruction (for example, if it is an attribute node).
XPathException - On any error in the document

getColumnNumber

public int getColumnNumber()
Specified by:
getColumnNumber in interface SourceLocator
Specified by:
getColumnNumber in interface Locator

getLineNumber

public int getLineNumber()
Specified by:
getLineNumber in interface SourceLocator
Specified by:
getLineNumber in interface Locator

getPublicId

public String getPublicId()
Specified by:
getPublicId in interface SourceLocator
Specified by:
getPublicId in interface Locator

getSystemId

public String getSystemId()
Specified by:
getSystemId in interface SourceLocator
Specified by:
getSystemId in interface Locator

getSystemId

public String getSystemId(long locationId)
Description copied from interface: LocationProvider
Get the URI of the document, entity, or module containing a particular location

Specified by:
getSystemId in interface LocationProvider
Parameters:
locationId - identifier of the location in question (as passed down the Receiver pipeline)
Returns:
the URI of the document, XML entity or module. For a SourceLocationProvider this will be the URI of the document or entity (the URI that would be the base URI if there were no xml:base attributes). In other cases it may identify the query or stylesheet module currently being executed.

getLineNumber

public int getLineNumber(long locationId)
Description copied from interface: LocationProvider
Get the line number within the document, entity or module containing a particular location

Specified by:
getLineNumber in interface LocationProvider
Parameters:
locationId - identifier of the location in question (as passed down the Receiver pipeline)
Returns:
the line number within the document, entity or module, or -1 if no information is available.

getColumnNumber

public int getColumnNumber(long locationId)
Description copied from interface: LocationProvider
Get the column number within the document, entity, or module containing a particular location

Specified by:
getColumnNumber in interface LocationProvider
Parameters:
locationId - identifier of the location in question (as passed down the Receiver pipeline)
Returns:
the column number within the document, entity, or module, or -1 if this is not available


Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.