org.apache.openjpa.persistence
Class PersistenceMetaDataFactory

java.lang.Object
  extended by org.apache.openjpa.meta.AbstractMetaDataFactory
      extended by org.apache.openjpa.meta.AbstractCFMetaDataFactory
          extended by org.apache.openjpa.persistence.PersistenceMetaDataFactory
All Implemented Interfaces:
Configurable, GenericConfigurable, MetaDataFactory, MetaDataModes
Direct Known Subclasses:
PersistenceMappingFactory

public class PersistenceMetaDataFactory
extends AbstractCFMetaDataFactory
implements Configurable, GenericConfigurable

MetaDataFactory for JPA metadata.

Since:
0.4.0
Author:
Steve Kim

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.openjpa.meta.AbstractCFMetaDataFactory
AbstractCFMetaDataFactory.Parser, AbstractCFMetaDataFactory.Serializer
 
Field Summary
protected  Stack<XMLPersistenceMetaDataParser> _stack
           
 
Fields inherited from class org.apache.openjpa.meta.AbstractCFMetaDataFactory
cpath, files, JAR_FILE_URLS, MAPPING_FILE_NAMES, PERSISTENCE_UNIT_ROOT_URL, rsrcs, urls
 
Fields inherited from class org.apache.openjpa.meta.AbstractMetaDataFactory
dir, log, repos, store, strict, types
 
Fields inherited from interface org.apache.openjpa.meta.MetaDataFactory
STORE_DEFAULT, STORE_PER_CLASS, STORE_VERBOSE
 
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
PersistenceMetaDataFactory()
           
 
Method Summary
 void clear()
          Clear any internal caches.
protected  File defaultSourceFile(ClassMetaData meta)
          Return the default file for the given metadata.
protected  File defaultSourceFile(QueryMetaData query, Map clsNames)
          Return a default file for the given query.
protected  File defaultSourceFile(SequenceMetaData seq, Map clsNames)
          Return a default file for the given sequence.
 void endConfiguration()
          Invoked upon completion of bean property configuration for this object.
 AnnotationPersistenceMetaDataParser getAnnotationParser()
          Return metadata parser, creating it if it does not already exist.
 MetaDataDefaults getDefaults()
          Return the metadata defaults for this factory.
 boolean getFieldOverride()
          Whether to use field-level override or class-level override.
 Class<?> getManagedClass(Class<?> c)
          Gets the managed class corresponding to the given meta-class.
 String getManagedClassName(String mmClassName)
          Gets the name of the managed class for the given fully-qualified meta-model class name.
 String getMetaModelClassName(String managedClassName)
          Gets the name of the meta-model class for the given fully-qualified managed class name.
 Class<?> getQueryScope(String queryName, ClassLoader loader)
          Return the type defining the given query name, if any.
 Class<?> getResultSetMappingScope(String rsMappingName, ClassLoader loader)
          Return the type defining the given result set mapping name, if any.
 AnnotationPersistenceXMLMetaDataParser getXMLAnnotationParser()
          Return JAXB XML annotation parser, creating it if it does not already exist.
 XMLPersistenceMetaDataParser getXMLParser()
          Return XML metadata parser, creating it if it does not already exist or if the existing parser is parsing.
 boolean isMetaClass(Class<?> c)
          Affirms if the given class is a meta-class.
 void load(Class<?> cls, int mode, ClassLoader envLoader)
          Load metadata for the given class in the given mode(s).
 void loadXMLMetaData(FieldMetaData fmd)
          Load XMLClassMetadata for the given class.
protected  void mapPersistentTypeNames(Object rsrc, String[] names)
          Implement this method to map metadata resources to the persistent types contained within them.
protected  AnnotationPersistenceMetaDataParser newAnnotationParser()
          Create a new metadata parser.
protected  AnnotationPersistenceMetaDataSerializer newAnnotationSerializer()
          Create a new annotation serializer.
 ClassArgParser newClassArgParser()
          Return a properly-configured class arg parser for our expected metadata format.
protected  MetaDataFilter newMetaDataFilter()
          Return a metadata filter that identifies metadata resources when performing jar and classpath scans.
protected  AbstractCFMetaDataFactory.Parser newParser(boolean loading)
          Create a new metadata parser.
protected  AbstractCFMetaDataFactory.Serializer newSerializer()
          Create a new metadata serializer.
protected  AnnotationPersistenceXMLMetaDataParser newXMLAnnotationParser()
          Create a new JAXB XML annotation parser.
protected  XMLPersistenceMetaDataParser newXMLParser(boolean loading)
          Create a new metadata parser.
protected  XMLPersistenceMetaDataSerializer newXMLSerializer()
          Create a new serializer
