Class XMLPersistenceMetaDataParser

    • Constructor Detail

      • XMLPersistenceMetaDataParser

        public XMLPersistenceMetaDataParser​(OpenJPAConfiguration conf)
        Constructor; supply configuration.
    • Method Detail

      • getConfiguration

        public OpenJPAConfiguration getConfiguration()
        Configuration supplied on construction.
      • getAnnotationParser

        public AnnotationPersistenceMetaDataParser getAnnotationParser()
        The annotation parser. When class is discovered in an XML file, we first parse any annotations present, then override with the XML.
      • setAnnotationParser

        public void setAnnotationParser​(AnnotationPersistenceMetaDataParser parser)
        The annotation parser. When class is discovered in an XML file, we first parse any annotations present, then override with the XML.
      • setRepository

        public void setRepository​(MetaDataRepository repos)
        Set the metadata repository for this parser.
      • getEnvClassLoader

        public java.lang.ClassLoader getEnvClassLoader()
        Return the environmental class loader to pass on to parsed metadata instances.
      • setEnvClassLoader

        public void setEnvClassLoader​(java.lang.ClassLoader loader)
        Set the environmental class loader to pass on to parsed metadata instances.
      • getMappingOverride

        public boolean getMappingOverride()
        Whether to allow later parses of mapping information to override earlier information for the same class. Defaults to false. Useful when a tool is mapping a class, so that .jdo file partial mapping information can be used even when mappings are stored in .orm files or other locations.
      • setMappingOverride

        public void setMappingOverride​(boolean override)
        Whether to allow later parses of mapping information to override earlier information for the same class. Defaults to false. Useful when a tool is mapping a class, so that .jdo file partial mapping information can be used even when mappings are stored in .orm files or other locations.
      • getMode

        public int getMode()
        The parse mode according to the expected document type. The mode constants act as bit flags, and therefore can be combined.
      • setMode

        public void setMode​(int mode,
                            boolean on)
        The parse mode according to the expected document type.
      • parse

        public void parse​(java.net.URL url)
                   throws java.io.IOException
        Description copied from interface: MetaDataParser
        Parse the given resource.
        Specified by:
        parse in interface MetaDataParser
        Overrides:
        parse in class XMLMetaDataParser
        Throws:
        java.io.IOException
      • parse

        public void parse​(java.io.File file)
                   throws java.io.IOException
        Description copied from interface: MetaDataParser
        Parse the given file, which may be a directory, in which case it will be scanned recursively for metadata files.
        Specified by:
        parse in interface MetaDataParser
        Overrides:
        parse in class XMLMetaDataParser
        Throws:
        java.io.IOException
      • isMetaDataMode

        protected boolean isMetaDataMode()
        Convenience method for interpreting getMode().
      • isQueryMode

        protected boolean isQueryMode()
        Convenience method for interpreting getMode().
      • isMappingMode

        protected boolean isMappingMode()
        Convenience method for interpreting getMode().
      • isMappingOverrideMode

        protected boolean isMappingOverrideMode()
        Returns true if we're in mapping mode or in metadata mode with mapping override enabled.
      • pushElement

        protected void pushElement​(java.lang.Object elem)
        Push a parse element onto the stack.
      • popElement

        protected java.lang.Object popElement()
        Pop a parse element from the stack.
      • peekElement

        protected java.lang.Object peekElement()
        Peek a parse element from the stack.
      • currentElement

        protected java.lang.Object currentElement()
        Return the current element being parsed. May be a class metadata, field metadata, query metadata, etc.
      • currentParent

        protected java.lang.Object currentParent()
        Return the tag of the current parent element.
      • isRuntime

        protected boolean isRuntime()
        Return whether we're running the parser at runtime.
      • getSchemaSource

        protected java.lang.Object getSchemaSource()
        Description copied from class: XMLMetaDataParser
        Implement to return the XML schema source for the document. Returns null by default. May return:
        • String pointing to schema URI.
        • InputStream containing schema contents.
        • InputSource containing schema contents.
        • File containing schema contents.
        • Array of any of the above elements.
        Overrides:
        getSchemaSource in class XMLMetaDataParser
      • getPackageAttributeName

        protected java.lang.String getPackageAttributeName()
        Description copied from class: CFMetaDataParser
        The attribute of the package element that holds the name, or null to use the element text. Defaults to "name".
        Overrides:
        getPackageAttributeName in class CFMetaDataParser
      • getClassAttributeName

        protected java.lang.String getClassAttributeName()
        Description copied from class: CFMetaDataParser
        The attribute of the class element that holds the name, or null to use the element text. Defaults to "name".
        Overrides:
        getClassAttributeName in class CFMetaDataParser
      • reset

        protected void reset()
        Description copied from class: CFMetaDataParser
        Override this method to clear any state and ready the parser for a new document. Subclasses should call super.reset() to clear superclass state.
        Overrides:
        reset in class CFMetaDataParser
      • startSystemElement

        protected boolean startSystemElement​(java.lang.String name,
                                             org.xml.sax.Attributes attrs)
                                      throws org.xml.sax.SAXException
        Description copied from class: CFMetaDataParser
        Override this method marking the start of an element outside of any package or class.
        Overrides:
        startSystemElement in class CFMetaDataParser
        Throws:
        org.xml.sax.SAXException
      • endSystemElement

        protected void endSystemElement​(java.lang.String name)
                                 throws org.xml.sax.SAXException
        Description copied from class: CFMetaDataParser
        Override this method marking the end of an element outside of any package or class.
        Overrides:
        endSystemElement in class CFMetaDataParser
        Throws:
        org.xml.sax.SAXException
      • startSystemMappingElement

        protected java.lang.Object startSystemMappingElement​(java.lang.String name,
                                                             org.xml.sax.Attributes attrs)
                                                      throws org.xml.sax.SAXException
        Implement to parse a mapping element outside of any class.
        Returns:
        the tag for the given element, or null to skip the element
        Throws:
        org.xml.sax.SAXException
      • endSystemMappingElement

        protected void endSystemMappingElement​(java.lang.String name)
                                        throws org.xml.sax.SAXException
        Implement to parse a mapping element outside of any class.
        Throws:
        org.xml.sax.SAXException
      • startClassElement

        protected boolean startClassElement​(java.lang.String name,
                                            org.xml.sax.Attributes attrs)
                                     throws org.xml.sax.SAXException
        Description copied from class: CFMetaDataParser
        Override this method marking the start of an element within a declared class.
        Overrides:
        startClassElement in class CFMetaDataParser
        Throws:
        org.xml.sax.SAXException
      • endClassElement

        protected void endClassElement​(java.lang.String name)
                                throws org.xml.sax.SAXException
        Description copied from class: CFMetaDataParser
        Override this method marking the end of an element within a declared class.
        Overrides:
        endClassElement in class CFMetaDataParser
        Throws:
        org.xml.sax.SAXException
      • startClassMappingElement

        protected java.lang.Object startClassMappingElement​(java.lang.String name,
                                                            org.xml.sax.Attributes attrs)
                                                     throws org.xml.sax.SAXException
        Implement to parse a mapping element within a class.
        Returns:
        the tag for the given element, or null to skip element
        Throws:
        org.xml.sax.SAXException
      • endClassMappingElement

        protected void endClassMappingElement​(java.lang.String name)
                                       throws org.xml.sax.SAXException
        Implement to parse a mapping element within a class.
        Throws:
        org.xml.sax.SAXException
      • startClass

        protected boolean startClass​(java.lang.String elem,
                                     org.xml.sax.Attributes attrs)
                              throws org.xml.sax.SAXException
        Description copied from class: CFMetaDataParser
        Start a class. Parses out class name by default. Return false to skip class element and its contents.
        Overrides:
        startClass in class CFMetaDataParser
        Throws:
        org.xml.sax.SAXException
      • endClass

        protected void endClass​(java.lang.String elem)
                         throws org.xml.sax.SAXException
        Description copied from class: CFMetaDataParser
        End a class. Parses contained text by default.
        Overrides:
        endClass in class CFMetaDataParser
        Throws:
        org.xml.sax.SAXException
      • startClassMapping

        protected void startClassMapping​(ClassMetaData mapping,
                                         boolean mappedSuper,
                                         org.xml.sax.Attributes attrs)
                                  throws org.xml.sax.SAXException
        Implement to add mapping attributes to class.
        Throws:
        org.xml.sax.SAXException
      • endClassMapping

        protected void endClassMapping​(ClassMetaData mapping)
                                throws org.xml.sax.SAXException
        Implement to finalize class mapping.
        Throws:
        org.xml.sax.SAXException
      • startSequenceGenerator

        protected boolean startSequenceGenerator​(org.xml.sax.Attributes attrs)
        Parse sequence-generator.
      • endSequenceGenerator

        protected void endSequenceGenerator()
      • startId

        protected boolean startId​(org.xml.sax.Attributes attrs)
                           throws org.xml.sax.SAXException
        Parse id.
        Throws:
        org.xml.sax.SAXException
      • endId

        protected void endId()
                      throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startEmbeddedId

        protected boolean startEmbeddedId​(org.xml.sax.Attributes attrs)
                                   throws org.xml.sax.SAXException
        Parse embedded-id.
        Throws:
        org.xml.sax.SAXException
      • endEmbeddedId

        protected void endEmbeddedId()
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startIdClass

        protected boolean startIdClass​(org.xml.sax.Attributes attrs)
                                throws org.xml.sax.SAXException
        Parse id-class.
        Throws:
        org.xml.sax.SAXException
      • endIdClass

        protected void endIdClass()
                           throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startLob

        protected boolean startLob​(org.xml.sax.Attributes attrs)
                            throws org.xml.sax.SAXException
        Parse lob.
        Throws:
        org.xml.sax.SAXException
      • endLob

        protected void endLob()
                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startGeneratedValue

        protected boolean startGeneratedValue​(org.xml.sax.Attributes attrs)
                                       throws org.xml.sax.SAXException
        Parse generated-value.
        Throws:
        org.xml.sax.SAXException
      • endGeneratedValue

        protected void endGeneratedValue()
                                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startCascade

        protected boolean startCascade​(java.lang.Object tag,
                                       org.xml.sax.Attributes attrs)
                                throws org.xml.sax.SAXException
        Lazily parse cascades.
        Throws:
        org.xml.sax.SAXException
      • setCascades

        protected void setCascades​(FieldMetaData fmd)
        Set the cached cascades into the field.
      • startFieldMapping

        protected void startFieldMapping​(FieldMetaData field,
                                         org.xml.sax.Attributes attrs)
                                  throws org.xml.sax.SAXException
        Implement to add field mapping data. Does nothing by default.
        Throws:
        org.xml.sax.SAXException
      • endFieldMapping

        protected void endFieldMapping​(FieldMetaData field)
                                throws org.xml.sax.SAXException
        Implement to finalize field mapping. Does nothing by default.
        Throws:
        org.xml.sax.SAXException
      • startVersion

        protected boolean startVersion​(org.xml.sax.Attributes attrs)
                                throws org.xml.sax.SAXException
        Parse version.
        Throws:
        org.xml.sax.SAXException
      • endVersion

        protected void endVersion()
                           throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • parseBasic

        protected void parseBasic​(FieldMetaData fmd,
                                  org.xml.sax.Attributes attrs)
                           throws org.xml.sax.SAXException
        Parse basic.
        Throws:
        org.xml.sax.SAXException
      • parseEmbedded

        protected void parseEmbedded​(FieldMetaData fmd,
                                     org.xml.sax.Attributes attrs)
                              throws org.xml.sax.SAXException
        Parse embedded.
        Throws:
        org.xml.sax.SAXException
      • parseOneToOne

        protected void parseOneToOne​(FieldMetaData fmd,
                                     org.xml.sax.Attributes attrs)
                              throws org.xml.sax.SAXException
        Parse one-to-one.
        Throws:
        org.xml.sax.SAXException
      • parseManyToOne

        protected void parseManyToOne​(FieldMetaData fmd,
                                      org.xml.sax.Attributes attrs)
                               throws org.xml.sax.SAXException
        Parse many-to-one.
        Throws:
        org.xml.sax.SAXException
      • parseManyToMany

        protected void parseManyToMany​(FieldMetaData fmd,
                                       org.xml.sax.Attributes attrs)
                                throws org.xml.sax.SAXException
        Parse many-to-many.
        Throws:
        org.xml.sax.SAXException
      • parseOneToMany

        protected void parseOneToMany​(FieldMetaData fmd,
                                      org.xml.sax.Attributes attrs)
                               throws org.xml.sax.SAXException
        Parse one-to-many.
        Throws:
        org.xml.sax.SAXException
      • setOrphanRemoval

        protected void setOrphanRemoval​(ValueMetaData vmd,
                                        boolean orphanRemoval)
      • parseElementCollection

        protected void parseElementCollection​(FieldMetaData fmd,
                                              org.xml.sax.Attributes attrs)
                                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startNamedQuery

        protected boolean startNamedQuery​(org.xml.sax.Attributes attrs)
                                   throws org.xml.sax.SAXException
        Parse named-query.
        Throws:
        org.xml.sax.SAXException
      • endNamedQuery

        protected void endNamedQuery()
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startQueryString

        protected boolean startQueryString​(org.xml.sax.Attributes attrs)
                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • endQueryString

        protected void endQueryString()
                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startQueryHint

        protected boolean startQueryHint​(org.xml.sax.Attributes attrs)
                                  throws org.xml.sax.SAXException
        Parse query-hint.
        Throws:
        org.xml.sax.SAXException
      • endQueryHint

        protected void endQueryHint()
                             throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startNamedNativeQuery

        protected boolean startNamedNativeQuery​(org.xml.sax.Attributes attrs)
                                         throws org.xml.sax.SAXException
        Parse native-named-query.
        Throws:
        org.xml.sax.SAXException
      • endNamedNativeQuery

        protected void endNamedNativeQuery()
                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • startOrderColumn

        protected boolean startOrderColumn​(org.xml.sax.Attributes attrs)
                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • classForName

        protected java.lang.Class<?> classForName​(java.lang.String name)
                                           throws org.xml.sax.SAXException
        Instantiate the given class, taking into account the default package.
        Throws:
        org.xml.sax.SAXException
      • addDeferredEmbeddableMetaData

        protected void addDeferredEmbeddableMetaData()
        Process all deferred embeddables using an unknown access type.
      • addDeferredEmbeddableMetaData

        protected void addDeferredEmbeddableMetaData​(java.lang.Class<?> embedType,
                                                     int access)
                                              throws org.xml.sax.SAXException
        Process all deferred embeddables and embeddable mapping overrides for a given class. This should only happen after the access type of the embeddable is known.
        Parameters:
        embedType - embeddable class
        access - class level access for embeddable
        Throws:
        org.xml.sax.SAXException
      • setDeferredEmbeddableAccessType

        protected void setDeferredEmbeddableAccessType​(java.lang.Class<?> embedType,
                                                       int access)
      • isDeferredEmbeddable

        protected boolean isDeferredEmbeddable​(java.lang.Class<?> embedType,
                                               MetaDataContext fmd)
      • deferEmbeddable

        protected void deferEmbeddable​(java.lang.Class<?> embedType,
                                       MetaDataContext fmd)
      • applyDeferredEmbeddableOverrides

        protected void applyDeferredEmbeddableOverrides​(java.lang.Class<?> cls)
                                                 throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • addToParseList

        public void addToParseList​(java.util.ArrayList<java.lang.Class<?>> parseList)
      • addToParseList

        public void addToParseList​(java.lang.Class<?> parentCls)
      • parseListContains

        public boolean parseListContains​(java.lang.Class<?> cls)
      • getParseList

        public java.util.ArrayList<java.lang.Class<?>> getParseList()
      • getParseClass

        public java.lang.Class<?> getParseClass()
      • startDelimitedIdentifiers

        protected boolean startDelimitedIdentifiers()
      • normalizeSequenceName

        protected java.lang.String normalizeSequenceName​(java.lang.String seqName)
      • normalizeSchemaName

        protected java.lang.String normalizeSchemaName​(java.lang.String schName)
      • normalizeCatalogName

        protected java.lang.String normalizeCatalogName​(java.lang.String catName)
      • isDuplicateClass

        protected boolean isDuplicateClass​(ClassMetaData meta)
        Determines whether the ClassMetaData has been resolved more than once. Compares the current sourceName and linenumber to the ones used to originally resolve the metadata.
        Parameters:
        meta - The ClassMetaData to inspect.
        Returns:
        true if the source was has already been resolved from a different location. Otherwise return false
      • isDuplicateQuery

        protected boolean isDuplicateQuery​(QueryMetaData meta)
        Determines whether the QueryMetaData has been resolved more than once.
        Parameters:
        meta - QueryMetaData that has already been resolved.
        Returns:
        true if the QueryMetaData was defined in a different place - e.g. another line in orm.xml.
      • parseStrategy

        protected void parseStrategy​(FieldMetaData fmd,
                                     org.xml.sax.Attributes attrs)
      • parseElementClassCriteriaAttr

        protected void parseElementClassCriteriaAttr​(FieldMetaData fmd,
                                                     org.xml.sax.Attributes attrs)
                                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • parseEagerFetchModeAttr

        protected void parseEagerFetchModeAttr​(FieldMetaData fmd,
                                               org.xml.sax.Attributes attrs)
                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • endExtendedClass

        protected void endExtendedClass​(java.lang.String elem)
                                 throws org.xml.sax.SAXException
        Overrides:
        endExtendedClass in class CFMetaDataParser
        Throws:
        org.xml.sax.SAXException