Class JPAMetaDataManager

  • All Implemented Interfaces:
    Serializable, org.datanucleus.metadata.MetaDataManager

    public class JPAMetaDataManager
    extends org.datanucleus.metadata.MetaDataManagerImpl
    Manager of JPA MetaData information in DataNucleus. Manages the MetaData for a particular "persistence-unit".
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected List<JPAEntityGraphRegistrationListener> entityGraphListeners
      Listeners for notification of when an EntityGraph is registered.
      protected List<org.datanucleus.metadata.EventListenerMetaData> eventListeners
      EventListeners.
      protected org.datanucleus.metadata.xml.XmlMetaDataParser metaDataParser
      Parser for XML MetaData.
      • Fields inherited from class org.datanucleus.metadata.MetaDataManagerImpl

        allowAnnotations, allowMetaDataLoad, allowORM, allowXML, annotationManager, classesWithoutPersistenceInfo, classMetaDataByAppIdClassName, classMetaDataByClass, classMetaDataByDiscriminatorName, classMetaDataByEntityName, concreteSubclassNamesByClassName, defaultNullable, directSubclassesByClass, discriminatorLookupByRootClassName, fetchPlanMetaDataByName, fileMetaDataByURLString, listeners, nucleusContext, queryMetaDataByName, queryResultMetaDataByName, sequenceMetaDataByPackageSequence, storedProcQueryMetaDataByName, supportXMLNamespaces, tableGeneratorMetaDataByPackageSequence, updateLock, usableClassMetaDataByClass, userMetaDataNumber, utilisedFileMetaData, validateXML
    • Constructor Summary

      Constructors 
      Constructor Description
      JPAMetaDataManager​(org.datanucleus.NucleusContext ctxt)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      List<org.datanucleus.metadata.EventListenerMetaData> getEventListeners()
      Get the event listeners
      protected org.datanucleus.metadata.AbstractClassMetaData loadMetaDataForClass​(Class c, org.datanucleus.ClassLoaderResolver clr)
      Load the metadata for the specified class (if available).
      protected org.datanucleus.metadata.FileMetaData parseXmlFile​(URL fileURL)
      Utility to parse a file, using the "jpa" MetaData handler.
      protected void postProcessClassMetaData​(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ClassLoaderResolver clr)
      Method that will perform any necessary post-processing on metadata.
      void registerEntityGraph​(JPAEntityGraph eg)  
      void registerEntityGraphListener​(JPAEntityGraphRegistrationListener listener)  
      void registerFile​(String fileURLString, org.datanucleus.metadata.FileMetaData filemd, org.datanucleus.ClassLoaderResolver clr)
      Method to take the FileMetaData and register the relevant parts of it with the various convenience collections/maps that we use for access.
      • Methods inherited from class org.datanucleus.metadata.MetaDataManagerImpl

        abstractClassMetaDataInitialised, addAnnotationsDataToClass, addORMDataToClass, close, deregisterListener, getAnnotationManager, getApiAdapter, getClassesImplementingInterface, getClassesWithMetaData, getClassMetaDataForImplementationOfPersistentInterface, getClassMetaDataWithApplicationId, getClassNameForDiscriminatorValueWithRoot, getClassNameFromDiscriminatorValue, getConcreteSubclassesForClass, getDiscriminatorValueForClass, getEnhancedMethodNamePrefix, getFileMetaData, getImplementationNameForPersistentInterface, getMetaDataForClass, getMetaDataForClass, getMetaDataForClassInternal, getMetaDataForDiscriminator, getMetaDataForEntityName, getMetaDataForFetchPlan, getMetaDataForImplementationOfReference, getMetaDataForInterface, getMetaDataForQuery, getMetaDataForQueryResult, getMetaDataForSequence, getMetaDataForStoredProcQuery, getMetaDataForTableGenerator, getNamedQueryNames, getNucleusContext, getReferencedClasses, getReferencedClassMetaData, getScanner, getSubclassesForClass, hasMetaDataForClass, initialiseAbstractClassMetaData, initialiseClassMetaData, initialiseFileMetaData, initialiseFileMetaDataForUse, initialiseInterfaceMetaData, isClassPersistable, isClassWithoutPersistenceInfo, isDefaultNullable, isEnhancerField, isEnhancing, isFieldTypePersistable, isPersistentInterface, isPersistentInterfaceImplementation, loadAnnotationsForClass, loadClasses, loadFiles, loadJar, loadMetaDataFiles, loadPersistenceUnit, loadUserMetaData, populateAbstractClassMetaData, populateFileMetaData, processListenerLoadingCall, readMetaDataForClass, readMetaDataForMember, registerDiscriminatorValueForClass, registerFetchPlansForFile, registerImplementationOfAbstractClass, registerListener, registerMetaDataForClass, registerNamedQuery, registerPersistentInterface, registerQueriesForFile, registerQueryResultMetaDataForFile, registerSequencesForFile, registerStoredProcQueriesForFile, registerTableGeneratorsForFile, setAllowAnnotations, setAllowMetaDataLoad, setAllowXML, setDefaultNullable, setValidate, setXmlNamespaceAware, supportsORM, unloadMetaDataForClass
    • Field Detail

      • metaDataParser

        protected org.datanucleus.metadata.xml.XmlMetaDataParser metaDataParser
        Parser for XML MetaData.
      • eventListeners

        protected List<org.datanucleus.metadata.EventListenerMetaData> eventListeners
        EventListeners. Use a list to preserve ordering.
    • Constructor Detail

      • JPAMetaDataManager

        public JPAMetaDataManager​(org.datanucleus.NucleusContext ctxt)
        Constructor.
        Parameters:
        ctxt - NucleusContext that this metadata manager operates in
    • Method Detail

      • registerEntityGraph

        public void registerEntityGraph​(JPAEntityGraph eg)
      • getEventListeners

        public List<org.datanucleus.metadata.EventListenerMetaData> getEventListeners()
        Get the event listeners
        Returns:
        the event listeners
      • parseXmlFile

        protected org.datanucleus.metadata.FileMetaData parseXmlFile​(URL fileURL)
        Utility to parse a file, using the "jpa" MetaData handler.
        Specified by:
        parseXmlFile in class org.datanucleus.metadata.MetaDataManagerImpl
        Parameters:
        fileURL - URL of the file
        Returns:
        The FileMetaData for this file
      • postProcessClassMetaData

        protected void postProcessClassMetaData​(org.datanucleus.metadata.AbstractClassMetaData cmd,
                                                org.datanucleus.ClassLoaderResolver clr)
        Method that will perform any necessary post-processing on metadata. In the case of JPA we need to populate all event listener methods against the listener.
        Overrides:
        postProcessClassMetaData in class org.datanucleus.metadata.MetaDataManagerImpl
        Parameters:
        cmd - Metadata for the class
        clr - ClassLoader resolver
      • registerFile

        public void registerFile​(String fileURLString,
                                 org.datanucleus.metadata.FileMetaData filemd,
                                 org.datanucleus.ClassLoaderResolver clr)
        Method to take the FileMetaData and register the relevant parts of it with the various convenience collections/maps that we use for access.
        Specified by:
        registerFile in interface org.datanucleus.metadata.MetaDataManager
        Specified by:
        registerFile in class org.datanucleus.metadata.MetaDataManagerImpl
        Parameters:
        fileURLString - URL of the metadata file
        filemd - The File MetaData
      • loadMetaDataForClass

        protected org.datanucleus.metadata.AbstractClassMetaData loadMetaDataForClass​(Class c,
                                                                                      org.datanucleus.ClassLoaderResolver clr)
        Load the metadata for the specified class (if available). With JPA if a class hasn't been loaded at startup (from the persistence-unit) then we only check for annotations in the class itself.
        Specified by:
        loadMetaDataForClass in class org.datanucleus.metadata.MetaDataManagerImpl
        Parameters:
        c - The class
        clr - ClassLoader resolver
        Returns:
        The metadata for this class (if found)