Package org.datanucleus.api.jpa.metadata
Class JPAMetaDataManager
- java.lang.Object
-
- org.datanucleus.metadata.MetaDataManagerImpl
-
- org.datanucleus.api.jpa.metadata.JPAMetaDataManager
-
- All Implemented Interfaces:
Serializable,org.datanucleus.metadata.MetaDataManager
public class JPAMetaDataManager extends org.datanucleus.metadata.MetaDataManagerImplManager 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>entityGraphListenersListeners for notification of when an EntityGraph is registered.protected List<org.datanucleus.metadata.EventListenerMetaData>eventListenersEventListeners.protected org.datanucleus.metadata.xml.XmlMetaDataParsermetaDataParserParser 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 listenersprotected org.datanucleus.metadata.AbstractClassMetaDataloadMetaDataForClass(Class c, org.datanucleus.ClassLoaderResolver clr)Load the metadata for the specified class (if available).protected org.datanucleus.metadata.FileMetaDataparseXmlFile(URL fileURL)Utility to parse a file, using the "jpa" MetaData handler.protected voidpostProcessClassMetaData(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ClassLoaderResolver clr)Method that will perform any necessary post-processing on metadata.voidregisterEntityGraph(JPAEntityGraph eg)voidregisterEntityGraphListener(JPAEntityGraphRegistrationListener listener)voidregisterFile(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.
-
entityGraphListeners
protected List<JPAEntityGraphRegistrationListener> entityGraphListeners
Listeners for notification of when an EntityGraph is registered.
-
-
Method Detail
-
registerEntityGraphListener
public void registerEntityGraphListener(JPAEntityGraphRegistrationListener listener)
-
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:
parseXmlFilein classorg.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:
postProcessClassMetaDatain classorg.datanucleus.metadata.MetaDataManagerImpl- Parameters:
cmd- Metadata for the classclr- 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:
registerFilein interfaceorg.datanucleus.metadata.MetaDataManager- Specified by:
registerFilein classorg.datanucleus.metadata.MetaDataManagerImpl- Parameters:
fileURLString- URL of the metadata filefilemd- 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:
loadMetaDataForClassin classorg.datanucleus.metadata.MetaDataManagerImpl- Parameters:
c- The classclr- ClassLoader resolver- Returns:
- The metadata for this class (if found)
-
-