Class LoadMetadataVocabs

java.lang.Object
org.dlese.dpc.vocab.LoadMetadataVocabs
All Implemented Interfaces:
ContentHandler

public class LoadMetadataVocabs extends Object implements ContentHandler
Loads controlled vocabularies from files specified by a given XML configuration file. The following are examples of how to use this class to obtain a MetadataVocab class instance that is not stored as a servlet context attribute:
No database connection
MetadataVocab vocab = new LoadMetadataVocabs().getVocabs(
         "/devel/ryandear/dds_test_data/vocab/DLESE_Errors.xml",
         "org.apache.xerces.parsers.SAXParser" );
Connected to an SQL database (for new encoded Id assignment and tracking of label changes)
MetadataVocab vocab = new LoadMetadataVocabs().getVocabs(
         "/devel/ryandear/dds_test_data/vocab/DLESE_Errors.xml",
         "org.apache.xerces.parsers.SAXParser",
         "org.gjt.mm.mysql.Driver",
         "jdbc:mysql://quake.dpc.ucar.edu:3306/DLESE_Systems",
         "myUser",
         "myPasswd" );
Author:
Ryan Deardorff
  • Constructor Details

    • LoadMetadataVocabs

      public LoadMetadataVocabs()
      Constructor for the LoadMetadataVocabs object that does nothing (use getMetadataVocabs() method to load and retrieve and instance of a vocab).
    • LoadMetadataVocabs

      public LoadMetadataVocabs(String configDir, String configFile, String xmlParserClass, ServletContext servletContext, String sqlDriver, String sqlURL, String sqlUser, String sqlPassword, String vocabTextFile)
      Constructor for the LoadMetadataVocabs object that loads an instance of a MetadataVocab object and sets it as a servlet context attribute.
      Parameters:
      configDir - Base dir of vocab XML files
      configFile - XML defining vocabs to be loaded
      xmlParserClass - SAX parser class, i.e. "org.apache.xerces.parsers.SAXParser"
      servletContext - The java servlet context in which to store the loaded vocabularies
      sqlDriver - Optional (can be NULL) driver class for SQL access, i.e. "org.gjt.mm.mysql.Driver"
      sqlURL - Optional (can be NULL) URL to SQL access, i.e. "jdbc:mysql://quake.dpc.ucar.edu:3306/DLESE_Systems"
      sqlUser - Optional (can be NULL) username for access to SQL tables
      sqlPassword - Optional (can be NULL) password for access to SQL tables
      vocabTextFile - Optional (can be NULL) file where vocabs get listed as text strings (for use by log analysis/reporting)
  • Method Details

    • load

      public void load()
      Load (or reload) the vocabulary
    • getMessage

      public String getMessage()
      Gets the message attribute of the LoadMetadataVocabs object
      Returns:
      The message value
    • getConfigFile

      public String getConfigFile()
      Gets the configFile attribute of the LoadMetadataVocabs object
      Returns:
      The configFile value
    • getVocabTextFile

      public String getVocabTextFile()
      Gets the vocabTextFile attribute of the LoadMetadataVocabs object
      Returns:
      The vocabTextFile value
    • getDatabaseURL

      public String getDatabaseURL()
      Gets the databaseURL attribute of the LoadMetadataVocabs object
      Returns:
      The databaseURL value
    • setDocumentLocator

      public void setDocumentLocator(Locator locator)
      (SAX) Sets the SAX locator, which indicates the current position of the parser within the document (line number, column number). Could be used to indicate the spot where an error occured.
      Specified by:
      setDocumentLocator in interface ContentHandler
      Parameters:
      locator - The new documentLocator value
    • startDocument

      public void startDocument() throws SAXException
      (SAX) Required by SAX, but not used here
      Specified by:
      startDocument in interface ContentHandler
      Throws:
      SAXException
    • endDocument

      public void endDocument() throws SAXException
      (SAX) Required by SAX, but not used here
      Specified by:
      endDocument in interface ContentHandler
      Throws:
      SAXException
    • startPrefixMapping

      public void startPrefixMapping(String prefix, String uri) throws SAXException
      (SAX) Required by SAX, but not used here
      Specified by:
      startPrefixMapping in interface ContentHandler
      Parameters:
      prefix -
      uri -
      Throws:
      SAXException
    • endPrefixMapping

      public void endPrefixMapping(String prefix) throws SAXException
      (SAX) Required by SAX, but not used here
      Specified by:
      endPrefixMapping in interface ContentHandler
      Parameters:
      prefix -
      Throws:
      SAXException
    • startElement

      public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException
      (SAX) Invoked upon opening tag of an XML element
      Specified by:
      startElement in interface ContentHandler
      Parameters:
      namespaceURI - XML namespace
      localName - local tag name
      qName - fully qualified tag name
      atts - tag attributes
      Throws:
      SAXException
    • endElement

      public void endElement(String namespaceURI, String localName, String qName) throws SAXException
      (SAX) Invoked upon closing tag of an XML element
      Specified by:
      endElement in interface ContentHandler
      Parameters:
      namespaceURI - XML namespace
      localName - local tag name
      qName - fully qualified tag name
      Throws:
      SAXException
    • characters

      public void characters(char[] ch, int start, int length) throws SAXException
      (SAX) Element data (characters between tags)
      Specified by:
      characters in interface ContentHandler
      Parameters:
      ch - character array
      start - starting index of character data
      length - length of character data
      Throws:
      SAXException
    • ignorableWhitespace

      public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
      (SAX) Reports any whitespace that is ignored because it falls outside of the DTD or schema definition--usefull for re-generating the file with indents intact, though.
      Specified by:
      ignorableWhitespace in interface ContentHandler
      Parameters:
      ch -
      start -
      length -
      Throws:
      SAXException
    • processingInstruction

      public void processingInstruction(String target, String data) throws SAXException
      (SAX) Required by SAX, but not used here
      Specified by:
      processingInstruction in interface ContentHandler
      Parameters:
      target -
      data -
      Throws:
      SAXException
    • skippedEntity

      public void skippedEntity(String name) throws SAXException
      (SAX) Required by SAX, but not used here
      Specified by:
      skippedEntity in interface ContentHandler
      Parameters:
      name -
      Throws:
      SAXException