Class JPAXmlMetaDataHandler

  • All Implemented Interfaces:
    ContentHandler, DTDHandler, EntityResolver, ErrorHandler

    public class JPAXmlMetaDataHandler
    extends org.datanucleus.metadata.xml.AbstractXmlMetaDataHandler
    Parser handler for JPA XML MetaData. Implements DefaultHandler and handles the extracting of MetaData for JPA 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.

    • Constructor Detail

      • JPAXmlMetaDataHandler

        public JPAXmlMetaDataHandler​(org.datanucleus.metadata.MetaDataManager mgr,
                                     String filename,
                                     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,
                                                                        Attributes attrs,
                                                                        boolean embeddedOnly)
        Utility to create a new class component.
        Parameters:
        pmd - The parent PackageMetaData
        attrs - The attributes
        embeddedOnly - Whether this class is embedded-only
        Returns:
        The ClassMetaData
      • newFieldObject

        protected org.datanucleus.metadata.AbstractMemberMetaData newFieldObject​(org.datanucleus.metadata.AbstractClassMetaData acmd,
                                                                                 Attributes attrs,
                                                                                 String dfgDefault)
        Utility to create a new field/property component and add it to the class as required. If the field/property already exists
        Parameters:
        acmd - The parent class MetaData
        attrs - The attributes
        dfgDefault - The default for DFG for this field if not specified
        Returns:
        The FieldMetaData/PropertyMetaData
      • newPKFieldObject

        protected org.datanucleus.metadata.AbstractMemberMetaData newPKFieldObject​(org.datanucleus.metadata.AbstractClassMetaData acmd,
                                                                                   Attributes attrs)
        Utility to create a new primary key field/property component.
        Parameters:
        acmd - The parent class MetaData
        attrs - Attributes of the "id" element
        Returns:
        The FieldMetaData/PropertyMetaData
      • newTransientFieldObject

        protected org.datanucleus.metadata.AbstractMemberMetaData newTransientFieldObject​(org.datanucleus.metadata.MetaData md,
                                                                                          String name)
        Utility to create a new transient field/property component.
        Parameters:
        md - The parent MetaData
        name - Name of the transient field
        Returns:
        The FieldMetaData/PropertyMetaData
      • newEmbeddedFieldObject

        protected org.datanucleus.metadata.AbstractMemberMetaData newEmbeddedFieldObject​(org.datanucleus.metadata.MetaData md,
                                                                                         String name)
        Utility to create a new embedded field/property component.
        Parameters:
        md - The parent MetaData
        name - Name of the embedded field
        Returns:
        The FieldMetaData/PropertyMetaData
      • newOverriddenFieldObject

        protected org.datanucleus.metadata.AbstractMemberMetaData newOverriddenFieldObject​(org.datanucleus.metadata.MetaData md,
                                                                                           Attributes attrs)
        Utility to create a new field entry for a field/property in a superclass.
        Parameters:
        md - The parent MetaData
        attrs - Attributes of the element
        Returns:
        The FieldMetaData/PropertyMetaData
      • newOverriddenEmbeddedFieldObject

        protected org.datanucleus.metadata.AbstractMemberMetaData newOverriddenEmbeddedFieldObject​(org.datanucleus.metadata.EmbeddedMetaData embmd,
                                                                                                   Attributes attrs)
        Utility to create a new field entry for a field/property in a superclass.
        Parameters:
        embmd - The parent MetaData
        attrs - Attributes of the "id" element
        Returns:
        The FieldMetaData/PropertyMetaData
      • newOverriddenEmbeddedFieldObject

        protected org.datanucleus.metadata.AbstractMemberMetaData newOverriddenEmbeddedFieldObject​(org.datanucleus.metadata.EmbeddedMetaData embmd,
                                                                                                   String memberName,
                                                                                                   String columnName)
        Recursive method to process embedded member overrides.
        Parameters:
        embmd - The parent MetaData
        memberName - The member name being overridden
        columnName - Column name to override it with
        Returns:
        The FieldMetaData/PropertyMetaData