Package com.fasterxml.aalto.sax
Class SAXParserImpl
- java.lang.Object
-
- javax.xml.parsers.SAXParser
-
- com.fasterxml.aalto.sax.SAXParserImpl
-
- All Implemented Interfaces:
org.xml.sax.Attributes,org.xml.sax.ext.Attributes2,org.xml.sax.ext.Locator2,org.xml.sax.Locator,org.xml.sax.Parser,org.xml.sax.XMLReader
class SAXParserImpl extends javax.xml.parsers.SAXParser implements org.xml.sax.Parser, org.xml.sax.XMLReader, org.xml.sax.ext.Attributes2, org.xml.sax.ext.Locator2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classSAXParserImpl.AttributesWrapper(package private) static classSAXParserImpl.DocHandlerWrapper
-
Field Summary
Fields Modifier and Type Field Description protected AttributeCollector_attrCollectorprivate int_attrCountprotected org.xml.sax.ContentHandler_contentHandlerprivate org.xml.sax.ext.DeclHandler_declHandlerprotected org.xml.sax.DTDHandler_dtdHandlerprivate org.xml.sax.EntityResolver_entityResolverprivate org.xml.sax.ErrorHandler_errorHandlerprivate org.xml.sax.ext.LexicalHandler_lexicalHandlerprotected XmlScanner_scannerSince the stream reader would mostly be just a wrapper around the underlying scanner (its main job is to implement Stax interface), we can and should just use the scanner.(package private) InputFactoryImpl_staxFactory
-
Constructor Summary
Constructors Constructor Description SAXParserImpl(InputFactoryImpl sf)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidfireAuxEvent(int type, boolean inTree)private voidfireEndTag()private voidfireEvents()This is the actual "tight event loop" that will send all events between start and end document events.private voidfireStartTag()intgetColumnNumber()org.xml.sax.ContentHandlergetContentHandler()org.xml.sax.DTDHandlergetDTDHandler()java.lang.StringgetEncoding()org.xml.sax.EntityResolvergetEntityResolver()org.xml.sax.ErrorHandlergetErrorHandler()booleangetFeature(java.lang.String name)intgetIndex(java.lang.String qName)intgetIndex(java.lang.String uri, java.lang.String localName)intgetLength()intgetLineNumber()java.lang.StringgetLocalName(int index)org.xml.sax.ParsergetParser()java.lang.ObjectgetProperty(java.lang.String name)java.lang.StringgetPublicId()java.lang.StringgetQName(int index)java.lang.StringgetSystemId()java.lang.StringgetType(int index)java.lang.StringgetType(java.lang.String qName)java.lang.StringgetType(java.lang.String uri, java.lang.String localName)java.lang.StringgetURI(int index)java.lang.StringgetValue(int index)java.lang.StringgetValue(java.lang.String qName)java.lang.StringgetValue(java.lang.String uri, java.lang.String localName)org.xml.sax.XMLReadergetXMLReader()java.lang.StringgetXMLVersion()booleanisDeclared(int index)booleanisDeclared(java.lang.String qName)booleanisDeclared(java.lang.String uri, java.lang.String localName)booleanisNamespaceAware()booleanisSpecified(int index)booleanisSpecified(java.lang.String qName)booleanisSpecified(java.lang.String uri, java.lang.String localName)booleanisValidating()voidparse(java.lang.String systemId)voidparse(org.xml.sax.InputSource input)voidparse(org.xml.sax.InputSource is, org.xml.sax.HandlerBase hb)voidparse(org.xml.sax.InputSource is, org.xml.sax.helpers.DefaultHandler dh)voidsetContentHandler(org.xml.sax.ContentHandler handler)voidsetDocumentHandler(org.xml.sax.DocumentHandler handler)voidsetDTDHandler(org.xml.sax.DTDHandler handler)voidsetEntityResolver(org.xml.sax.EntityResolver resolver)voidsetErrorHandler(org.xml.sax.ErrorHandler handler)voidsetFeature(java.lang.String name, boolean value)voidsetLocale(java.util.Locale locale)voidsetProperty(java.lang.String name, java.lang.Object value)private voidthrowSaxException(java.lang.Exception e)private voidthrowSaxException(java.lang.String msg)
-
-
-
Field Detail
-
_staxFactory
final InputFactoryImpl _staxFactory
-
_scanner
protected XmlScanner _scanner
Since the stream reader would mostly be just a wrapper around the underlying scanner (its main job is to implement Stax interface), we can and should just use the scanner. In effect, this class is then a replacement of StreamReaderImpl, when using SAX interfaces.
-
_attrCollector
protected AttributeCollector _attrCollector
-
_contentHandler
protected org.xml.sax.ContentHandler _contentHandler
-
_dtdHandler
protected org.xml.sax.DTDHandler _dtdHandler
-
_entityResolver
private org.xml.sax.EntityResolver _entityResolver
-
_errorHandler
private org.xml.sax.ErrorHandler _errorHandler
-
_lexicalHandler
private org.xml.sax.ext.LexicalHandler _lexicalHandler
-
_declHandler
private org.xml.sax.ext.DeclHandler _declHandler
-
_attrCount
private int _attrCount
-
-
Constructor Detail
-
SAXParserImpl
SAXParserImpl(InputFactoryImpl sf)
-
-
Method Detail
-
getParser
public final org.xml.sax.Parser getParser()
- Specified by:
getParserin classjavax.xml.parsers.SAXParser
-
getXMLReader
public final org.xml.sax.XMLReader getXMLReader()
- Specified by:
getXMLReaderin classjavax.xml.parsers.SAXParser
-
isNamespaceAware
public boolean isNamespaceAware()
- Specified by:
isNamespaceAwarein classjavax.xml.parsers.SAXParser
-
isValidating
public boolean isValidating()
- Specified by:
isValidatingin classjavax.xml.parsers.SAXParser
-
getProperty
public java.lang.Object getProperty(java.lang.String name) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException- Specified by:
getPropertyin interfaceorg.xml.sax.XMLReader- Specified by:
getPropertyin classjavax.xml.parsers.SAXParser- Throws:
org.xml.sax.SAXNotRecognizedExceptionorg.xml.sax.SAXNotSupportedException
-
setProperty
public void setProperty(java.lang.String name, java.lang.Object value) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException- Specified by:
setPropertyin interfaceorg.xml.sax.XMLReader- Specified by:
setPropertyin classjavax.xml.parsers.SAXParser- Throws:
org.xml.sax.SAXNotRecognizedExceptionorg.xml.sax.SAXNotSupportedException
-
parse
public void parse(org.xml.sax.InputSource is, org.xml.sax.HandlerBase hb) throws org.xml.sax.SAXException, java.io.IOException- Overrides:
parsein classjavax.xml.parsers.SAXParser- Throws:
org.xml.sax.SAXExceptionjava.io.IOException
-
parse
public void parse(org.xml.sax.InputSource is, org.xml.sax.helpers.DefaultHandler dh) throws org.xml.sax.SAXException, java.io.IOException- Overrides:
parsein classjavax.xml.parsers.SAXParser- Throws:
org.xml.sax.SAXExceptionjava.io.IOException
-
getContentHandler
public org.xml.sax.ContentHandler getContentHandler()
- Specified by:
getContentHandlerin interfaceorg.xml.sax.XMLReader
-
getDTDHandler
public org.xml.sax.DTDHandler getDTDHandler()
- Specified by:
getDTDHandlerin interfaceorg.xml.sax.XMLReader
-
getEntityResolver
public org.xml.sax.EntityResolver getEntityResolver()
- Specified by:
getEntityResolverin interfaceorg.xml.sax.XMLReader
-
getErrorHandler
public org.xml.sax.ErrorHandler getErrorHandler()
- Specified by:
getErrorHandlerin interfaceorg.xml.sax.XMLReader
-
getFeature
public boolean getFeature(java.lang.String name) throws org.xml.sax.SAXNotRecognizedException- Specified by:
getFeaturein interfaceorg.xml.sax.XMLReader- Throws:
org.xml.sax.SAXNotRecognizedException
-
setContentHandler
public void setContentHandler(org.xml.sax.ContentHandler handler)
- Specified by:
setContentHandlerin interfaceorg.xml.sax.XMLReader
-
setDTDHandler
public void setDTDHandler(org.xml.sax.DTDHandler handler)
- Specified by:
setDTDHandlerin interfaceorg.xml.sax.Parser- Specified by:
setDTDHandlerin interfaceorg.xml.sax.XMLReader
-
setEntityResolver
public void setEntityResolver(org.xml.sax.EntityResolver resolver)
- Specified by:
setEntityResolverin interfaceorg.xml.sax.Parser- Specified by:
setEntityResolverin interfaceorg.xml.sax.XMLReader
-
setErrorHandler
public void setErrorHandler(org.xml.sax.ErrorHandler handler)
- Specified by:
setErrorHandlerin interfaceorg.xml.sax.Parser- Specified by:
setErrorHandlerin interfaceorg.xml.sax.XMLReader
-
setFeature
public void setFeature(java.lang.String name, boolean value) throws org.xml.sax.SAXNotRecognizedException- Specified by:
setFeaturein interfaceorg.xml.sax.XMLReader- Throws:
org.xml.sax.SAXNotRecognizedException
-
parse
public void parse(org.xml.sax.InputSource input) throws org.xml.sax.SAXException- Specified by:
parsein interfaceorg.xml.sax.Parser- Specified by:
parsein interfaceorg.xml.sax.XMLReader- Throws:
org.xml.sax.SAXException
-
parse
public void parse(java.lang.String systemId) throws org.xml.sax.SAXException- Specified by:
parsein interfaceorg.xml.sax.Parser- Specified by:
parsein interfaceorg.xml.sax.XMLReader- Throws:
org.xml.sax.SAXException
-
fireEvents
private final void fireEvents() throws org.xml.sax.SAXException, javax.xml.stream.XMLStreamExceptionThis is the actual "tight event loop" that will send all events between start and end document events. Although we could use the stream reader here, there's not much as it mostly just forwards requests to the scanner: and so we can as well just copy the little code stream reader's next() method has.- Throws:
org.xml.sax.SAXExceptionjavax.xml.stream.XMLStreamException
-
fireAuxEvent
private final void fireAuxEvent(int type, boolean inTree) throws org.xml.sax.SAXException, javax.xml.stream.XMLStreamException- Throws:
org.xml.sax.SAXExceptionjavax.xml.stream.XMLStreamException
-
fireStartTag
private final void fireStartTag() throws org.xml.sax.SAXException- Throws:
org.xml.sax.SAXException
-
fireEndTag
private final void fireEndTag() throws org.xml.sax.SAXException- Throws:
org.xml.sax.SAXException
-
setDocumentHandler
public void setDocumentHandler(org.xml.sax.DocumentHandler handler)
- Specified by:
setDocumentHandlerin interfaceorg.xml.sax.Parser
-
setLocale
public void setLocale(java.util.Locale locale)
- Specified by:
setLocalein interfaceorg.xml.sax.Parser
-
getIndex
public int getIndex(java.lang.String qName)
- Specified by:
getIndexin interfaceorg.xml.sax.Attributes
-
getIndex
public int getIndex(java.lang.String uri, java.lang.String localName)- Specified by:
getIndexin interfaceorg.xml.sax.Attributes
-
getLength
public int getLength()
- Specified by:
getLengthin interfaceorg.xml.sax.Attributes
-
getLocalName
public java.lang.String getLocalName(int index)
- Specified by:
getLocalNamein interfaceorg.xml.sax.Attributes
-
getQName
public java.lang.String getQName(int index)
- Specified by:
getQNamein interfaceorg.xml.sax.Attributes
-
getType
public java.lang.String getType(int index)
- Specified by:
getTypein interfaceorg.xml.sax.Attributes
-
getType
public java.lang.String getType(java.lang.String qName)
- Specified by:
getTypein interfaceorg.xml.sax.Attributes
-
getType
public java.lang.String getType(java.lang.String uri, java.lang.String localName)- Specified by:
getTypein interfaceorg.xml.sax.Attributes
-
getURI
public java.lang.String getURI(int index)
- Specified by:
getURIin interfaceorg.xml.sax.Attributes
-
getValue
public java.lang.String getValue(int index)
- Specified by:
getValuein interfaceorg.xml.sax.Attributes
-
getValue
public java.lang.String getValue(java.lang.String qName)
- Specified by:
getValuein interfaceorg.xml.sax.Attributes
-
getValue
public java.lang.String getValue(java.lang.String uri, java.lang.String localName)- Specified by:
getValuein interfaceorg.xml.sax.Attributes
-
isDeclared
public boolean isDeclared(int index)
- Specified by:
isDeclaredin interfaceorg.xml.sax.ext.Attributes2
-
isDeclared
public boolean isDeclared(java.lang.String qName)
- Specified by:
isDeclaredin interfaceorg.xml.sax.ext.Attributes2
-
isDeclared
public boolean isDeclared(java.lang.String uri, java.lang.String localName)- Specified by:
isDeclaredin interfaceorg.xml.sax.ext.Attributes2
-
isSpecified
public boolean isSpecified(int index)
- Specified by:
isSpecifiedin interfaceorg.xml.sax.ext.Attributes2
-
isSpecified
public boolean isSpecified(java.lang.String qName)
- Specified by:
isSpecifiedin interfaceorg.xml.sax.ext.Attributes2
-
isSpecified
public boolean isSpecified(java.lang.String uri, java.lang.String localName)- Specified by:
isSpecifiedin interfaceorg.xml.sax.ext.Attributes2
-
getColumnNumber
public int getColumnNumber()
- Specified by:
getColumnNumberin interfaceorg.xml.sax.Locator
-
getLineNumber
public int getLineNumber()
- Specified by:
getLineNumberin interfaceorg.xml.sax.Locator
-
getPublicId
public java.lang.String getPublicId()
- Specified by:
getPublicIdin interfaceorg.xml.sax.Locator
-
getSystemId
public java.lang.String getSystemId()
- Specified by:
getSystemIdin interfaceorg.xml.sax.Locator
-
getEncoding
public java.lang.String getEncoding()
- Specified by:
getEncodingin interfaceorg.xml.sax.ext.Locator2
-
getXMLVersion
public java.lang.String getXMLVersion()
- Specified by:
getXMLVersionin interfaceorg.xml.sax.ext.Locator2
-
throwSaxException
private void throwSaxException(java.lang.Exception e) throws org.xml.sax.SAXException- Throws:
org.xml.sax.SAXException
-
throwSaxException
private void throwSaxException(java.lang.String msg) throws org.xml.sax.SAXException- Throws:
org.xml.sax.SAXException
-
-