gate.creole
Class CreoleXmlHandler

java.lang.Object
  |
  +--org.xml.sax.helpers.DefaultHandler
        |
        +--gate.creole.CreoleXmlHandler
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

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

This is a SAX handler for processing creole.xml files. It would have been better to write it using DOM or JDOM but.... Resource data objects are created and added to the CREOLE register. URLs for resource JAR files are added to the GATE class loader.


Field Summary
private  SimpleErrorHandler _seh
          This object indicates what to do when the parser encounts an error
private  Stack contentStack
          A stack to stuff PCDATA onto for reading back at element ends.
private  org.xml.sax.Attributes currentAttributes
          The current element's attribute list
private  FeatureMap currentAutoinstanceParams
          This field represents the params map required for autoinstantiation Its a map from param name to param value.
private  List currentAutoinstances
          This field holds autoinstanceParams describing the resource that needs to be instantiated
private  Parameter currentParam
          The current parameter
private  List currentParamDisjunction
          The current parameter disjunction
private  ParameterList currentParamList
          The current parameter list
private static boolean DEBUG
          Debug flag
private  CreoleRegister register
          The register object that we add ResourceData objects to during parsing.
private  ResourceData resourceData
          The current resource data object
private  URL sourceUrl
          The source URL of the directory file being parsed.
 
Constructor Summary
CreoleXmlHandler(CreoleRegister register, URL directoryUrl)
          Construction
 
Method Summary
private  String attributes2String(org.xml.sax.Attributes atts)
          A verboase method for Attributes
 void characters(char[] text, int start, int length)
          Called when the SAX parser encounts text (PCDATA) in the XML doc
private  void checkStack(String methodName, String elementName)
          Utility function to throw exceptions on stack errors.
 void endDocument()
          Called when the SAX parser encounts the end of the XML document
 void endElement(String uri, String qName, String elementName)
          Called when the SAX parser encounts the end of an XML element.
 void error(org.xml.sax.SAXParseException ex)
          Called for parse errors.
 void fatalError(org.xml.sax.SAXParseException ex)
          Called for fatal errors.
 void ignorableWhitespace(char[] ch, int start, int length)
          Called when the SAX parser encounts white space
 void startDocument()
          Called when the SAX parser encounts the beginning of the XML document
 void startElement(String uri, String qName, String elementName, org.xml.sax.Attributes atts)
          Called when the SAX parser encounts the beginning of an XML element
 void warning(org.xml.sax.SAXParseException ex)
          Called for warnings.
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endPrefixMapping, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

contentStack

private Stack contentStack
A stack to stuff PCDATA onto for reading back at element ends. (Probably redundant to have a stack as we only push one item onto it. Probably. Ok, so I should check, but a) it works, b) I'm bald already and c) life is short.)

resourceData

private ResourceData resourceData
The current resource data object

currentParamList

private ParameterList currentParamList
The current parameter list

currentParamDisjunction

private List currentParamDisjunction
The current parameter disjunction

currentParam

private Parameter currentParam
The current parameter

currentAttributes

private org.xml.sax.Attributes currentAttributes
The current element's attribute list

DEBUG

private static final boolean DEBUG
Debug flag

sourceUrl

private URL sourceUrl
The source URL of the directory file being parsed.

_seh

private SimpleErrorHandler _seh
This object indicates what to do when the parser encounts an error

currentAutoinstanceParams

private FeatureMap currentAutoinstanceParams
This field represents the params map required for autoinstantiation Its a map from param name to param value.

currentAutoinstances

private List currentAutoinstances
This field holds autoinstanceParams describing the resource that needs to be instantiated

register

private CreoleRegister register
The register object that we add ResourceData objects to during parsing.
Constructor Detail

CreoleXmlHandler

public CreoleXmlHandler(CreoleRegister register,
                        URL directoryUrl)
Construction
Method Detail

startDocument

public void startDocument()
                   throws GateSaxException
Called when the SAX parser encounts the beginning of the XML document
Overrides:
startDocument in class org.xml.sax.helpers.DefaultHandler

endDocument

public void endDocument()
                 throws GateSaxException
Called when the SAX parser encounts the end of the XML document
Overrides:
endDocument in class org.xml.sax.helpers.DefaultHandler

attributes2String

private String attributes2String(org.xml.sax.Attributes atts)
A verboase method for Attributes

startElement

public void startElement(String uri,
                         String qName,
                         String elementName,
                         org.xml.sax.Attributes atts)
Called when the SAX parser encounts the beginning of an XML element
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler

checkStack

private void checkStack(String methodName,
                        String elementName)
                 throws GateSaxException
Utility function to throw exceptions on stack errors.

endElement

public void endElement(String uri,
                       String qName,
                       String elementName)
                throws GateSaxException
Called when the SAX parser encounts the end of an XML element. This is where ResourceData objects get values set, and where they are added to the CreoleRegister when we parsed their complete metadata entries.
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler

characters

public void characters(char[] text,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Called when the SAX parser encounts text (PCDATA) in the XML doc
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int length)
                         throws org.xml.sax.SAXException
Called when the SAX parser encounts white space
Overrides:
ignorableWhitespace in class org.xml.sax.helpers.DefaultHandler

error

public void error(org.xml.sax.SAXParseException ex)
           throws org.xml.sax.SAXException
Called for parse errors.
Overrides:
error in class org.xml.sax.helpers.DefaultHandler

fatalError

public void fatalError(org.xml.sax.SAXParseException ex)
                throws org.xml.sax.SAXException
Called for fatal errors.
Overrides:
fatalError in class org.xml.sax.helpers.DefaultHandler

warning

public void warning(org.xml.sax.SAXParseException ex)
             throws org.xml.sax.SAXException
Called for warnings.
Overrides:
warning in class org.xml.sax.helpers.DefaultHandler