xml.parser
Class SAXParserImpl.Handler

java.lang.Object
  extended byorg.xml.sax.helpers.DefaultHandler
      extended byxml.parser.SAXParserImpl.Handler
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.ext.DeclHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler
Enclosing class:
SAXParserImpl

class SAXParserImpl.Handler
extends org.xml.sax.helpers.DefaultHandler
implements org.xml.sax.ext.DeclHandler


Field Summary
(package private)  java.util.HashMap activePrefixes
           
(package private)  Buffer buffer
           
(package private)  int charEndOffset
           
(package private)  int charStartOffset
           
(package private)  java.util.Stack currentNodeStack
           
(package private)  XmlParsedData data
           
(package private)  boolean empty
           
(package private)  DefaultErrorSource errorSource
           
(package private)  XMLGrammarPoolImpl grammarPool
           
(package private)  boolean lastCallChar
           
(package private)  org.xml.sax.Locator loc
           
private static int MAX_TEXT_LENGTH
           
(package private)  java.lang.String text
           
(package private)  java.lang.StringBuffer textContent
           
 
Constructor Summary
(package private) SAXParserImpl.Handler(Buffer buffer, java.lang.String text, DefaultErrorSource errorSource, XmlParsedData data, XMLGrammarPoolImpl grammarPool)
           
 
Method Summary
private  void addError(int type, java.lang.String uri, int line, java.lang.String message)
           
 void addText()
          This method adds the text to the tree if the text is longer than 20 letters it shows only three words and then three dots
 void attributeDecl(java.lang.String eName, java.lang.String aName, java.lang.String type, java.lang.String valueDefault, java.lang.String value)
           
 void characters(char[] ch, int start, int length)
           
 void elementDecl(java.lang.String name, java.lang.String model)
           
 void endDocument()
           
 void endElement(java.lang.String namespaceURI, java.lang.String sName, java.lang.String qName)
           
 void endPrefixMapping(java.lang.String prefix)
           
 void error(org.xml.sax.SAXParseException spe)
           
 void externalEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
           
 void fatalError(org.xml.sax.SAXParseException spe)
           
private  int findTagStart(int offset)
           
private  Grammar getGrammarForNamespace(java.lang.String uri)
           
private  CompletionInfo grammarToCompletionInfo(Grammar grammar)
           
 void internalEntityDecl(java.lang.String name, java.lang.String value)
           
private  org.xml.sax.Attributes matchAttributes(org.xml.sax.Attributes attrs, int offset)
          This method fixes the problem with SAX It compares the attributes from buffer and attrs list if they don't match it changes the attrs list so that it matches the information from the buffer TODO: compare the buffer attributes to the attributelist for example saxparser parses off the xmlns attribute from html element so it should be added to the attribute list does not work with form -> enctype....
 org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
           
 void setDocumentLocator(org.xml.sax.Locator locator)
           
 void startElement(java.lang.String namespaceURI, java.lang.String lName, java.lang.String qName, org.xml.sax.Attributes attrs)
           
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
           
 void warning(org.xml.sax.SAXParseException spe)
           
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
ignorableWhitespace, notationDecl, processingInstruction, skippedEntity, startDocument, unparsedEntityDecl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

buffer

Buffer buffer

errorSource

DefaultErrorSource errorSource

text

java.lang.String text

data

XmlParsedData data

grammarPool

XMLGrammarPoolImpl grammarPool

activePrefixes

java.util.HashMap activePrefixes

currentNodeStack

java.util.Stack currentNodeStack

loc

org.xml.sax.Locator loc

empty

boolean empty

lastCallChar

boolean lastCallChar

textContent

java.lang.StringBuffer textContent

charStartOffset

int charStartOffset

charEndOffset

int charEndOffset

MAX_TEXT_LENGTH

private static final int MAX_TEXT_LENGTH
See Also:
Constant Field Values
Constructor Detail

SAXParserImpl.Handler

SAXParserImpl.Handler(Buffer buffer,
                      java.lang.String text,
                      DefaultErrorSource errorSource,
                      XmlParsedData data,
                      XMLGrammarPoolImpl grammarPool)
Method Detail

addError

private void addError(int type,
                      java.lang.String uri,
                      int line,
                      java.lang.String message)

getGrammarForNamespace

private Grammar getGrammarForNamespace(java.lang.String uri)

grammarToCompletionInfo

private CompletionInfo grammarToCompletionInfo(Grammar grammar)

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
Specified by:
endDocument in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
Specified by:
setDocumentLocator in interface org.xml.sax.ContentHandler

resolveEntity

public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
                                             java.lang.String systemId)
                                      throws org.xml.sax.SAXException
Specified by:
resolveEntity in interface org.xml.sax.EntityResolver
Throws:
org.xml.sax.SAXException

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String uri)
Specified by:
startPrefixMapping in interface org.xml.sax.ContentHandler

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
Specified by:
endPrefixMapping in interface org.xml.sax.ContentHandler

startElement

public void startElement(java.lang.String namespaceURI,
                         java.lang.String lName,
                         java.lang.String qName,
                         org.xml.sax.Attributes attrs)
                  throws org.xml.sax.SAXException
Specified by:
startElement in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

matchAttributes

private org.xml.sax.Attributes matchAttributes(org.xml.sax.Attributes attrs,
                                               int offset)
This method fixes the problem with SAX It compares the attributes from buffer and attrs list if they don't match it changes the attrs list so that it matches the information from the buffer TODO: compare the buffer attributes to the attributelist for example saxparser parses off the xmlns attribute from html element so it should be added to the attribute list does not work with form -> enctype....

Parameters:
attrs - Attributes
offset - int
Returns:
Attributes

endElement

public void endElement(java.lang.String namespaceURI,
                       java.lang.String sName,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
Specified by:
endElement in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Specified by:
characters in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

error

public void error(org.xml.sax.SAXParseException spe)
Specified by:
error in interface org.xml.sax.ErrorHandler

warning

public void warning(org.xml.sax.SAXParseException spe)
Specified by:
warning in interface org.xml.sax.ErrorHandler

fatalError

public void fatalError(org.xml.sax.SAXParseException spe)
                throws org.xml.sax.SAXParseException
Specified by:
fatalError in interface org.xml.sax.ErrorHandler
Throws:
org.xml.sax.SAXParseException

elementDecl

public void elementDecl(java.lang.String name,
                        java.lang.String model)
Specified by:
elementDecl in interface org.xml.sax.ext.DeclHandler

attributeDecl

public void attributeDecl(java.lang.String eName,
                          java.lang.String aName,
                          java.lang.String type,
                          java.lang.String valueDefault,
                          java.lang.String value)
Specified by:
attributeDecl in interface org.xml.sax.ext.DeclHandler

internalEntityDecl

public void internalEntityDecl(java.lang.String name,
                               java.lang.String value)
Specified by:
internalEntityDecl in interface org.xml.sax.ext.DeclHandler

externalEntityDecl

public void externalEntityDecl(java.lang.String name,
                               java.lang.String publicId,
                               java.lang.String systemId)
Specified by:
externalEntityDecl in interface org.xml.sax.ext.DeclHandler

addText

public void addText()
This method adds the text to the tree if the text is longer than 20 letters it shows only three words and then three dots


findTagStart

private int findTagStart(int offset)