protected  void parse(MetaDataParser parser, Class[] cls)
          Parse all given classses.
 void resetXMLParser()
           
 void setAnnotationParser(AnnotationPersistenceMetaDataParser parser)
          Set the metadata parser.
 void setConfiguration(Configuration conf)
          Invoked prior to setting bean properties.
 void setFieldOverride(boolean field)
          Whether to use field-level override or class-level override.
 void setInto(Options opts)
          Perform any generic configuration based on the data in opts.
 void setXMLAnnotationParser(AnnotationPersistenceXMLMetaDataParser parser)
          Set the JAXB XML annotation parser.
 void setXMLParser(XMLPersistenceMetaDataParser parser)
          Set the metadata parser.
 void startConfiguration()
          Invoked before bean property configuration is begun on this object.
 
Methods inherited from class org.apache.openjpa.meta.AbstractCFMetaDataFactory
backupAndDelete, clearMapping, drop, getDefiningMetaData, getPersistentTypeNames, getSourceFile, getSourceFile, isMappingOnlyFactory, isParseTopDown, parse, parsePersistentTypeNames, serialize, setClasspathScan, setClasspathScan, setFiles, setFiles, setResources, setResources, setSourceFile, setSourceFile, setURLs, setURLs, store
 
Methods inherited from class org.apache.openjpa.meta.AbstractMetaDataFactory
addClassExtensionKeys, addFieldExtensionKeys, setRepository, setStoreDirectory, setStoreMode, setStrict, setTypes, setTypes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_stack

protected Stack<XMLPersistenceMetaDataParser> _stack
Constructor Detail

PersistenceMetaDataFactory

public PersistenceMetaDataFactory()
Method Detail

setFieldOverride

public void setFieldOverride(boolean field)
Whether to use field-level override or class-level override. Defaults to true.


getFieldOverride

public boolean getFieldOverride()
Whether to use field-level override or class-level override. Defaults to true.


getAnnotationParser

public AnnotationPersistenceMetaDataParser getAnnotationParser()
Return metadata parser, creating it if it does not already exist.


setAnnotationParser

public void setAnnotationParser(AnnotationPersistenceMetaDataParser parser)
Set the metadata parser.


newAnnotationParser

protected AnnotationPersistenceMetaDataParser newAnnotationParser()
Create a new metadata parser.


newAnnotationSerializer

protected AnnotationPersistenceMetaDataSerializer newAnnotationSerializer()
Create a new annotation serializer.

Specified by:
newAnnotationSerializer in class AbstractCFMetaDataFactory

getXMLParser

public XMLPersistenceMetaDataParser getXMLParser()
Return XML metadata parser, creating it if it does not already exist or if the existing parser is parsing.


resetXMLParser

public void resetXMLParser()

setXMLParser

public void setXMLParser(XMLPersistenceMetaDataParser parser)
Set the metadata parser.


newXMLParser

protected XMLPersistenceMetaDataParser newXMLParser(boolean loading)
Create a new metadata parser.


newXMLSerializer

protected XMLPersistenceMetaDataSerializer newXMLSerializer()
Create a new serializer


load

public void load(Class<?> cls,
                 int mode,
                 ClassLoader envLoader)
Description copied from interface: MetaDataFactory
Load metadata for the given class in the given mode(s). If loading in MetaDataModes.MODE_QUERY, the class may be null. Loaded metadata should be added directly to the repository. It should have its source mode set appropriately via ClassMetaData.setSourceMode(int).

Specified by:
load in interface MetaDataFactory
mode - the mode to load metadata in: if mapping information is stored together with metadata, then you can load mapping data even if this mode only includes MODE_META, so long as the strict property hasn't been set

mapPersistentTypeNames

protected void mapPersistentTypeNames(Object rsrc,
                                      String[] names)
Description copied from class: AbstractCFMetaDataFactory
Implement this method to map metadata resources to the persistent types contained within them. The method will be called when AbstractCFMetaDataFactory.getPersistentTypeNames(boolean, java.lang.ClassLoader) is invoked.

Overrides:
mapPersistentTypeNames in class AbstractCFMetaDataFactory

getQueryScope

public Class<?> getQueryScope(String queryName,
                              ClassLoader loader)
Description copied from interface: MetaDataFactory
Return the type defining the given query name, if any.

Specified by:
getQueryScope in interface MetaDataFactory
Overrides:
getQueryScope in class AbstractMetaDataFactory

getResultSetMappingScope

public Class<?> getResultSetMappingScope(String rsMappingName,
                                         ClassLoader loader)
Description copied from interface: MetaDataFactory
Return the type defining the given result set mapping name, if any.

Specified by:
getResultSetMappingScope in interface MetaDataFactory
Overrides:
getResultSetMappingScope in class AbstractMetaDataFactory

