public class MetaDataRepository extends java.lang.Object implements PCRegistry.RegisterClassListener, Configurable, Closeable, MetaDataModes, java.io.Serializable
Modifier and Type | Field and Description |
---|---|
protected boolean |
_locking |
protected boolean |
_preload |
protected boolean |
_preloadComplete |
protected static java.lang.Class<?>[] |
EMPTY_CLASSES |
protected FieldMetaData[] |
EMPTY_FIELDS |
protected ClassMetaData[] |
EMPTY_METAS |
protected static NonPersistentMetaData[] |
EMPTY_NON_PERSISTENT |
protected Order[] |
EMPTY_ORDERS |
protected XMLMetaData[] |
EMPTY_XMLMETAS |
static int |
VALIDATE_MAPPING
Bit flag to validate mappings.
|
static int |
VALIDATE_META
Bit flag to validate metadata.
|
static int |
VALIDATE_NONE
Constant to not validate any metadata.
|
static int |
VALIDATE_RUNTIME
Bit flag for runtime validation.
|
static int |
VALIDATE_UNENHANCED
Bit flag to validate unenhanced metadata only.
|
MODE_ALL, MODE_ANN_MAPPING, MODE_MAPPING, MODE_MAPPING_INIT, MODE_META, MODE_NONE, MODE_QUERY
Constructor and Description |
---|
MetaDataRepository()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
addDeclaredInterfaceImpl(ClassMetaData meta,
java.lang.Class<?> iface)
Add the given metadata as declared interface implementation.
|
ClassMetaData |
addMetaData(java.lang.Class<?> cls)
Create a new metadata, populate it with default information, add it to the repository, and
return it.
|
ClassMetaData |
addMetaData(java.lang.Class<?> cls,
int access)
Create a new metadata, populate it with default information, add it to the repository, and
return it.
|
ClassMetaData |
addMetaData(java.lang.Class<?> cls,
int access,
boolean ignoreTransient)
Create a new metadata, populate it with default information, add it to the repository, and
return it.
|
NonPersistentMetaData |
addNonMappedInterface(java.lang.Class<?> iface)
Add the given non-mapped interface to the repository.
|
NonPersistentMetaData |
addPersistenceAware(java.lang.Class<?> cls)
Add the given class as persistence-aware.
|
QueryMetaData |
addQueryMetaData(java.lang.Class<?> cls,
java.lang.String name)
Add a new query metadata to the repository and return it.
|
SequenceMetaData |
addSequenceMetaData(java.lang.String name)
Add a new sequence metadata to the repository and return it.
|
void |
addSystemListener(java.lang.Object listener)
Add the given system lifecycle listener.
|
XMLClassMetaData |
addXMLClassMetaData(java.lang.Class<?> type)
Create a new metadata, populate it with default information, add it to the repository, and
return it.
|
void |
clear()
Clear the cache of parsed metadata.
|
void |
close()
Free the resources used by this repository.
|
void |
endConfiguration()
Invoked upon completion of bean property configuration for this object.
|
java.util.Collection<java.lang.String> |
getAliasNames() |
ClassMetaData |
getCachedMetaData(java.lang.Class<?> cls)
Return the cached metadata for the given class, without any resolution.
|
ClassMetaData |
getCachedMetaData(java.lang.String typeName)
This method returns the ClassMetaData whose described type name matches the typeName parameter.
|
QueryMetaData |
getCachedQueryMetaData(java.lang.Class<?> cls,
java.lang.String name) |
QueryMetaData |
getCachedQueryMetaData(java.lang.String name)
Return the cached query metadata for the given name.
|
SequenceMetaData |
getCachedSequenceMetaData(java.lang.String name)
Return the cached a sequence metadata for the given name.
|
XMLMetaData |
getCachedXMLMetaData(java.lang.Class<?> cls)
Return the cached XMLClassMetaData for the given class Return null if none.
|
java.lang.String |
getClosestAliasName(java.lang.String alias) |
OpenJPAConfiguration |
getConfiguration()
Return the configuration for the repository.
|
ClassMetaData[] |
getImplementorMetaDatas(java.lang.Class<?> cls,
java.lang.ClassLoader envLoader,
boolean mustExist)
Return all least-derived metadatas with some mapped assignable type that implement the given
class.
|
(package private) InterfaceImplGenerator |
getImplGenerator() |
Log |
getLog()
Return the metadata log.
|
ClassMetaData |
getMetaData(java.lang.Class<?> cls,
java.lang.ClassLoader envLoader,
boolean mustExist)
Return the metadata for the given class.
|
ClassMetaData |
getMetaData(java.lang.Object oid,
java.lang.ClassLoader envLoader,
boolean mustExist)
Return the least-derived class metadata for the given application identity object.
|
ClassMetaData |
getMetaData(java.lang.String alias,
java.lang.ClassLoader envLoader,
boolean mustExist)
Return the metadata for the given alias name.
|
MetaDataFactory |
getMetaDataFactory()
The I/O used to load metadata.
|
ClassMetaData[] |
getMetaDatas()
Return all the metadata instances currently in the repository.
|
java.lang.Class<?> |
getMetaModel(java.lang.Class<?> entity,
boolean load)
Gets the meta class corresponding to the given class.
|
java.lang.Class<?> |
getMetaModel(ClassMetaData meta,
boolean load)
Gets the meta class corresponding to the given persistent class.
|
NonPersistentMetaData |
getNonMappedInterface(java.lang.Class<?> iface)
Gets the metadata corresponding to the given non-mapped interface.
|
NonPersistentMetaData[] |
getNonMappedInterfaces()
Gets the corresponding metadatas for all registered, non-mapped interfaces
|
FieldMetaData |
getOrderByField(ClassMetaData meta,
java.lang.String orderBy) |
(package private) java.util.Collection<java.lang.Class<?>> |
getPCSubclasses(java.lang.Class<?> cls)
Return all known subclasses for the given class mapping.
|
NonPersistentMetaData |
getPersistenceAware(java.lang.Class<?> cls)
Gets the metadata corresponding to the given persistence-aware class.
|
NonPersistentMetaData[] |
getPersistenceAwares()
Gets all the metadatas for persistence-aware classes
|
java.util.Set<java.lang.String> |
getPersistentTypeNames(boolean devpath,
java.lang.ClassLoader envLoader)
Return the set of configured persistent classes, or null if the user did not configure any.
|
boolean |
getPreload()
Sets whether this repository will load all known persistent classes at initialization.
|
protected static java.lang.Object |
getQueryKey(java.lang.Class<?> cls,
java.lang.String name)
Return a unique key for a given class / name.
|
QueryMetaData |
getQueryMetaData(java.lang.Class<?> cls,
java.lang.String name,
java.lang.ClassLoader envLoader,
boolean mustExist)
Return query metadata for the given class, name, and classloader.
|
QueryMetaData[] |
getQueryMetaDatas()
Return the cached query metadata.
|
int |
getResolve()
The metadata resolution mode.
|
(package private) SequenceMetaData |
getSequenceMetaData(ClassMetaData context,
java.lang.String name,
boolean mustExist)
Used internally by metadata to retrieve sequence metadatas based on possibly-unqualified
sequence name.
|
SequenceMetaData |
getSequenceMetaData(java.lang.String name,
java.lang.ClassLoader envLoader,
boolean mustExist)
Return sequence metadata for the given name and classloader.
|
SequenceMetaData[] |
getSequenceMetaDatas()
Return the cached sequence metadata.
|
int |
getSourceMode()
The source mode determining what metadata to load.
|
LifecycleEventManager.ListenerList |
getSystemListeners()
Return the system lifecycle listeners
|
int |
getValidate()
The metadata validation level.
|
XMLMetaData |
getXMLMetaData(java.lang.Class<?> cls)
Return XML metadata for a given field metadata
|
boolean |
is_systemListenersActivated()
Whether any system (default) listeners have been registered.
|
java.util.Collection<java.lang.Class<?>> |
loadPersistentTypes(boolean devpath,
java.lang.ClassLoader envLoader)
Load the persistent classes named in configuration.
|
java.util.Collection<java.lang.Class<?>> |
loadPersistentTypes(boolean devpath,
java.lang.ClassLoader envLoader,
boolean mustExist)
Load the persistent classes named in configuration.
|
static boolean |
needsPreload(Options o) |
protected ClassMetaData |
newClassMetaData(java.lang.Class<?> type)
Create a new class metadata instance.
|
protected ClassMetaData[] |
newClassMetaDataArray(int length)
Create a new array of the proper class metadata subclass.
|
protected ClassMetaData |
newEmbeddedClassMetaData(ValueMetaData owner)
Create a new embedded class metadata instance.
|
protected FieldMetaData |
newFieldMetaData(java.lang.String name,
java.lang.Class<?> type,
ClassMetaData owner)
Create a new field metadata instance.
|
protected FieldMetaData[] |
newFieldMetaDataArray(int length)
Create a new array of the proper field metadata subclass.
|
protected Order |
newOrder(FieldMetaData owner,
java.lang.String name,
boolean asc)
Create an
Order for the given field and declaration. |
protected Order[] |
newOrderArray(int size)
Create an array of orders of the given size.
|
protected QueryMetaData |
newQueryMetaData(java.lang.Class<?> cls,
java.lang.String name)
Create a new query metadata instance.
|
protected Order |
newRelatedFieldOrder(FieldMetaData owner,
FieldMetaData rel,
boolean asc)
Order by a field of the related type.
|
protected SequenceMetaData |
newSequenceMetaData(java.lang.String name)
Create a new sequence metadata instance.
|
protected ValueMetaData |
newValueMetaData(FieldMetaData owner)
Create a new value metadata instance.
|
protected Order |
newValueOrder(FieldMetaData owner,
boolean asc)
Order by the field value.
|
protected XMLClassMetaData |
newXMLClassMetaData(java.lang.Class<?> type)
Create a new xml class metadata
|
protected XMLMetaData[] |
newXMLClassMetaDataArray(int length)
Create a new array of the proper xml class metadata subclass.
|
XMLFieldMetaData |
newXMLFieldMetaData(java.lang.Class<?> type,
java.lang.String name)
Create a new xml field meta, add it to the fieldMap in the given xml class metadata
|
void |
preload()
If the openjpa.MetaDataRepository plugin value Preload=true is set, this method will load all
MetaData for all persistent classes and will remove locking from this class.
|
protected void |
prepareMapping(ClassMetaData meta)
Prepare metadata for mapping resolution.
|
(package private) java.lang.Class<?>[] |
processRegisteredClasses(java.lang.ClassLoader envLoader)
Updates our datastructures with the latest registered classes.
|
void |
register(java.lang.Class<?> cls) |
(package private) void |
registerAlias(java.lang.Class<?> cls)
Register the given class to the list of known aliases.
|
void |
registerAlias(java.lang.String alias,
java.lang.Class<?> cls) |
boolean |
removeMetaData(java.lang.Class<?> cls)
Remove a metadata instance from the repository.
|
boolean |
removeMetaData(ClassMetaData meta)
Remove a metadata instance from the repository.
|
boolean |
removeNonMappedInterface(java.lang.Class<?> iface)
Remove a non-mapped interface from the repository
|
boolean |
removePersistenceAware(java.lang.Class<?> cls)
Remove a persitence-aware class from the repository
|
boolean |
removeQueryMetaData(java.lang.Class<?> cls,
java.lang.String name)
Remove query metadata for the given class name if in the repository.
|
boolean |
removeQueryMetaData(QueryMetaData meta)
Remove the given query metadata from the repository.
|
boolean |
removeSequenceMetaData(SequenceMetaData meta)
Remove the given sequence metadata from the repository.
|
boolean |
removeSequenceMetaData(java.lang.String name)
Remove sequence metadata for the name if in the repository.
|
boolean |
removeSystemListener(java.lang.Object listener)
Remove the given system lifecycle listener.
|
QueryMetaData |
searchQueryMetaDataByName(java.lang.String name)
Searches all cached query metadata by name.
|
void |
setConfiguration(Configuration conf)
Invoked prior to setting bean properties.
|
(package private) void |
setInterfaceImpl(ClassMetaData meta,
java.lang.Class<?> impl)
Set the implementation for the given managed interface.
|
void |
setMetaDataFactory(MetaDataFactory factory)
The I/O used to load metadata.
|
void |
setMetaModel(java.lang.Class<?> m2)
Puts the meta class corresponding to the given entity class.
|
void |
setMetaModel(ClassMetaData meta,
java.lang.Class<?> m2)
Puts the meta class corresponding to the given persistent class.
|
void |
setPreload(boolean l)
Sets whether this repository will load all known persistent classes at initialization.
|
void |
setResolve(int mode)
The metadata resolution mode.
|
void |
setResolve(int mode,
boolean on)
The metadata resolution mode.
|
void |
setSourceMode(int mode)
The source mode determining what metadata to load.
|
void |
setSourceMode(int mode,
boolean on)
The source mode determining what metadata to load.
|
void |
setValidate(int validate)
The metadata validation level.
|
void |
setValidate(int validate,
boolean on)
The metadata validation level.
|
void |
startConfiguration()
Invoked before bean property configuration is begun on this object.
|
public static final int VALIDATE_NONE
public static final int VALIDATE_META
public static final int VALIDATE_MAPPING
public static final int VALIDATE_UNENHANCED
public static final int VALIDATE_RUNTIME
protected static final java.lang.Class<?>[] EMPTY_CLASSES
protected static final NonPersistentMetaData[] EMPTY_NON_PERSISTENT
protected final ClassMetaData[] EMPTY_METAS
protected final FieldMetaData[] EMPTY_FIELDS
protected final Order[] EMPTY_ORDERS
protected final XMLMetaData[] EMPTY_XMLMETAS
protected boolean _preload
protected boolean _preloadComplete
protected boolean _locking
public MetaDataRepository()
Configurable
.public OpenJPAConfiguration getConfiguration()
public Log getLog()
public MetaDataFactory getMetaDataFactory()
public void setMetaDataFactory(MetaDataFactory factory)
public int getValidate()
VALIDATE_META | VALIDATE_UNENHANCED
.public void setValidate(int validate)
VALIDATE_META | VALIDATE_UNENHANCED
.public void setValidate(int validate, boolean on)
VALIDATE_META | VALIDATE_MAPPING | VALIDATE_UNENHANCED
.public int getResolve()
MODE_META | MODE_MAPPING
.public void setResolve(int mode)
MODE_META | MODE_MAPPING
.public void setResolve(int mode, boolean on)
MODE_META | MODE_MAPPING
.public int getSourceMode()
MODE_META | MODE_MAPPING | MODE_QUERY
.public void setSourceMode(int mode)
MODE_META | MODE_MAPPING | MODE_QUERY
.public void setSourceMode(int mode, boolean on)
MODE_META | MODE_MAPPING | MODE_QUERY
.public boolean getPreload()
public void setPreload(boolean l)
public void preload()
public ClassMetaData getMetaData(java.lang.Class<?> cls, java.lang.ClassLoader envLoader, boolean mustExist)
cls
- the class to retrieve metadata forenvLoader
- the environmental class loader, if anymustExist
- if true, throws a MetaDataException
if no metadata is foundpublic ClassMetaData getMetaData(java.lang.String alias, java.lang.ClassLoader envLoader, boolean mustExist)
alias
- the alias to class to retrieve metadata forenvLoader
- the environmental class loader, if anymustExist
- if true, throws a MetaDataException
if no metadata is foundClassMetaData.getTypeAlias()
public java.lang.String getClosestAliasName(java.lang.String alias)
public java.util.Collection<java.lang.String> getAliasNames()
protected void prepareMapping(ClassMetaData meta)
ClassMetaData.defineSuperclassFields(boolean)
.public ClassMetaData[] getMetaDatas()
public ClassMetaData getCachedMetaData(java.lang.Class<?> cls)
public ClassMetaData addMetaData(java.lang.Class<?> cls)
public ClassMetaData addMetaData(java.lang.Class<?> cls, int access)
access
- the access type to use in populating metadatapublic ClassMetaData addMetaData(java.lang.Class<?> cls, int access, boolean ignoreTransient)
access
- the access type to use in populating metadataprotected ClassMetaData newClassMetaData(java.lang.Class<?> type)
protected ClassMetaData[] newClassMetaDataArray(int length)
protected FieldMetaData newFieldMetaData(java.lang.String name, java.lang.Class<?> type, ClassMetaData owner)
protected FieldMetaData[] newFieldMetaDataArray(int length)
protected XMLMetaData[] newXMLClassMetaDataArray(int length)
protected ClassMetaData newEmbeddedClassMetaData(ValueMetaData owner)
protected ValueMetaData newValueMetaData(FieldMetaData owner)
protected Order newOrder(FieldMetaData owner, java.lang.String name, boolean asc)
Order
for the given field and declaration. This method delegates to
newRelatedFieldOrder(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData, boolean)
and #newValueFieldOrder
by default.public FieldMetaData getOrderByField(ClassMetaData meta, java.lang.String orderBy)
protected Order newValueOrder(FieldMetaData owner, boolean asc)
protected Order newRelatedFieldOrder(FieldMetaData owner, FieldMetaData rel, boolean asc)
protected Order[] newOrderArray(int size)
public boolean removeMetaData(ClassMetaData meta)
public boolean removeMetaData(java.lang.Class<?> cls)
void addDeclaredInterfaceImpl(ClassMetaData meta, java.lang.Class<?> iface)
void setInterfaceImpl(ClassMetaData meta, java.lang.Class<?> impl)
InterfaceImplGenerator getImplGenerator()
public ClassMetaData getMetaData(java.lang.Object oid, java.lang.ClassLoader envLoader, boolean mustExist)
oid
- the oid to get the metadata forenvLoader
- the environmental class loader, if anymustExist
- if true, throws a MetaDataException
if no metadata is foundpublic ClassMetaData[] getImplementorMetaDatas(java.lang.Class<?> cls, java.lang.ClassLoader envLoader, boolean mustExist)
cls
- the class or interface to retrieve implementors forenvLoader
- the environmental class loader, if anymustExist
- if true, throws a MetaDataException
if no metadata is foundpublic NonPersistentMetaData getPersistenceAware(java.lang.Class<?> cls)
public NonPersistentMetaData[] getPersistenceAwares()
public NonPersistentMetaData addPersistenceAware(java.lang.Class<?> cls)
cls
- non-null and must not alreaddy be added as persitence-capablepublic boolean removePersistenceAware(java.lang.Class<?> cls)
public NonPersistentMetaData getNonMappedInterface(java.lang.Class<?> iface)
public NonPersistentMetaData[] getNonMappedInterfaces()
public NonPersistentMetaData addNonMappedInterface(java.lang.Class<?> iface)
iface
- the non-mapped interfacepublic boolean removeNonMappedInterface(java.lang.Class<?> iface)
public void clear()
MetaDataFactory
's cache.public java.util.Set<java.lang.String> getPersistentTypeNames(boolean devpath, java.lang.ClassLoader envLoader)
devpath
- if true, search for metadata files in directories in the classpath if no classes
are configured explicitlyenvLoader
- the class loader to use, or null for defaultpublic java.util.Collection<java.lang.Class<?>> loadPersistentTypes(boolean devpath, java.lang.ClassLoader envLoader)
devpath
- if true, search for metadata files in directories
in the classpath if the no classes are configured explicitlyenvLoader
- the class loader to use, or null for defaultpublic java.util.Collection<java.lang.Class<?>> loadPersistentTypes(boolean devpath, java.lang.ClassLoader envLoader, boolean mustExist)
devpath
- if true, search for metadata files in directories in the classpath if the no
classes are configured explicitlyenvLoader
- the class loader to use, or null for defaultmustExist
- if true then empty list of classes or any unloadable but specified class will
raise an exception.java.util.Collection<java.lang.Class<?>> getPCSubclasses(java.lang.Class<?> cls)
PCRegistry.RegisterClassListener
.public void register(java.lang.Class<?> cls)
register
in interface PCRegistry.RegisterClassListener
java.lang.Class<?>[] processRegisteredClasses(java.lang.ClassLoader envLoader)
void registerAlias(java.lang.Class<?> cls)
public void registerAlias(java.lang.String alias, java.lang.Class<?> cls)
public void setMetaModel(java.lang.Class<?> m2)
public void setMetaModel(ClassMetaData meta, java.lang.Class<?> m2)
public java.lang.Class<?> getMetaModel(ClassMetaData meta, boolean load)
public java.lang.Class<?> getMetaModel(java.lang.Class<?> entity, boolean load)
public void setConfiguration(Configuration conf)
Configurable
setConfiguration
in interface Configurable
public void startConfiguration()
Configurable
startConfiguration
in interface Configurable
public void endConfiguration()
Configurable
endConfiguration
in interface Configurable
public QueryMetaData getQueryMetaData(java.lang.Class<?> cls, java.lang.String name, java.lang.ClassLoader envLoader, boolean mustExist)
public QueryMetaData[] getQueryMetaDatas()
public QueryMetaData getCachedQueryMetaData(java.lang.Class<?> cls, java.lang.String name)
public QueryMetaData getCachedQueryMetaData(java.lang.String name)
public QueryMetaData addQueryMetaData(java.lang.Class<?> cls, java.lang.String name)
protected QueryMetaData newQueryMetaData(java.lang.Class<?> cls, java.lang.String name)
public boolean removeQueryMetaData(QueryMetaData meta)
public boolean removeQueryMetaData(java.lang.Class<?> cls, java.lang.String name)
public QueryMetaData searchQueryMetaDataByName(java.lang.String name)
protected static java.lang.Object getQueryKey(java.lang.Class<?> cls, java.lang.String name)
public SequenceMetaData getSequenceMetaData(java.lang.String name, java.lang.ClassLoader envLoader, boolean mustExist)
SequenceMetaData getSequenceMetaData(ClassMetaData context, java.lang.String name, boolean mustExist)
public SequenceMetaData[] getSequenceMetaDatas()
public SequenceMetaData getCachedSequenceMetaData(java.lang.String name)
public SequenceMetaData addSequenceMetaData(java.lang.String name)
protected SequenceMetaData newSequenceMetaData(java.lang.String name)
public boolean removeSequenceMetaData(SequenceMetaData meta)
public boolean removeSequenceMetaData(java.lang.String name)
public boolean is_systemListenersActivated()
public void addSystemListener(java.lang.Object listener)
public boolean removeSystemListener(java.lang.Object listener)
public LifecycleEventManager.ListenerList getSystemListeners()
public void close()
public XMLMetaData getXMLMetaData(java.lang.Class<?> cls)
fmd
- public XMLClassMetaData addXMLClassMetaData(java.lang.Class<?> type)
access
- the access type to use in populating metadatapublic XMLMetaData getCachedXMLMetaData(java.lang.Class<?> cls)
protected XMLClassMetaData newXMLClassMetaData(java.lang.Class<?> type)
type
- name
- public XMLFieldMetaData newXMLFieldMetaData(java.lang.Class<?> type, java.lang.String name)
type
- name
- meta
- public static boolean needsPreload(Options o)
public ClassMetaData getCachedMetaData(java.lang.String typeName)
Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.