org.apache.openjpa.meta
Class MetaDataRepository

java.lang.Object
  extended by org.apache.openjpa.meta.MetaDataRepository
All Implemented Interfaces:
Serializable, PCRegistry.RegisterClassListener, Configurable, Closeable, MetaDataModes
Direct Known Subclasses:
MappingRepository

public class MetaDataRepository
extends Object
implements PCRegistry.RegisterClassListener, Configurable, Closeable, MetaDataModes, Serializable

Repository of and factory for persistent metadata.

Since:
0.3.0
Author:
Abe White, Steve Kim (query metadata)
See Also:
Serialized Form

Field Summary
protected  boolean _locking
           
protected  boolean _preload
           
protected  boolean _preloadComplete
           
protected static 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.
 
Fields inherited from interface org.apache.openjpa.meta.MetaDataModes
MODE_ALL, MODE_ANN_MAPPING, MODE_MAPPING, MODE_MAPPING_INIT, MODE_META, MODE_NONE, MODE_QUERY
 
Constructor Summary
MetaDataRepository()
          Default constructor.
 
Method Summary
(package private)  void addDeclaredInterfaceImpl(ClassMetaData meta, Class<?> iface)
          Add the given metadata as declared interface implementation.
 ClassMetaData addMetaData(Class<?> cls)
          Create a new metadata, populate it with default information, add it to the repository, and return it.
 ClassMetaData addMetaData(Class<?> cls, int access)
          Create a new metadata, populate it with default information, add it to the repository, and return it.
 ClassMetaData addMetaData(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(Class<?> iface)
          Add the given non-mapped interface to the repository.
 NonPersistentMetaData addPersistenceAware(Class<?> cls)
          Add the given class as persistence-aware.
 QueryMetaData addQueryMetaData(Class<?> cls, String name)
          Add a new query metadata to the repository and return it.
 SequenceMetaData addSequenceMetaData(String name)
          Add a new sequence metadata to the repository and return it.
 void addSystemListener(Object listener)
          Add the given system lifecycle listener.
 XMLClassMetaData addXMLClassMetaData(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.
 Collection<String> getAliasNames()
           
 ClassMetaData getCachedMetaData(Class<?> cls)
          Return the cached metadata for the given class, without any resolution.
 ClassMetaData getCachedMetaData(String typeName)
          This method returns the ClassMetaData whose described type name matches the typeName parameter.
 QueryMetaData getCachedQueryMetaData(Class<?> cls, String name)
          Return the cached query metadata for the given name.
 SequenceMetaData getCachedSequenceMetaData(String name)
          Return the cached a sequence metadata for the given name.
 XMLMetaData getCachedXMLMetaData(Class<?> cls)
          Return the cached XMLClassMetaData for the given class Return null if none.
 String getClosestAliasName(String alias)
           
 OpenJPAConfiguration getConfiguration()
          Return the configuration for the repository.
 ClassMetaData[] getImplementorMetaDatas(Class<?> cls, 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(Class<?> cls, ClassLoader envLoader, boolean mustExist)
          Return the metadata for the given class.
 ClassMetaData getMetaData(Object oid, ClassLoader envLoader, boolean mustExist)
          Return the least-derived class metadata for the given application identity object.
 ClassMetaData getMetaData(String alias, 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.
 Class<?> getMetaModel(Class<?> entity, boolean load)
          Gets the meta class corresponding to the given class.
 Class<?> getMetaModel(ClassMetaData meta, boolean load)
          Gets the meta class corresponding to the given persistent class.
 NonPersistentMetaData getNonMappedInterface(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, String orderBy)
           
(package private)  Collection<Class<?>> getPCSubclasses(Class<?> cls)
          Return all known subclasses for the given class mapping.
 NonPersistentMetaData getPersistenceAware(Class<?> cls)
          Gets the metadata corresponding to the given persistence-aware class.
 NonPersistentMetaData[] getPersistenceAwares()
          Gets all the metadatas for persistence-aware classes
 Set<String> getPersistentTypeNames(boolean devpath, 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 Object getQueryKey(Class<?> cls, String name)
          Return a unique key for a given class / name.
 QueryMetaData getQueryMetaData(Class<?> cls, String name, 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, String name, boolean mustExist)
          Used internally by metadata to retrieve sequence metadatas based on possibly-unqualified sequence name.
 SequenceMetaData getSequenceMetaData(String name, 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(Class<?> cls)
          Return XML metadata for a given field metadata
 boolean is_systemListenersActivated()
          Whether any system (default) listeners have been registered.
 Collection<Class<?>> loadPersistentTypes(boolean devpath, ClassLoader envLoader)
          Load the persistent classes named in configuration.
 Collection<Class<?>> loadPersistentTypes(boolean devpath, ClassLoader envLoader, boolean mustExist)
          Load the persistent classes named in configuration.
static boolean needsPreload(Options o)
           
protected  ClassMetaData newClassMetaData(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(String name, 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, 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(Class<?> cls, 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(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(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(Class<?> type, 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)  Class<?>[] processRegisteredClasses(ClassLoader envLoader)
          Updates our datastructures with the latest registered classes.
 void register(Class<?> cls)
           
(package private)  void registerAlias(Class<?> cls)
          Register the given class to the list of known aliases.
 void registerAlias(String alias, Class<?> cls)
           
 boolean removeMetaData(Class<?> cls)
          Remove a metadata instance from the repository.
 boolean removeMetaData(ClassMetaData meta)
          Remove a metadata instance from the repository.
 boolean removeNonMappedInterface(Class<?> iface)
          Remove a non-mapped interface from the repository
 boolean removePersistenceAware(Class<?> cls)
          Remove a persitence-aware class from the repository
 boolean removeQueryMetaData(Class<?> cls, 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(String name)
          Remove sequence metadata for the name if in the repository.
 boolean removeSystemListener(Object listener)
          Remove the given system lifecycle listener.
 QueryMetaData searchQueryMetaDataByName(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, Class<?> impl)
          Set the implementation for the given managed interface.
 void setMetaDataFactory(MetaDataFactory factory)
          The I/O used to load metadata.
 void setMetaModel(Class<?> m2)
          Puts the meta class corresponding to the given entity class.
 void setMetaModel(ClassMetaData meta, 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VALIDATE_NONE

public static final int VALIDATE_NONE
Constant to not validate any metadata.

See Also:
Constant Field Values

VALIDATE_META

public static final int VALIDATE_META
Bit flag to validate metadata.

See Also:
Constant Field Values

VALIDATE_MAPPING

public static final int VALIDATE_MAPPING
Bit flag to validate mappings.

See Also:
Constant Field Values

VALIDATE_UNENHANCED

public static final int VALIDATE_UNENHANCED
Bit flag to validate unenhanced metadata only.

See Also:
Constant Field Values

VALIDATE_RUNTIME

public static final int VALIDATE_RUNTIME
Bit flag for runtime validation. Requires that all classes are enhanced, and performs extra field resolution steps.

See Also:
Constant Field Values

EMPTY_CLASSES

protected static final Class<?>[] EMPTY_CLASSES

EMPTY_NON_PERSISTENT

protected static final NonPersistentMetaData[] EMPTY_NON_PERSISTENT

EMPTY_METAS

protected final ClassMetaData[] EMPTY_METAS

EMPTY_FIELDS

protected final FieldMetaData[] EMPTY_FIELDS

EMPTY_ORDERS

protected final Order[] EMPTY_ORDERS

EMPTY_XMLMETAS

protected final XMLMetaData[] EMPTY_XMLMETAS

_preload

protected boolean _preload

_preloadComplete

protected boolean _preloadComplete

_locking

protected boolean _locking
Constructor Detail

MetaDataRepository

public MetaDataRepository()
Default constructor. Configure via Configurable.

Method Detail

getConfiguration

public OpenJPAConfiguration getConfiguration()
Return the configuration for the repository.


getLog

public Log getLog()
Return the metadata log.


getMetaDataFactory

public MetaDataFactory getMetaDataFactory()
The I/O used to load metadata.


setMetaDataFactory

public void setMetaDataFactory(MetaDataFactory factory)
The I/O used to load metadata.


getValidate

public int getValidate()
The metadata validation level. Defaults to VALIDATE_META | VALIDATE_UNENHANCED.


setValidate

public void setValidate(int validate)
The metadata validation level. Defaults to VALIDATE_META | VALIDATE_UNENHANCED.


setValidate

public void setValidate(int validate,
                        boolean on)
The metadata validation level. Defaults to VALIDATE_META | VALIDATE_MAPPING | VALIDATE_UNENHANCED.


getResolve

public int getResolve()
The metadata resolution mode. Defaults to MODE_META | MODE_MAPPING.


setResolve

public void setResolve(int mode)
The metadata resolution mode. Defaults to MODE_META | MODE_MAPPING.


setResolve

public void setResolve(int mode,
                       boolean on)
The metadata resolution mode. Defaults to MODE_META | MODE_MAPPING.


getSourceMode

public int getSourceMode()
The source mode determining what metadata to load. Defaults to MODE_META | MODE_MAPPING | MODE_QUERY.


setSourceMode

public void setSourceMode(int mode)
The source mode determining what metadata to load. Defaults to MODE_META | MODE_MAPPING | MODE_QUERY.


setSourceMode

public void setSourceMode(int mode,
                          boolean on)
The source mode determining what metadata to load. Defaults to MODE_META | MODE_MAPPING | MODE_QUERY.


getPreload

public boolean getPreload()
Sets whether this repository will load all known persistent classes at initialization. Defaults to false.


setPreload

public void setPreload(boolean l)
Sets whether this repository will load all known persistent classes at initialization. Defaults to false.


preload

public 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.


getMetaData

public ClassMetaData getMetaData(Class<?> cls,
                                 ClassLoader envLoader,
                                 boolean mustExist)
Return the metadata for the given class.

Parameters:
cls - the class to retrieve metadata for
envLoader - the environmental class loader, if any
mustExist - if true, throws a MetaDataException if no metadata is found

getMetaData

public ClassMetaData getMetaData(String alias,
                                 ClassLoader envLoader,
                                 boolean mustExist)
Return the metadata for the given alias name.

Parameters:
alias - the alias to class to retrieve metadata for
envLoader - the environmental class loader, if any
mustExist - if true, throws a MetaDataException if no metadata is found
See Also:
ClassMetaData.getTypeAlias()

getClosestAliasName

public String getClosestAliasName(String alias)
Returns:
the nearest match to the specified alias name
Since:
1.1.0

getAliasNames

public Collection<String> getAliasNames()
Returns:
the registered alias names
Since:
1.1.0

prepareMapping

protected void prepareMapping(ClassMetaData meta)
Prepare metadata for mapping resolution. This method might map parts of the metadata that don't rely on other classes being mapped, but that other classes might rely on during their own mapping (for example, primary key fields). By default, this method only calls ClassMetaData.defineSuperclassFields(boolean).


getMetaDatas

public ClassMetaData[] getMetaDatas()
Return all the metadata instances currently in the repository.


getCachedMetaData

public ClassMetaData getCachedMetaData(Class<?> cls)
Return the cached metadata for the given class, without any resolution. Return null if none.


addMetaData

public ClassMetaData addMetaData(Class<?> cls)
Create a new metadata, populate it with default information, add it to the repository, and return it. Use the default access type.


addMetaData

public ClassMetaData addMetaData(Class<?> cls,
                                 int access)
Create a new metadata, populate it with default information, add it to the repository, and return it.

Parameters:
access - the access type to use in populating metadata

addMetaData

public ClassMetaData addMetaData(Class<?> cls,
                                 int access,
                                 boolean ignoreTransient)
Create a new metadata, populate it with default information, add it to the repository, and return it.

Parameters:
access - the access type to use in populating metadata

newClassMetaData

protected ClassMetaData newClassMetaData(Class<?> type)
Create a new class metadata instance.


newClassMetaDataArray

protected ClassMetaData[] newClassMetaDataArray(int length)
Create a new array of the proper class metadata subclass.


newFieldMetaData

protected FieldMetaData newFieldMetaData(String name,
                                         Class<?> type,
                                         ClassMetaData owner)
Create a new field metadata instance.


newFieldMetaDataArray

protected FieldMetaData[] newFieldMetaDataArray(int length)
Create a new array of the proper field metadata subclass.


newXMLClassMetaDataArray

protected XMLMetaData[] newXMLClassMetaDataArray(int length)
Create a new array of the proper xml class metadata subclass.


newEmbeddedClassMetaData

protected ClassMetaData newEmbeddedClassMetaData(ValueMetaData owner)
Create a new embedded class metadata instance.


newValueMetaData

protected ValueMetaData newValueMetaData(FieldMetaData owner)
Create a new value metadata instance.


newOrder

protected Order newOrder(FieldMetaData owner,
                         String name,
                         boolean asc)
Create an 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.


getOrderByField

public FieldMetaData getOrderByField(ClassMetaData meta,
                                     String orderBy)

newValueOrder

protected Order newValueOrder(FieldMetaData owner,
                              boolean asc)
Order by the field value.


newRelatedFieldOrder

protected Order newRelatedFieldOrder(FieldMetaData owner,
                                     FieldMetaData rel,
                                     boolean asc)
Order by a field of the related type.


newOrderArray

protected Order[] newOrderArray(int size)
Create an array of orders of the given size.


removeMetaData

public boolean removeMetaData(ClassMetaData meta)
Remove a metadata instance from the repository.

Returns:
true if removed, false if not in this repository

removeMetaData

public boolean removeMetaData(Class<?> cls)
Remove a metadata instance from the repository.

Returns:
true if removed, false if not in this repository

addDeclaredInterfaceImpl

void addDeclaredInterfaceImpl(ClassMetaData meta,
                              Class<?> iface)
Add the given metadata as declared interface implementation.


setInterfaceImpl

void setInterfaceImpl(ClassMetaData meta,
                      Class<?> impl)
Set the implementation for the given managed interface.


getImplGenerator

InterfaceImplGenerator getImplGenerator()

getMetaData

public ClassMetaData getMetaData(Object oid,
                                 ClassLoader envLoader,
                                 boolean mustExist)
Return the least-derived class metadata for the given application identity object.

Parameters:
oid - the oid to get the metadata for
envLoader - the environmental class loader, if any
mustExist - if true, throws a MetaDataException if no metadata is found

getImplementorMetaDatas

public ClassMetaData[] getImplementorMetaDatas(Class<?> cls,
                                               ClassLoader envLoader,
                                               boolean mustExist)
Return all least-derived metadatas with some mapped assignable type that implement the given class.

Parameters:
cls - the class or interface to retrieve implementors for
envLoader - the environmental class loader, if any
mustExist - if true, throws a MetaDataException if no metadata is found

getPersistenceAware

public NonPersistentMetaData getPersistenceAware(Class<?> cls)
Gets the metadata corresponding to the given persistence-aware class. Returns null, if the given class is not registered as persistence-aware.


getPersistenceAwares

public NonPersistentMetaData[] getPersistenceAwares()
Gets all the metadatas for persistence-aware classes

Returns:
empty array if no class has been registered as pers-aware

addPersistenceAware

public NonPersistentMetaData addPersistenceAware(Class<?> cls)
Add the given class as persistence-aware.

Parameters:
cls - non-null and must not alreaddy be added as persitence-capable

removePersistenceAware

public boolean removePersistenceAware(Class<?> cls)
Remove a persitence-aware class from the repository

Returns:
true if removed

getNonMappedInterface

public NonPersistentMetaData getNonMappedInterface(Class<?> iface)
Gets the metadata corresponding to the given non-mapped interface. Returns null, if the given interface is not registered as persistence-aware.


getNonMappedInterfaces

public NonPersistentMetaData[] getNonMappedInterfaces()
Gets the corresponding metadatas for all registered, non-mapped interfaces

Returns:
empty array if no non-mapped interface has been registered.

addNonMappedInterface

public NonPersistentMetaData addNonMappedInterface(Class<?> iface)
Add the given non-mapped interface to the repository.

Parameters:
iface - the non-mapped interface

removeNonMappedInterface

public boolean removeNonMappedInterface(Class<?> iface)
Remove a non-mapped interface from the repository

Returns:
true if removed

clear

public void clear()
Clear the cache of parsed metadata. This method also clears the internal MetaDataFactory's cache.


getPersistentTypeNames

public Set<String> getPersistentTypeNames(boolean devpath,
                                          ClassLoader envLoader)
Return the set of configured persistent classes, or null if the user did not configure any.

Parameters:
devpath - if true, search for metadata files in directories in the classpath if no classes are configured explicitly
envLoader - the class loader to use, or null for default

loadPersistentTypes

public Collection<Class<?>> loadPersistentTypes(boolean devpath,
                                                ClassLoader envLoader)
Load the persistent classes named in configuration. This ensures that all subclasses and application identity classes of each type are known in advance, without having to rely on the application loading the classes before performing operations that might involve them.

Parameters:
devpath - if true, search for metadata files in directories in the classpath if the no classes are configured explicitly
envLoader - the class loader to use, or null for default
Returns:
the loaded classes, or empty collection if none

loadPersistentTypes

public Collection<Class<?>> loadPersistentTypes(boolean devpath,
                                                ClassLoader envLoader,
                                                boolean mustExist)
Load the persistent classes named in configuration. This ensures that all subclasses and application identity classes of each type are known in advance, without having to rely on the application loading the classes before performing operations that might involve them.

Parameters:
devpath - if true, search for metadata files in directories in the classpath if the no classes are configured explicitly
envLoader - the class loader to use, or null for default
mustExist - if true then empty list of classes or any unloadable but specified class will raise an exception.
Returns:
the loaded classes, or empty collection if none

getPCSubclasses

Collection<Class<?>> getPCSubclasses(Class<?> cls)
Return all known subclasses for the given class mapping. Note that this method only works during runtime when the repository is registered as a PCRegistry.RegisterClassListener.


register

public void register(Class<?> cls)
Specified by:
register in interface PCRegistry.RegisterClassListener

processRegisteredClasses

Class<?>[] processRegisteredClasses(ClassLoader envLoader)
Updates our datastructures with the latest registered classes.


registerAlias

void registerAlias(Class<?> cls)
Register the given class to the list of known aliases. The alias is registered only if the class has been enhanced.


registerAlias

public void registerAlias(String alias,
                          Class<?> cls)

setMetaModel

public void setMetaModel(Class<?> m2)
Puts the meta class corresponding to the given entity class.


setMetaModel

public void setMetaModel(ClassMetaData meta,
                         Class<?> m2)
Puts the meta class corresponding to the given persistent class.


getMetaModel

public Class<?> getMetaModel(ClassMetaData meta,
                             boolean load)
Gets the meta class corresponding to the given persistent class.


getMetaModel

public Class<?> getMetaModel(Class<?> entity,
                             boolean load)
Gets the meta class corresponding to the given class. If load is false, returns the meta class if has been set for the given persistent class earlier. If the load is true then also attempts to apply the current naming policy to derive meta class name and attempts to load the meta class.


setConfiguration

public void setConfiguration(Configuration conf)
Description copied from interface: Configurable
Invoked prior to setting bean properties.

Specified by:
setConfiguration in interface Configurable

startConfiguration

public void startConfiguration()
Description copied from interface: Configurable
Invoked before bean property configuration is begun on this object.

Specified by:
startConfiguration in interface Configurable

endConfiguration

public void endConfiguration()
Description copied from interface: Configurable
Invoked upon completion of bean property configuration for this object.

Specified by:
endConfiguration in interface Configurable

getQueryMetaData

public QueryMetaData getQueryMetaData(Class<?> cls,
                                      String name,
                                      ClassLoader envLoader,
                                      boolean mustExist)
Return query metadata for the given class, name, and classloader.


getQueryMetaDatas

public QueryMetaData[] getQueryMetaDatas()
Return the cached query metadata.


getCachedQueryMetaData

public QueryMetaData getCachedQueryMetaData(Class<?> cls,
                                            String name)
Return the cached query metadata for the given name.


addQueryMetaData

public QueryMetaData addQueryMetaData(Class<?> cls,
                                      String name)
Add a new query metadata to the repository and return it.


newQueryMetaData

protected QueryMetaData newQueryMetaData(Class<?> cls,
                                         String name)
Create a new query metadata instance.


removeQueryMetaData

public boolean removeQueryMetaData(QueryMetaData meta)
Remove the given query metadata from the repository.


removeQueryMetaData

public boolean removeQueryMetaData(Class<?> cls,
                                   String name)
Remove query metadata for the given class name if in the repository.


searchQueryMetaDataByName

public QueryMetaData searchQueryMetaDataByName(String name)
Searches all cached query metadata by name.


getQueryKey

protected static Object getQueryKey(Class<?> cls,
                                    String name)
Return a unique key for a given class / name. The class argument can be null.


getSequenceMetaData

public SequenceMetaData getSequenceMetaData(String name,
                                            ClassLoader envLoader,
                                            boolean mustExist)
Return sequence metadata for the given name and classloader.


getSequenceMetaData

SequenceMetaData getSequenceMetaData(ClassMetaData context,
                                     String name,
                                     boolean mustExist)
Used internally by metadata to retrieve sequence metadatas based on possibly-unqualified sequence name.


getSequenceMetaDatas

public SequenceMetaData[] getSequenceMetaDatas()
Return the cached sequence metadata.


getCachedSequenceMetaData

public SequenceMetaData getCachedSequenceMetaData(String name)
Return the cached a sequence metadata for the given name.


addSequenceMetaData

public SequenceMetaData addSequenceMetaData(String name)
Add a new sequence metadata to the repository and return it.


newSequenceMetaData

protected SequenceMetaData newSequenceMetaData(String name)
Create a new sequence metadata instance.


removeSequenceMetaData

public boolean removeSequenceMetaData(SequenceMetaData meta)
Remove the given sequence metadata from the repository.


removeSequenceMetaData

public boolean removeSequenceMetaData(String name)
Remove sequence metadata for the name if in the repository.


is_systemListenersActivated

public boolean is_systemListenersActivated()
Whether any system (default) listeners have been registered. Used as a quick test to determine whether the callback/listener mechanism has been enabled.

Returns:
boolean

addSystemListener

public void addSystemListener(Object listener)
Add the given system lifecycle listener.


removeSystemListener

public boolean removeSystemListener(Object listener)
Remove the given system lifecycle listener.


getSystemListeners

public LifecycleEventManager.ListenerList getSystemListeners()
Return the system lifecycle listeners


close

public void close()
Free the resources used by this repository. Closes all user sequences.

Specified by:
close in interface Closeable

getXMLMetaData

public XMLMetaData getXMLMetaData(Class<?> cls)
Return XML metadata for a given field metadata

Parameters:
fmd -
Returns:
XML metadata

addXMLClassMetaData

public XMLClassMetaData addXMLClassMetaData(Class<?> type)
Create a new metadata, populate it with default information, add it to the repository, and return it.

Parameters:
access - the access type to use in populating metadata

getCachedXMLMetaData

public XMLMetaData getCachedXMLMetaData(Class<?> cls)
Return the cached XMLClassMetaData for the given class Return null if none.


newXMLClassMetaData

protected XMLClassMetaData newXMLClassMetaData(Class<?> type)
Create a new xml class metadata

Parameters:
type -
name -
Returns:
a XMLClassMetaData

newXMLFieldMetaData

public XMLFieldMetaData newXMLFieldMetaData(Class<?> type,
                                            String name)
Create a new xml field meta, add it to the fieldMap in the given xml class metadata

Parameters:
type -
name -
meta -
Returns:
a XMLFieldMetaData

needsPreload

public static boolean needsPreload(Options o)

getCachedMetaData

public ClassMetaData getCachedMetaData(String typeName)
This method returns the ClassMetaData whose described type name matches the typeName parameter. It ONLY operates against MetaData that is currently known by this repository. Note: This method call WILL NOT resolve any metadata.



Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.