newMetaDataFilter

protected MetaDataFilter newMetaDataFilter()
Description copied from class: AbstractCFMetaDataFactory
Return a metadata filter that identifies metadata resources when performing jar and classpath scans.

Specified by:
newMetaDataFilter in class AbstractCFMetaDataFactory

getDefaults

public MetaDataDefaults getDefaults()
Description copied from interface: MetaDataFactory
Return the metadata defaults for this factory.

Specified by:
getDefaults in interface MetaDataFactory

newClassArgParser

public ClassArgParser newClassArgParser()
Description copied from interface: MetaDataFactory
Return a properly-configured class arg parser for our expected metadata format.

Specified by:
newClassArgParser in interface MetaDataFactory
Overrides:
newClassArgParser in class AbstractMetaDataFactory

clear

public void clear()
Description copied from interface: MetaDataFactory
Clear any internal caches.

Specified by:
clear in interface MetaDataFactory
Overrides:
clear in class AbstractCFMetaDataFactory

newParser

protected AbstractCFMetaDataFactory.Parser newParser(boolean loading)
Description copied from class: AbstractCFMetaDataFactory
Create a new metadata parser.

Specified by:
newParser in class AbstractCFMetaDataFactory
Parameters:
loading - if true, this will be the cached parser used for loading metadata

newSerializer

protected AbstractCFMetaDataFactory.Serializer newSerializer()
Description copied from class: AbstractCFMetaDataFactory
Create a new metadata serializer.

Specified by:
newSerializer in class AbstractCFMetaDataFactory

parse

protected void parse(MetaDataParser parser,
                     Class[] cls)
Description copied from class: AbstractCFMetaDataFactory
Parse all given classses.

Overrides:
parse in class AbstractCFMetaDataFactory

defaultSourceFile

protected File defaultSourceFile(ClassMetaData meta)
Description copied from class: AbstractCFMetaDataFactory
Return the default file for the given metadata.

Specified by:
defaultSourceFile in class AbstractCFMetaDataFactory

defaultSourceFile

protected File defaultSourceFile(QueryMetaData query,
                                 Map clsNames)
Description copied from class: AbstractCFMetaDataFactory
Return a default file for the given query.

Specified by:
defaultSourceFile in class AbstractCFMetaDataFactory

defaultSourceFile

protected File defaultSourceFile(SequenceMetaData seq,
                                 Map clsNames)
Description copied from class: AbstractCFMetaDataFactory
Return a default file for the given sequence.

Specified by:
defaultSourceFile in class AbstractCFMetaDataFactory

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

setInto

public void setInto(Options opts)
Description copied from interface: GenericConfigurable
Perform any generic configuration based on the data in opts. This method should remove any values in opts that have been successfully processed; if any values remain in opts after this method is executed, an exception will be thrown identifying those key-value pairs as invalid.

Specified by:
setInto in interface GenericConfigurable

getXMLAnnotationParser

public AnnotationPersistenceXMLMetaDataParser getXMLAnnotationParser()
Return JAXB XML annotation parser, creating it if it does not already exist.


setXMLAnnotationParser

public void setXMLAnnotationParser(AnnotationPersistenceXMLMetaDataParser parser)
Set the JAXB XML annotation parser.


newXMLAnnotationParser

protected AnnotationPersistenceXMLMetaDataParser newXMLAnnotationParser()
Create a new JAXB XML annotation parser.


loadXMLMetaData

public void loadXMLMetaData(FieldMetaData fmd)
Description copied from interface: MetaDataFactory
Load XMLClassMetadata for the given class. Loaded metadata should be added directly to the repository.

Specified by:
loadXMLMetaData in interface MetaDataFactory

getManagedClassName

public String getManagedClassName(String mmClassName)
Description copied from interface: MetaDataFactory
Gets the name of the managed class for the given fully-qualified meta-model class name.

Specified by:
getManagedClassName in interface MetaDataFactory

getMetaModelClassName

public String getMetaModelClassName(String managedClassName)
Description copied from interface: MetaDataFactory
Gets the name of the meta-model class for the given fully-qualified managed class name.

Specified by:
getMetaModelClassName in interface MetaDataFactory

isMetaClass

public boolean isMetaClass(Class<?> c)
Description copied from interface: MetaDataFactory
Affirms if the given class is a meta-class.

Specified by:
isMetaClass in interface MetaDataFactory

getManagedClass

public Class<?> getManagedClass(Class<?> c)
Description copied from interface: MetaDataFactory
Gets the managed class corresponding to the given meta-class.

Specified by:
getManagedClass in interface MetaDataFactory
Returns:
null if the given input is not a meta-class.


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