public abstract class MetaDataManagerImpl extends Object implements Serializable, MetaDataManager
Metadata can be loaded into the MetaDataManager in two ways
Acts as a registry of metadata so that metadata files don't need to be parsed multiple times. MetaData is stored as a FileMetaData, which contains PackageMetaData, which contains ClassMetaData, and so on. This maps exactly to the users model of their metadata. The users access point is getMetaDataForClass() which will check the known classes without metadata, then check the existing registered metdata, then check the valid locations for metdata files. This way, the metadata is managed from this single point.
Maintains a list of all classes that have been checked for MetaData and don't have any available. This avoids the needs to look up MetaData multiple times finding the same result. Currently this list is for all ClassMetaData objects keyed by the class name.
Users can register interest in knowing when metadata for classes are loaded by registering a listener using the addListener method. This will then notify the listener when metadata for any class is initialised. This provides the opportunity to reject the metadata where particular features are not supported. For example a StoreManager could register a listener where it doesn't support datastore identity and throw an InvalidMetaDataException. This would then filter back out to the user for the operation they invoked
MetaDataManager is intended to be thread-safe. All maps are ConcurrentHashMap to provide basic multithread usage. In addition all mutating methods make use of an update "lock" so that only one thread can update the metadata definition at any time.
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
allowAnnotations
Whether we allow annotations metadata.
|
protected boolean |
allowMetaDataLoad
Flag defining if we allow metadata load currently.
|
protected boolean |
allowORM
Whether we allow ORM XML metadata.
|
protected boolean |
allowXML
Whether we allow XML metadata.
|
protected AnnotationManager |
annotationManager
Manager for annotations.
|
protected Collection<String> |
classesWithoutPersistenceInfo
Cache of class names that are known to not have MetaData/annotations.
|
protected MultiMap |
classMetaDataByAppIdClassName
Map of class metadata, keyed by the application-id object-id class name (not SingleField).
|
protected Map<String,AbstractClassMetaData> |
classMetaDataByClass
Map of ClassMetaData, keyed by the class name.
|
protected Map<String,AbstractClassMetaData> |
classMetaDataByDiscriminatorName
Map of ClassMetaData, keyed by the class discriminator name.
|
protected Map<String,AbstractClassMetaData> |
classMetaDataByEntityName
Map of ClassMetaData, keyed by the JPA "entity name".
|
protected Map<String,Set<String>> |
concreteSubclassNamesByClassName
Cache of names of concrete subclass for a class name.
|
protected boolean |
defaultNullable
Flag defining the default nullability for fields.
|
protected Map<String,Set<String>> |
directSubclassesByClass
Cache subclass information as that is expensive to compute, keyed by class name
|
protected Map<String,org.datanucleus.metadata.MetaDataManagerImpl.DiscriminatorLookup> |
discriminatorLookupByRootClassName |
protected Map<String,FetchPlanMetaData> |
fetchPlanMetaDataByName
Map of FetchPlanMetaData, keyed by the fetch plan name.
|
protected Map<String,FileMetaData> |
fileMetaDataByURLString
Map of FileMetaData for the parsed files, keyed by the URL string.
|
protected Set<MetaDataListener> |
listeners
Listeners for metadata load.
|
protected NucleusContext |
nucleusContext
The NucleusContext that this metadata manager is operating in.
|
protected Map<String,QueryMetaData> |
queryMetaDataByName
Map of QueryMetaData, keyed by the (class name + query name).
|
protected Map<String,QueryResultMetaData> |
queryResultMetaDataByName
Map of QueryResultMetaData keyed by the name.
|
protected Map<String,SequenceMetaData> |
sequenceMetaDataByPackageSequence
Map of SequenceMetaData, keyed by the package name and sequence name.
|
protected Map<String,StoredProcQueryMetaData> |
storedProcQueryMetaDataByName
Map of StoredProcQueryMetaData, keyed by the (class name + query name).
|
protected boolean |
supportXMLNamespaces
Flag whether we should be (XML) namespace aware when parsing.
|
protected Map<String,TableGeneratorMetaData> |
tableGeneratorMetaDataByPackageSequence
Map of TableGeneratorMetaData, keyed by the package name and generator name.
|
protected Lock |
updateLock |
protected Map<String,AbstractClassMetaData> |
usableClassMetaDataByClass |
protected int |
userMetaDataNumber
Number of user metadata items.
|
protected ArrayList<FileMetaData> |
utilisedFileMetaData
Temporary list of the FileMetaData objects utilised in this call for metadata.
|
protected boolean |
validateXML
Flag whether we should validate the (XML) metadata files when parsing.
|
| Constructor and Description |
|---|
MetaDataManagerImpl(NucleusContext ctx)
Constructor, specifying the context used.
|
| Modifier and Type | Method and Description |
|---|---|
void |
abstractClassMetaDataInitialised(AbstractClassMetaData cmd)
Method called (by AbstractClassMetaData.initialise()) when a class has its metadata initialised.
|
void |
addAnnotationsDataToClass(Class c,
AbstractClassMetaData cmd,
ClassLoaderResolver clr)
Load up and add any annotations mapping info for the specified class to the stored ClassMetaData.
|
void |
addORMDataToClass(Class c,
ClassLoaderResolver clr)
Load up and add any O/R mapping info for the specified class to the stored ClassMetaData (if supported).
|
void |
close() |
void |
deregisterListener(MetaDataListener listener)
Method to deregister a listener from being notified when metadata for a class/interface is initialised.
|
AnnotationManager |
getAnnotationManager() |
ApiAdapter |
getApiAdapter() |
String[] |
getClassesImplementingInterface(String interfaceName,
ClassLoaderResolver clr)
Accessor for the list of names of classes that are declared to implement the specified interface
(using <implements> in the MetaData).
|
Collection<String> |
getClassesWithMetaData()
Accessor for the names of the classes with MetaData currently registered with this manager.
|
ClassMetaData |
getClassMetaDataForImplementationOfPersistentInterface(String interfaceName)
Accessor for the metadata for the implementation of the specified "persistent-interface".
|
Collection<AbstractClassMetaData> |
getClassMetaDataWithApplicationId(String objectIdClassName)
Accessor for the metadata for the class(es) with the specified object-id class name as PK.
|
String |
getClassNameForDiscriminatorValueWithRoot(AbstractClassMetaData rootCmd,
String discrimValue) |
String |
getClassNameFromDiscriminatorValue(String discrimValue,
DiscriminatorMetaData dismd) |
String[] |
getConcreteSubclassesForClass(String className)
Accessor for the names of all concrete subclasses of the provided class.
|
String |
getDiscriminatorValueForClass(AbstractClassMetaData cmd,
String discrimValue) |
String |
getEnhancedMethodNamePrefix() |
FileMetaData[] |
getFileMetaData()
Accessor for all FileMetaData currently managed here.
|
String |
getImplementationNameForPersistentInterface(String interfaceName)
Accessor for the implementation name for the specified "persistent-interface".
|
AbstractClassMetaData |
getMetaDataForClass(Class c,
ClassLoaderResolver clr)
Main accessor for the MetaData for a class.
|
AbstractClassMetaData |
getMetaDataForClass(String className,
ClassLoaderResolver clr)
Accessor for the MetaData for a class given the name and a loader.
|
AbstractClassMetaData |
getMetaDataForClassInternal(Class c,
ClassLoaderResolver clr)
Internal convenience method for accessing the MetaData for a class.
|
AbstractClassMetaData |
getMetaDataForDiscriminator(String discriminator)
Accessor for the MetaData for a class given the "discriminator".
|
AbstractClassMetaData |
getMetaDataForEntityName(String entityName)
Accessor for the MetaData for a class given the "entity-name".
|
FetchPlanMetaData |
getMetaDataForFetchPlan(String name)
Accessor for the MetaData for a named fetch plan.
|
ClassMetaData |
getMetaDataForImplementationOfReference(Class referenceClass,
Object implValue,
ClassLoaderResolver clr)
Accessor for the MetaData for an implementation of a reference type.
|
InterfaceMetaData |
getMetaDataForInterface(Class c,
ClassLoaderResolver clr)
Accessor for the MetaData for an interface.
|
QueryMetaData |
getMetaDataForQuery(Class cls,
ClassLoaderResolver clr,
String queryName)
Accessor for the MetaData for a named query for a class.
|
QueryResultMetaData |
getMetaDataForQueryResult(String name)
Accessor for the MetaData for a QueryResult.
|
SequenceMetaData |
getMetaDataForSequence(ClassLoaderResolver clr,
String seqName)
Accessor for the MetaData for a Sequence in a package.
|
StoredProcQueryMetaData |
getMetaDataForStoredProcQuery(Class cls,
ClassLoaderResolver clr,
String queryName)
Accessor for the MetaData for a named stored procedure query for a class.
|
TableGeneratorMetaData |
getMetaDataForTableGenerator(ClassLoaderResolver clr,
String genName)
Accessor for the MetaData for a TableGenerator in a package.
|
Set<String> |
getNamedQueryNames()
Convenience method to access the names of named queries that are registered with this manager.
|
NucleusContext |
getNucleusContext() |
List<AbstractClassMetaData> |
getReferencedClasses(String[] classNames,
ClassLoaderResolver clr)
Convenience method to get the MetaData for all referenced classes with the passed set of classes as root.
|
protected List<AbstractClassMetaData> |
getReferencedClassMetaData(AbstractClassMetaData cmd,
ClassLoaderResolver clr)
Utility to return all ClassMetaData that is referenced from the supplier class.
|
protected MetaDataScanner |
getScanner(ClassLoaderResolver clr)
Accessor for any scanner for metadata classes (optional).
|
String[] |
getSubclassesForClass(String className,
boolean includeDescendents)
Accessor for the subclasses of a particular class
|
boolean |
hasMetaDataForClass(String className)
Convenience method to check if we have metadata present for the specified class.
|
protected void |
initialiseAbstractClassMetaData(AbstractClassMetaData cmd,
ClassLoaderResolver clr)
Convenience method to initialise the MetaData for the specified class/interface.
|
protected void |
initialiseClassMetaData(ClassMetaData cmd,
Class cls,
ClassLoaderResolver clr)
Utility to initialise the MetaData for a class, using the specified class.
|
protected void |
initialiseFileMetaData(FileMetaData filemd,
ClassLoaderResolver clr,
ClassLoader primary)
Initialise all classes/interfaces in a Meta-Data file.
|
protected void |
initialiseFileMetaDataForUse(Collection<FileMetaData> fileMetaData,
ClassLoaderResolver clr)
Method to initialise the provided FileMetaData, ready for use.
|
protected void |
initialiseInterfaceMetaData(InterfaceMetaData imd,
ClassLoaderResolver clr,
ClassLoader primary)
Utility to initialise the MetaData for a interface, using the specified
class.
|
boolean |
isClassPersistable(String className)
Convenience method to return if the specified class is a known persistable class.
|
protected boolean |
isClassWithoutPersistenceInfo(String className)
Accessor for whether a class doesn't have MetaData or annotations.
|
boolean |
isDefaultNullable()
Acessor for the default nullability of fields.
|
boolean |
isEnhancerField(String fieldName) |
boolean |
isEnhancing()
Accessor for whether we are managing the enhancement process.
|
boolean |
isFieldTypePersistable(Class type)
Utility to return if this field is persistable.
|
boolean |
isPersistentDefinitionImplementation(String implName)
Convenience method to return if the passed class name is an implementation of a "persistent definition".
|
boolean |
isPersistentInterface(String name)
Convenience method to return if the passed class name is a "persistent-interface".
|
boolean |
isPersistentInterfaceImplementation(String interfaceName,
String implName)
Convenience method to return if the passed class name is an implementation of the passed "persistent-interface".
|
protected FileMetaData |
loadAnnotationsForClass(Class cls,
ClassLoaderResolver clr,
boolean register,
boolean populate)
Method to load the annotations for the specified class and return the FileMetaData containing the class.
|
FileMetaData[] |
loadClasses(String[] classNames,
ClassLoader loader)
Method to load up all metadata for the specified classes.
|
Collection<FileMetaData> |
loadFiles(String[] metadataFiles,
ClassLoaderResolver clr)
Method to load the metadata from the specified files.
|
FileMetaData[] |
loadJar(String jarFileName,
ClassLoader loader)
Initialisation method to load the metadata provided by the specified jar.
|
FileMetaData[] |
loadMetadataFiles(String[] metadataFiles,
ClassLoader loader)
Method to load up all metadata defined by the specified metadata files.
|
protected abstract AbstractClassMetaData |
loadMetaDataForClass(Class c,
ClassLoaderResolver clr)
Load the metadata for the specified class (if available).
|
FileMetaData[] |
loadPersistenceUnit(PersistenceUnitMetaData pumd,
ClassLoader loader)
Initialisation method to to load all class metadata defined by the "persistence-unit".
|
void |
loadUserMetaData(FileMetaData fileMetaData,
ClassLoader loader)
Method to load user-provided (dynamic) metadata (from the JDO MetaData API).
|
protected abstract FileMetaData |
parseFile(URL fileURL)
Utility to parse an XML metadata file.
|
protected boolean |
populateAbstractClassMetaData(AbstractClassMetaData cmd,
ClassLoaderResolver clr,
ClassLoader loader)
Convenience method to populate the MetaData for the specified class/interface.
|
protected void |
populateFileMetaData(FileMetaData filemd,
ClassLoaderResolver clr,
ClassLoader primary)
Convenience method to populate all classes/interfaces in a Meta-Data file.
|
protected void |
postProcessClassMetaData(AbstractClassMetaData cmd,
ClassLoaderResolver clr)
Method that will perform any necessary post-processing on metadata.
|
protected void |
processListenerLoadingCall() |
AbstractClassMetaData |
readMetaDataForClass(String className)
Method to access the (already known) metadata for the specified class.
|
AbstractMemberMetaData |
readMetaDataForMember(String className,
String memberName)
Method to access the (already known) metadata for the field/property of the specified class.
|
void |
registerDiscriminatorValueForClass(AbstractClassMetaData cmd,
String discrimValue) |
protected void |
registerFetchPlansForFile(FileMetaData filemd)
Convenience method to register all FetchPlans found in the passed file.
|
abstract void |
registerFile(String fileURLString,
FileMetaData filemd,
ClassLoaderResolver clr)
Method to take the FileMetaData and register the relevant parts of it with the assorted caches provided.
|
void |
registerImplementationOfAbstractClass(ClassMetaData cmd,
Class implClass,
ClassLoaderResolver clr)
Method to register the metadata for an implementation of a persistent abstract class.
|
void |
registerListener(MetaDataListener listener)
Method to register a listener to be notified when metadata for a class/interface is initialised.
|
protected void |
registerMetaDataForClass(String fullClassName,
AbstractClassMetaData cmd)
Internal method called when we want to register the metadata for a class/interface.
|
void |
registerNamedQuery(QueryMetaData qmd)
Convenience method to register a query under a name.
|
void |
registerPersistentInterface(InterfaceMetaData imd,
Class implClass,
ClassLoaderResolver clr)
Method to register a persistent interface and its implementation with the MetaData system.
|
protected void |
registerQueriesForFile(FileMetaData filemd)
Convenience method to register all queries found in the passed file.
|
protected void |
registerQueryResultMetaDataForFile(FileMetaData filemd)
Convenience method to register all table generators found in the passed file.
|
void |
registerSequencesForFile(FileMetaData filemd)
Convenience method to register all sequences found in the passed file.
|
protected void |
registerStoredProcQueriesForFile(FileMetaData filemd)
Convenience method to register all stored proc queries found in the passed file.
|
void |
registerTableGeneratorsForFile(FileMetaData filemd)
Convenience method to register all table generators found in the passed file.
|
void |
setAllowAnnotations(boolean allow) |
void |
setAllowMetaDataLoad(boolean allow) |
void |
setAllowXML(boolean allow) |
void |
setDefaultNullable(boolean defaultNullable) |
void |
setValidate(boolean validate)
Mutator for whether to validate the MetaData files for XML compliance.
|
void |
setXmlNamespaceAware(boolean aware)
Mutator for whether to support XML namespaces.
|
boolean |
supportsORM()
Accessor for whether the MetaData manager supports ORM concepts and metadata.
|
void |
unloadMetaDataForClass(String className)
Convenience method to allow the unloading of metadata, for example where the user wants to reload a class definition
and that class maybe has different metadata with the new definition.
|
protected final NucleusContext nucleusContext
protected final AnnotationManager annotationManager
protected boolean validateXML
protected boolean supportXMLNamespaces
protected boolean allowMetaDataLoad
protected boolean allowXML
protected boolean allowAnnotations
protected boolean allowORM
protected boolean defaultNullable
protected Lock updateLock
protected Collection<String> classesWithoutPersistenceInfo
protected Map<String,AbstractClassMetaData> classMetaDataByClass
protected Map<String,AbstractClassMetaData> usableClassMetaDataByClass
protected Map<String,FileMetaData> fileMetaDataByURLString
protected Map<String,AbstractClassMetaData> classMetaDataByEntityName
protected Map<String,AbstractClassMetaData> classMetaDataByDiscriminatorName
protected Map<String,Set<String>> directSubclassesByClass
protected Map<String,Set<String>> concreteSubclassNamesByClassName
protected Map<String,QueryMetaData> queryMetaDataByName
protected Map<String,StoredProcQueryMetaData> storedProcQueryMetaDataByName
protected Map<String,FetchPlanMetaData> fetchPlanMetaDataByName
protected Map<String,SequenceMetaData> sequenceMetaDataByPackageSequence
protected Map<String,TableGeneratorMetaData> tableGeneratorMetaDataByPackageSequence
protected Map<String,QueryResultMetaData> queryResultMetaDataByName
protected MultiMap classMetaDataByAppIdClassName
protected Set<MetaDataListener> listeners
protected int userMetaDataNumber
protected Map<String,org.datanucleus.metadata.MetaDataManagerImpl.DiscriminatorLookup> discriminatorLookupByRootClassName
protected ArrayList<FileMetaData> utilisedFileMetaData
public MetaDataManagerImpl(NucleusContext ctx)
ctx - context that this metadata manager operates inpublic void close()
close in interface MetaDataManagerpublic void registerListener(MetaDataListener listener)
MetaDataManagerregisterListener in interface MetaDataManagerlistener - The listenerpublic void deregisterListener(MetaDataListener listener)
MetaDataManagerderegisterListener in interface MetaDataManagerlistener - The listenerpublic String getEnhancedMethodNamePrefix()
getEnhancedMethodNamePrefix in interface MetaDataManagerpublic boolean isEnhancerField(String fieldName)
isEnhancerField in interface MetaDataManagerpublic void setAllowMetaDataLoad(boolean allow)
setAllowMetaDataLoad in interface MetaDataManagerpublic void setAllowXML(boolean allow)
setAllowXML in interface MetaDataManagerpublic void setDefaultNullable(boolean defaultNullable)
setDefaultNullable in interface MetaDataManagerpublic void setAllowAnnotations(boolean allow)
setAllowAnnotations in interface MetaDataManagerpublic boolean supportsORM()
MetaDataManagersupportsORM in interface MetaDataManagerpublic boolean isDefaultNullable()
MetaDataManagerisDefaultNullable in interface MetaDataManagerpublic boolean isEnhancing()
MetaDataManagerisEnhancing in interface MetaDataManagerpublic void setValidate(boolean validate)
MetaDataManagersetValidate in interface MetaDataManagervalidate - Whether to validatepublic void setXmlNamespaceAware(boolean aware)
MetaDataManagersetXmlNamespaceAware in interface MetaDataManageraware - Whether to be XML namespace awarepublic NucleusContext getNucleusContext()
getNucleusContext in interface MetaDataManagerpublic ApiAdapter getApiAdapter()
getApiAdapter in interface MetaDataManagerpublic AnnotationManager getAnnotationManager()
getAnnotationManager in interface MetaDataManagerpublic FileMetaData[] loadMetadataFiles(String[] metadataFiles, ClassLoader loader)
MetaDataManagerloadMetadataFiles in interface MetaDataManagermetadataFiles - The metadata filesloader - ClassLoader to use in loading the metadata (if any)public FileMetaData[] loadClasses(String[] classNames, ClassLoader loader)
MetaDataManagerloadClasses in interface MetaDataManagerclassNames - The class namesloader - ClassLoader to use in loading the classes (if any)public FileMetaData[] loadJar(String jarFileName, ClassLoader loader)
MetaDataManagerloadJar in interface MetaDataManagerjarFileName - Name of the jar fileloader - ClassLoader to use in loading of the jar (if any)public FileMetaData[] loadPersistenceUnit(PersistenceUnitMetaData pumd, ClassLoader loader)
MetaDataManagerloadPersistenceUnit in interface MetaDataManagerpumd - The MetaData for this "persistence-unit"loader - ClassLoader to use in loading of the persistence unit (if any)public void loadUserMetaData(FileMetaData fileMetaData, ClassLoader loader)
MetaDataManagerloadUserMetaData in interface MetaDataManagerfileMetaData - FileMetaData to register/populate/initialiseloader - ClassLoader to use in loading the metadata (if any)protected abstract AbstractClassMetaData loadMetaDataForClass(Class c, ClassLoaderResolver clr)
c - The classclr - ClassLoader resolverpublic void unloadMetaDataForClass(String className)
MetaDataManagerunloadMetaDataForClass in interface MetaDataManagerclassName - Name of the classprotected MetaDataScanner getScanner(ClassLoaderResolver clr)
clr - The classloader resolverprotected void initialiseFileMetaDataForUse(Collection<FileMetaData> fileMetaData, ClassLoaderResolver clr)
fileMetaData - Collection of FileMetaDataclr - ClassLoader resolverNucleusUserException - thrown if an error occurs during the populate/initialise of the supplied metadata.public Collection<FileMetaData> loadFiles(String[] metadataFiles, ClassLoaderResolver clr)
MetaDataManagerloadFiles in interface MetaDataManagermetadataFiles - array of MetaData filesclr - ClassLoader resolverpublic boolean isClassPersistable(String className)
MetaDataManagerisClassPersistable in interface MetaDataManagerclassName - Name of the classpublic FileMetaData[] getFileMetaData()
MetaDataManagergetFileMetaData in interface MetaDataManagerpublic Collection<String> getClassesWithMetaData()
MetaDataManagergetClassesWithMetaData in interface MetaDataManagerpublic boolean hasMetaDataForClass(String className)
MetaDataManagerhasMetaDataForClass in interface MetaDataManagerclassName - The name of the class to checkprotected boolean isClassWithoutPersistenceInfo(String className)
className - Name of the classpublic Collection<AbstractClassMetaData> getClassMetaDataWithApplicationId(String objectIdClassName)
MetaDataManagergetClassMetaDataWithApplicationId in interface MetaDataManagerobjectIdClassName - The object-id class namepublic AbstractClassMetaData getMetaDataForClass(String className, ClassLoaderResolver clr)
MetaDataManagergetMetaDataForClass in interface MetaDataManagerclassName - Name of the class to find MetaData forclr - ClassLoaderResolver resolver for use in loading the class.public AbstractClassMetaData getMetaDataForClass(Class c, ClassLoaderResolver clr)
MetaDataManagergetMetaDataForClass in interface MetaDataManagerc - The class to find MetaData forclr - the ClassLoaderResolverprotected void processListenerLoadingCall()
public AbstractClassMetaData getMetaDataForEntityName(String entityName)
MetaDataManagergetMetaDataForEntityName in interface MetaDataManagerentityName - The entity name to find MetaData forpublic AbstractClassMetaData getMetaDataForDiscriminator(String discriminator)
MetaDataManagergetMetaDataForDiscriminator in interface MetaDataManagerdiscriminator - The discriminator name to find MetaData forpublic AbstractClassMetaData readMetaDataForClass(String className)
MetaDataManagerreadMetaDataForClass in interface MetaDataManagerclassName - Name of the classpublic AbstractMemberMetaData readMetaDataForMember(String className, String memberName)
MetaDataManagerreadMetaDataForMember in interface MetaDataManagerclassName - Name of the classmemberName - Name of the field/propertypublic AbstractClassMetaData getMetaDataForClassInternal(Class c, ClassLoaderResolver clr)
MetaDataManagergetMetaDataForClassInternal in interface MetaDataManagerc - The class to find MetaData forclr - ClassLoader resolverprotected void registerMetaDataForClass(String fullClassName, AbstractClassMetaData cmd)
fullClassName - Name of the classcmd - The metadatapublic String[] getClassesImplementingInterface(String interfaceName, ClassLoaderResolver clr)
MetaDataManagergetClassesImplementingInterface in interface MetaDataManagerinterfaceName - Name of the interfaceclr - The ClassLoaderResolverpublic void addORMDataToClass(Class c, ClassLoaderResolver clr)
addORMDataToClass in interface MetaDataManagerc - The classclr - ClassLoader resolverpublic void addAnnotationsDataToClass(Class c, AbstractClassMetaData cmd, ClassLoaderResolver clr)
addAnnotationsDataToClass in interface MetaDataManagerc - The classcmd - the metadata to add annotation toclr - ClassLoader resolverpublic ClassMetaData getMetaDataForImplementationOfReference(Class referenceClass, Object implValue, ClassLoaderResolver clr)
MetaDataManagergetMetaDataForImplementationOfReference in interface MetaDataManagerreferenceClass - The reference class to find MetaData forimplValue - Object of an implementation class, to return if possible (null=ignore)clr - ClassLoader resolverpublic QueryMetaData getMetaDataForQuery(Class cls, ClassLoaderResolver clr, String queryName)
MetaDataManagergetMetaDataForQuery in interface MetaDataManagercls - The class which has the query defined for itclr - the ClassLoaderResolverqueryName - Name of the querypublic Set<String> getNamedQueryNames()
MetaDataManagergetNamedQueryNames in interface MetaDataManagerpublic StoredProcQueryMetaData getMetaDataForStoredProcQuery(Class cls, ClassLoaderResolver clr, String queryName)
MetaDataManagergetMetaDataForStoredProcQuery in interface MetaDataManagercls - The class which has the query defined for itclr - the ClassLoaderResolverqueryName - Name of the (stored proc) querypublic FetchPlanMetaData getMetaDataForFetchPlan(String name)
MetaDataManagergetMetaDataForFetchPlan in interface MetaDataManagername - Name of the fetch planpublic SequenceMetaData getMetaDataForSequence(ClassLoaderResolver clr, String seqName)
MetaDataManagergetMetaDataForSequence in interface MetaDataManagerclr - the ClassLoaderResolverseqName - Name of the package (fully qualified if necessary)public TableGeneratorMetaData getMetaDataForTableGenerator(ClassLoaderResolver clr, String genName)
MetaDataManagergetMetaDataForTableGenerator in interface MetaDataManagerclr - the ClassLoaderResolvergenName - Name of the package (fully qualified if necessary)public QueryResultMetaData getMetaDataForQueryResult(String name)
MetaDataManagergetMetaDataForQueryResult in interface MetaDataManagername - Name of the query resultpublic InterfaceMetaData getMetaDataForInterface(Class c, ClassLoaderResolver clr)
MetaDataManagergetMetaDataForInterface in interface MetaDataManagerc - The interface to find MetaData forclr - the ClassLoaderResolverpublic boolean isPersistentInterface(String name)
MetaDataManagerisPersistentInterface in interface MetaDataManagername - Name if the interfacepublic boolean isPersistentInterfaceImplementation(String interfaceName, String implName)
MetaDataManagerisPersistentInterfaceImplementation in interface MetaDataManagerinterfaceName - Name of the persistent interfaceimplName - The implementation namepublic boolean isPersistentDefinitionImplementation(String implName)
MetaDataManagerisPersistentDefinitionImplementation in interface MetaDataManagerimplName - The implementation namepublic String getImplementationNameForPersistentInterface(String interfaceName)
MetaDataManagergetImplementationNameForPersistentInterface in interface MetaDataManagerinterfaceName - The name of the persistent interfacepublic ClassMetaData getClassMetaDataForImplementationOfPersistentInterface(String interfaceName)
MetaDataManagergetClassMetaDataForImplementationOfPersistentInterface in interface MetaDataManagerinterfaceName - The name of the persistent interfacepublic void registerPersistentInterface(InterfaceMetaData imd, Class implClass, ClassLoaderResolver clr)
MetaDataManagerregisterPersistentInterface in interface MetaDataManagerimd - MetaData for the interfaceimplClass - The implementation classclr - ClassLoader Resolver to usepublic void registerImplementationOfAbstractClass(ClassMetaData cmd, Class implClass, ClassLoaderResolver clr)
MetaDataManagerregisterImplementationOfAbstractClass in interface MetaDataManagercmd - MetaData for the abstract classimplClass - The implementation classclr - ClassLoader resolverprotected abstract FileMetaData parseFile(URL fileURL)
fileURL - URL of the filepublic abstract void registerFile(String fileURLString, FileMetaData filemd, ClassLoaderResolver clr)
MetaDataManagerregisterFile in interface MetaDataManagerfileURLString - URL of the metadata filefilemd - The File MetaDataclr - ClassLoader resolverpublic void registerDiscriminatorValueForClass(AbstractClassMetaData cmd, String discrimValue)
registerDiscriminatorValueForClass in interface MetaDataManagerpublic String getClassNameForDiscriminatorValueWithRoot(AbstractClassMetaData rootCmd, String discrimValue)
getClassNameForDiscriminatorValueWithRoot in interface MetaDataManagerpublic String getDiscriminatorValueForClass(AbstractClassMetaData cmd, String discrimValue)
getDiscriminatorValueForClass in interface MetaDataManagerpublic String getClassNameFromDiscriminatorValue(String discrimValue, DiscriminatorMetaData dismd)
getClassNameFromDiscriminatorValue in interface MetaDataManagerpublic void registerSequencesForFile(FileMetaData filemd)
registerSequencesForFile in interface MetaDataManagerfilemd - MetaData for the filepublic void registerTableGeneratorsForFile(FileMetaData filemd)
registerTableGeneratorsForFile in interface MetaDataManagerfilemd - MetaData for the fileprotected void registerQueryResultMetaDataForFile(FileMetaData filemd)
filemd - MetaData for the filepublic void registerNamedQuery(QueryMetaData qmd)
registerNamedQuery in interface MetaDataManagerqmd - Query metadataprotected void registerQueriesForFile(FileMetaData filemd)
filemd - MetaData for the fileprotected void registerStoredProcQueriesForFile(FileMetaData filemd)
filemd - MetaData for the fileprotected void registerFetchPlansForFile(FileMetaData filemd)
filemd - MetaData for the fileprotected void populateFileMetaData(FileMetaData filemd, ClassLoaderResolver clr, ClassLoader primary)
filemd - The MetaData fileclr - Class Loader to use in populationprimary - the primary ClassLoader to use (or null)protected void initialiseFileMetaData(FileMetaData filemd, ClassLoaderResolver clr, ClassLoader primary)
filemd - the FileMetaDataclr - ClassLoader resolver to useprimary - the primary ClassLoader to use (or null)protected void initialiseClassMetaData(ClassMetaData cmd, Class cls, ClassLoaderResolver clr)
cmd - The classes metadatacls - The class to use as a basis for initialisationclr - ClassLoader resolver to useNucleusUserException - if the class is not enhancedprotected void initialiseInterfaceMetaData(InterfaceMetaData imd, ClassLoaderResolver clr, ClassLoader primary)
imd - The interface metadataclr - The loader of the interfaceprimary - the primary ClassLoader to use (or null)protected FileMetaData loadAnnotationsForClass(Class cls, ClassLoaderResolver clr, boolean register, boolean populate)
cls - The classclr - ClassLoader resolverregister - Whether to register the datapopulate - Whether to populate the dataprotected void postProcessClassMetaData(AbstractClassMetaData cmd, ClassLoaderResolver clr)
cmd - Metadata for the classclr - ClassLoader resolverprotected boolean populateAbstractClassMetaData(AbstractClassMetaData cmd, ClassLoaderResolver clr, ClassLoader loader)
cmd - MetaDataclr - ClassLoader resolverloader - The primary class loaderprotected void initialiseAbstractClassMetaData(AbstractClassMetaData cmd, ClassLoaderResolver clr)
cmd - MetaDataclr - ClassLoaderResolverpublic void abstractClassMetaDataInitialised(AbstractClassMetaData cmd)
abstractClassMetaDataInitialised in interface MetaDataManagercmd - Metadata that has been initialisedpublic String[] getConcreteSubclassesForClass(String className)
MetaDataManagergetConcreteSubclassesForClass in interface MetaDataManagerclassName - Name of the class that we want the known concrete subclasses for.public String[] getSubclassesForClass(String className, boolean includeDescendents)
MetaDataManagergetSubclassesForClass in interface MetaDataManagerclassName - Name of the class that we want the known subclasses for.includeDescendents - Whether to include subclasses of subclasses etcpublic List<AbstractClassMetaData> getReferencedClasses(String[] classNames, ClassLoaderResolver clr)
MetaDataManagergetReferencedClasses in interface MetaDataManagerclassNames - Names of the root classesclr - ClassLoader resolverprotected List<AbstractClassMetaData> getReferencedClassMetaData(AbstractClassMetaData cmd, ClassLoaderResolver clr)
cmd - The origin class's MetaData.clr - ClassLoaderResolver resolver for loading any classes.public boolean isFieldTypePersistable(Class type)
MetaDataManagerisFieldTypePersistable in interface MetaDataManagertype - Type of the field (for when "type" is not yet set)Copyright © 2019. All rights reserved.