org.qedeq.kernel.xml.tracker
Class XPathLocationParser

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by org.qedeq.kernel.xml.handler.common.SimpleHandler
          extended by org.qedeq.kernel.xml.tracker.XPathLocationParser
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public final class XPathLocationParser
extends SimpleHandler

Parser for XML files. Search simple XPath within an XML file. Usage:

      final XPathLocationParser parser = new XPathLocationParser(xpath);
      parser.parse(xmlFile, original);
      return parser.getFind();

 
If the system property "qedeq.test.xmlLocationFailures" is set to "true" a runtime exception is thrown if the path is not found.

Author:
Michael Meyling

Constructor Summary
XPathLocationParser(SimpleXPath xpath, SourcePosition startDelta, SourcePosition endDelta)
          Constructor.
 
Method Summary
 void characters(char[] ch, int start, int length)
           
 void endDocument()
           
 void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)
           
 void endPrefixMapping(java.lang.String prefix)
           
static SourceArea findSourceArea(java.io.File file, SimpleXPath xpath)
          Search simple XPath within an XML file.
static SourceArea findSourceArea(java.lang.String address, SimpleXPath xpath, SourcePosition startDelta, SourcePosition endDelta, java.io.File file)
          Search simple XPath within an XML file.
 void ignorableWhitespace(char[] ch, int start, int length)
           
 void parse(java.io.File file)
          Parses XML file.
 void processingInstruction(java.lang.String target, java.lang.String data)
           
 void skippedEntity(java.lang.String name)
           
 void startDocument()
           
 void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
           
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
           
 
Methods inherited from class org.qedeq.kernel.xml.handler.common.SimpleHandler
getEncoding, getLocator, getUrl, setDocumentLocator, setUrl
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
error, fatalError, notationDecl, resolveEntity, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XPathLocationParser

public XPathLocationParser(SimpleXPath xpath,
                           SourcePosition startDelta,
                           SourcePosition endDelta)
                    throws javax.xml.parsers.ParserConfigurationException,
                           org.xml.sax.SAXException
Constructor.

Parameters:
xpath - XML file path.
startDelta - Skip position (relative to location start). Could be null.
endDelta - Mark until this column (relative to location start). Could be null.
Throws:
javax.xml.parsers.ParserConfigurationException - Severe parser configuration problem.
org.xml.sax.SAXException - XML problem.
Method Detail

findSourceArea

public static SourceArea findSourceArea(java.lang.String address,
                                        SimpleXPath xpath,
                                        SourcePosition startDelta,
                                        SourcePosition endDelta,
                                        java.io.File file)
Search simple XPath within an XML file. If the system property "qedeq.test.xmlLocationFailures" is set to "true" a runtime exception is thrown if the path is not found.

Parameters:
address - Name description (for example URL) for this XML file.
xpath - Search for this simple XPath.
startDelta - Skip position (relative to location start). Could be null.
endDelta - Mark until this column (relative to location start). Could be null.
file - Search this file.
Returns:
Source position information.

findSourceArea

public static SourceArea findSourceArea(java.io.File file,
                                        SimpleXPath xpath)
Search simple XPath within an XML file. If the system property "qedeq.test.xmlLocationFailures" is set to "true" a runtime exception is thrown if the path is not found.

Parameters:
file - Search this file.
xpath - Search for this simple XPath.
Returns:
Source position information.

parse

public final void parse(java.io.File file)
                 throws java.io.IOException,
                        org.xml.sax.SAXException
Parses XML file.

Parameters:
file - Parse this input.
Throws:
java.io.IOException - Technical problem occurred.
org.xml.sax.SAXException - Parsing problem.

endDocument

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

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
Specified by:
startDocument in interface org.xml.sax.ContentHandler
Overrides:
startDocument in class org.xml.sax.helpers.DefaultHandler
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
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

ignorableWhitespace

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

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
                      throws org.xml.sax.SAXException
Specified by:
endPrefixMapping in interface org.xml.sax.ContentHandler
Overrides:
endPrefixMapping in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

skippedEntity

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

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
                           throws org.xml.sax.SAXException
Specified by:
processingInstruction in interface org.xml.sax.ContentHandler
Overrides:
processingInstruction in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

startPrefixMapping

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

startElement

public void startElement(java.lang.String namespaceURI,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes atts)
                  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

endElement

public void endElement(java.lang.String namespaceURI,
                       java.lang.String localName,
                       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


Copyright © 2014. All Rights Reserved.