Top Description Inners Fields Constructors Methods
com.sun.tools.xjc.reader.internalizer

public Class DOMForestScanner

extends Object
Class Inheritance
Imports
org.glassfish.jaxb.core.unmarshaller.DOMScanner, org.w3c.dom.Document, .Element, .Node, org.xml.sax.Attributes, .ContentHandler, .Locator, .SAXException, org.xml.sax.helpers.XMLFilterImpl

Produces a complete series of SAX events from any DOM node in the DOMForest.

This class hides a logic of re-associating Locator to the generated SAX event stream.

Author
Kohsuke Kawaguchi ([email protected])

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class
DOMForestScanner.LocationResolver

Intercepts the invocation of the setDocumentLocator method and passes itself as the locator.

Field Summary

Modifier and TypeField and Description
private final DOMForest

Constructor Summary

AccessConstructor and Description
public
DOMForestScanner(DOMForest _forest)

Scans DOM nodes of the given forest.

Method Summary

Modifier and TypeMethod and Description
public void
scan(Element e, ContentHandler contentHandler)

Generates the whole set of SAX events by treating element e as if it's a root element.

public void
scan(Document d, ContentHandler contentHandler)

Generates the whole set of SAX events from the given Document in the DOMForest.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

forestback to summary
private final DOMForest forest

Constructor Detail

DOMForestScannerback to summary
public DOMForestScanner(DOMForest _forest)

Scans DOM nodes of the given forest. DOM node parameters to the scan method must be a part of this forest.

Method Detail

scanback to summary
public void scan(Element e, ContentHandler contentHandler) throws SAXException

Generates the whole set of SAX events by treating element e as if it's a root element.

scanback to summary
public void scan(Document d, ContentHandler contentHandler) throws SAXException

Generates the whole set of SAX events from the given Document in the DOMForest.

com.sun.tools.xjc.reader.internalizer back to summary

private Class DOMForestScanner.LocationResolver

extends XMLFilterImpl
implements Locator
Class Inheritance
All Implemented Interfaces
org.xml.sax.Locator

Intercepts the invocation of the setDocumentLocator method and passes itself as the locator. If the client calls one of the methods on the Locator interface, use the LocatorTable to resolve the source location.

Field Summary

Modifier and TypeField and Description
private boolean
inStart

Flag that tells us whether we are processing a start element event or an end element event.

private final DOMScanner

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
endElement(String namespaceURI, String localName, String qName)

Overrides org.xml.sax.helpers.XMLFilterImpl.endElement.

Implements org.xml.sax.ContentHandler.endElement.

Filter an end element event.

private Locator
public int
getColumnNumber()

Implements org.xml.sax.Locator.getColumnNumber.

Return the column number where the current document event ends.

public int
getLineNumber()

Implements org.xml.sax.Locator.getLineNumber.

Return the line number where the current document event ends.

public String
getPublicId()

Implements org.xml.sax.Locator.getPublicId.

Return the public identifier for the current document event.

public String
getSystemId()

Implements org.xml.sax.Locator.getSystemId.

Return the system identifier for the current document event.

public void
public void
startElement(String namespaceURI, String localName, String qName, Attributes atts)

Overrides org.xml.sax.helpers.XMLFilterImpl.startElement.

Implements org.xml.sax.ContentHandler.startElement.

Filter a start element event.

Inherited from org.xml.sax.helpers.XMLFilterImpl:
charactersendDocumentendPrefixMappingerrorfatalErrorgetContentHandlergetDTDHandlergetEntityResolvergetErrorHandlergetFeaturegetParentgetPropertyignorableWhitespacenotationDeclparseparseprocessingInstructionresolveEntitysetContentHandlersetDTDHandlersetEntityResolversetErrorHandlersetFeaturesetParentsetPropertyskippedEntitystartDocumentstartPrefixMappingunparsedEntityDeclwarning

Field Detail

inStartback to summary
private boolean inStart

