edu.umd.cs.findbugs
Class SAXBugCollectionHandler

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by edu.umd.cs.findbugs.SAXBugCollectionHandler
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class SAXBugCollectionHandler
extends org.xml.sax.helpers.DefaultHandler

Build a BugCollection based on SAX events. This is intended to replace the old DOM-based parsing of XML bug result files, which was very slow.

Author:
David Hovemeyer

Field Summary
private  BugCollection bugCollection
           
private  BugInstance bugInstance
           
private  java.util.ArrayList<java.lang.String> elementStack
           
private  MethodAnnotation methodAnnotation
           
private  Project project
           
private  java.lang.StringBuffer textBuffer
           
 
Constructor Summary
SAXBugCollectionHandler(BugCollection bugCollection, Project project)
           
 
Method Summary
 void characters(char[] ch, int start, int length)
           
private  SourceLineAnnotation createSourceLineAnnotation(java.lang.String qName, org.xml.sax.Attributes attributes)
           
 void endDocument()
           
 void endElement(java.lang.String uri, java.lang.String name, java.lang.String qName)
           
private static java.lang.String getRequiredAttribute(org.xml.sax.Attributes attributes, java.lang.String attrName, java.lang.String elementName)
           
static void main(java.lang.String[] argv)
           
 void startDocument()
           
 void startElement(java.lang.String uri, java.lang.String name, java.lang.String qName, org.xml.sax.Attributes attributes)
           
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bugCollection

private BugCollection bugCollection

project

private Project project

elementStack

private java.util.ArrayList<java.lang.String> elementStack

textBuffer

private java.lang.StringBuffer textBuffer

bugInstance

private BugInstance bugInstance

methodAnnotation

private MethodAnnotation methodAnnotation
Constructor Detail

SAXBugCollectionHandler

public SAXBugCollectionHandler(BugCollection bugCollection,
                               Project project)
Method Detail

startDocument

public void startDocument()
Specified by:
startDocument in interface org.xml.sax.ContentHandler
Overrides:
startDocument in class org.xml.sax.helpers.DefaultHandler

endDocument

public void endDocument()
Specified by:
endDocument in interface org.xml.sax.ContentHandler
Overrides:
endDocument in class org.xml.sax.helpers.DefaultHandler

startElement

public void startElement(java.lang.String uri,
                         java.lang.String name,
                         java.lang.String qName,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
Specified by:
startElement in interface org.xml.sax.ContentHandler
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

createSourceLineAnnotation

private SourceLineAnnotation createSourceLineAnnotation(java.lang.String qName,
                                                        org.xml.sax.Attributes attributes)
                                                 throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String uri,
                       java.lang.String name,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
Specified by:
endElement in interface org.xml.sax.ContentHandler
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler

getRequiredAttribute

private static java.lang.String getRequiredAttribute(org.xml.sax.Attributes attributes,
                                                     java.lang.String attrName,
                                                     java.lang.String elementName)
                                              throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

main

public static void main(java.lang.String[] argv)
                 throws java.lang.Exception
Throws:
java.lang.Exception