Class JDOXmlMetaDataHandler

  • All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

    public class JDOXmlMetaDataHandler
    extends org.datanucleus.metadata.xml.AbstractXmlMetaDataHandler
    Parser handler for JDO XML MetaData. Caters for "JDO", "ORM" and "JDOQUERY" XML MetaData. Implements DefaultHandler and handles the extracting of MetaData for JDO from the XML elements/attributes. This class simply constructs the MetaData representation mirroring what is in the XML MetaData file. It has no knowledge of the class(es) that it represents, simply the information in the XML MetaData file. The knowledge of the classes is imposed on the representation at a later stage where necessary.

    Operates the parse process using a Stack. XML MetaData components are added to the stack as they are encountered and created. They are then popped off the stack when the end element is encountered.

    • Field Summary

      • Fields inherited from class org.datanucleus.metadata.xml.AbstractXmlMetaDataHandler

        charactersBuffer, clr, entityResolver, filename, metadata, mmgr, stack, validate
    • Constructor Summary

      Constructors 
      Constructor Description
      JDOXmlMetaDataHandler​(org.datanucleus.metadata.MetaDataManager mgr, java.lang.String filename, org.xml.sax.EntityResolver resolver)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void endElement​(java.lang.String uri, java.lang.String localName, java.lang.String qName)
      Handler method called at the end of an element.
      protected org.datanucleus.metadata.ClassMetaData newClassObject​(org.datanucleus.metadata.PackageMetaData pmd, org.xml.sax.Attributes attrs)
      Utility to create a new class component.
      protected org.datanucleus.metadata.FieldMetaData newFieldObject​(org.datanucleus.metadata.MetaData md, org.xml.sax.Attributes attrs)
      Utility to create a new field component.
      protected org.datanucleus.metadata.InterfaceMetaData newInterfaceObject​(org.datanucleus.metadata.PackageMetaData pmd, org.xml.sax.Attributes attrs)
      Utility to create a new interface component.
      protected org.datanucleus.metadata.PropertyMetaData newPropertyObject​(org.datanucleus.metadata.MetaData md, org.xml.sax.Attributes attrs)
      Utility to create a new property component.
      void startElement​(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attrs)
      Handler method called at the start of an element.
      • Methods inherited from class org.datanucleus.metadata.xml.AbstractXmlMetaDataHandler

        characters, error, getAttr, getAttr, getMetaData, getStack, getString, isPersistenceContext, popStack, pushStack, resolveEntity, setValidate
      • Methods inherited from class org.xml.sax.helpers.DefaultHandler

        endDocument, endPrefixMapping, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JDOXmlMetaDataHandler

        public JDOXmlMetaDataHandler​(org.datanucleus.metadata.MetaDataManager mgr,
                                     java.lang.String filename,
                                     org.xml.sax.EntityResolver resolver)
        Constructor. Protected to prevent instantiation.
        Parameters:
        mgr - the metadata manager
        filename - The name of the file to parse
        resolver - Entity Resolver to use (null if not available)
    • Method Detail

      • newClassObject

        protected org.datanucleus.metadata.ClassMetaData newClassObject​(org.datanucleus.metadata.PackageMetaData pmd,
                                                                        org.xml.sax.Attributes attrs)
        Utility to create a new class component.
        Parameters:
        pmd - The parent PackageMetaData
        attrs - The attributes
        Returns:
        The ClassMetaData
      • newInterfaceObject

        protected org.datanucleus.metadata.InterfaceMetaData newInterfaceObject​(org.datanucleus.metadata.PackageMetaData pmd,
                                                                                org.xml.sax.Attributes attrs)
        Utility to create a new interface component.
        Parameters:
        pmd - The parent PackageMetaData
        attrs - The attributes
        Returns:
        The InterfaceMetaData
      • newFieldObject

        protected org.datanucleus.metadata.FieldMetaData newFieldObject​(org.datanucleus.metadata.MetaData md,
                                                                        org.xml.sax.Attributes attrs)
        Utility to create a new field component.
        Parameters:
        md - The parent MetaData
        attrs - The attributes
        Returns:
        The FieldMetaData
      • newPropertyObject

        protected org.datanucleus.metadata.PropertyMetaData newPropertyObject​(org.datanucleus.metadata.MetaData md,
                                                                              org.xml.sax.Attributes attrs)
        Utility to create a new property component.
        Parameters:
        md - The parent MetaData
        attrs - The attributes
        Returns:
        The PropertyMetaData
      • startElement

        public void startElement​(java.lang.String uri,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes attrs)
                          throws org.xml.sax.SAXException
        Handler method called at the start of an element.
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
        Parameters:
        uri - URI of the tag
        localName - Local name
        qName - Element name
        attrs - Attributes for this element
        Throws:
        org.xml.sax.SAXException - in parsing errors
      • endElement

        public void endElement​(java.lang.String uri,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Handler method called at the end of an element.
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
        Parameters:
        uri - URI of the tag
        localName - local name
        qName - Name of element just ending
        Throws:
        org.xml.sax.SAXException - in parsing errors