Flag that tells us whether we are processing a start element event or an end element event. DOMScanner's getCurrentLocation method doesn't tell us which, but this information is necessary to return the correct source line information. Thus we set this flag appropriately before we pass an event to the next ContentHandler, thereby making it possible to figure out which location to return.

parentback to summary
private final DOMScanner parent

Hides org.xml.sax.helpers.XMLFilterImpl.parent.

Constructor Detail

LocationResolverback to summary
pack-priv LocationResolver(DOMScanner _parent)

Method Detail

endElementback to summary
public void endElement(String namespaceURI, String localName, String qName) throws SAXException

Overrides org.xml.sax.helpers.XMLFilterImpl.endElement.

Implements org.xml.sax.ContentHandler.endElement.

Doc from org.xml.sax.helpers.XMLFilterImpl.endElement.

Filter an end element event.

Annotations
@Override
Exceptions
SAXException:
The client may throw an exception during processing.
findLocatorback to summary
private Locator findLocator()
getColumnNumberback to summary
public int getColumnNumber()

Implements org.xml.sax.Locator.getColumnNumber.

Doc from org.xml.sax.Locator.getColumnNumber.

Return the column number where the current document event ends. This is one-based number of Java char values since the last line end.

Warning

The return value from the method is intended only as an approximation for the sake of diagnostics; it is not intended to provide sufficient information to edit the character content of the original XML document. For example, when lines contain combining character sequences, wide characters, surrogate pairs, or bi-directional text, the value may not correspond to the column in a text editor's display.

The return value is an approximation of the column number in the document entity or external parsed entity where the markup triggering the event appears.

If possible, the SAX driver should provide the line position of the first character after the text associated with the document event. The first column in each line is column 1.

Annotations
@Override
getLineNumberback to summary
public int getLineNumber()

Implements org.xml.sax.Locator.getLineNumber.

Doc from org.xml.sax.Locator.getLineNumber.

Return the line number where the current document event ends. Lines are delimited by line ends, which are defined in the XML specification.

Warning

The return value from the method is intended only as an approximation for the sake of diagnostics; it is not intended to provide sufficient information to edit the character content of the original XML document. In some cases, these "line" numbers match what would be displayed as columns, and in others they may not match the source text due to internal entity expansion.

The return value is an approximation of the line number in the document entity or external parsed entity where the markup triggering the event appears.

If possible, the SAX driver should provide the line position of the first character after the text associated with the document event. The first line is line 1.

Annotations
@Override
getPublicIdback to summary
public String getPublicId()

Implements org.xml.sax.Locator.getPublicId.

Doc from org.xml.sax.Locator.getPublicId.

Return the public identifier for the current document event.

The return value is the public identifier of the document entity or of the external parsed entity in which the markup triggering the event appears.

Annotations
@Override
getSystemIdback to summary
public String getSystemId()

Implements org.xml.sax.Locator.getSystemId.

Doc from org.xml.sax.Locator.getSystemId.

Return the system identifier for the current document event.

The return value is the system identifier of the document entity or of the external parsed entity in which the markup triggering the event appears.

If the system identifier is a URL, the parser must resolve it fully before passing it to the application. For example, a file name must always be provided as a file:... URL, and other kinds of relative URI are also resolved against their bases.

Annotations
@Override
setDocumentLocatorback to summary
public void setDocumentLocator(Locator locator)

Overrides org.xml.sax.helpers.XMLFilterImpl.setDocumentLocator.

Implements org.xml.sax.ContentHandler.setDocumentLocator.

Doc from org.xml.sax.helpers.XMLFilterImpl.setDocumentLocator.

Filter a new document locator event.

Annotations
@Override
startElementback to summary
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException

Overrides org.xml.sax.helpers.XMLFilterImpl.startElement.

Implements org.xml.sax.ContentHandler.startElement.

Doc from org.xml.sax.helpers.XMLFilterImpl.startElement.

Filter a start element event.

Annotations
@Override
Exceptions
SAXException:
The client may throw an exception during processing.