Package org.apache.openjpa.persistence
Class PersistenceMetaDataFactory
- java.lang.Object
-
- org.apache.openjpa.meta.AbstractMetaDataFactory
-
- org.apache.openjpa.meta.AbstractCFMetaDataFactory
-
- org.apache.openjpa.persistence.PersistenceMetaDataFactory
-
- All Implemented Interfaces:
Configurable,GenericConfigurable,MetaDataFactory,MetaDataModes
- Direct Known Subclasses:
PersistenceMappingFactory
public class PersistenceMetaDataFactory extends AbstractCFMetaDataFactory implements Configurable, GenericConfigurable
MetaDataFactoryfor 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
Fields Modifier and Type Field Description protected java.util.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
Constructors Constructor Description PersistenceMetaDataFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Clear any internal caches.protected java.io.FiledefaultSourceFile(ClassMetaData meta)Return the default file for the given metadata.protected java.io.FiledefaultSourceFile(QueryMetaData query, java.util.Map clsNames)Return a default file for the given query.protected java.io.FiledefaultSourceFile(SequenceMetaData seq, java.util.Map clsNames)Return a default file for the given sequence.voidendConfiguration()Invoked upon completion of bean property configuration for this object.AnnotationPersistenceMetaDataParsergetAnnotationParser()Return metadata parser, creating it if it does not already exist.MetaDataDefaultsgetDefaults()Return the metadata defaults for this factory.booleangetFieldOverride()Whether to use field-level override or class-level override.java.lang.Class<?>getManagedClass(java.lang.Class<?> c)Gets the managed class corresponding to the given meta-class.java.lang.StringgetManagedClassName(java.lang.String mmClassName)Gets the name of the managed class for the given fully-qualified meta-model class name.java.lang.StringgetMetaModelClassName(java.lang.String managedClassName)Gets the name of the meta-model class for the given fully-qualified managed class name.java.lang.Class<?>getQueryScope(java.lang.String queryName, java.lang.ClassLoader loader)Return the type defining the given query name, if any.java.lang.Class<?>getResultSetMappingScope(java.lang.String rsMappingName, java.lang.ClassLoader loader)Return the type defining the given result set mapping name, if any.AnnotationPersistenceXMLMetaDataParsergetXMLAnnotationParser()Return JAXB XML annotation parser, creating it if it does not already exist.XMLPersistenceMetaDataParsergetXMLParser()Return XML metadata parser, creating it if it does not already exist or if the existing parser is parsing.booleanisMetaClass(java.lang.Class<?> c)Affirms if the given class is a meta-class.voidload(java.lang.Class<?> cls, int mode, java.lang.ClassLoader envLoader)Load metadata for the given class in the given mode(s).voidloadXMLMetaData(java.lang.Class<?> cls)Load XMLClassMetadata for the given class.protected voidmapPersistentTypeNames(java.lang.Object rsrc, java.lang.String[] names)Implement this method to map metadata resources to the persistent types contained within them.protected AnnotationPersistenceMetaDataParsernewAnnotationParser()Create a new metadata parser.protected AnnotationPersistenceMetaDataSerializernewAnnotationSerializer()Create a new annotation serializer.ClassArgParsernewClassArgParser()Return a properly-configured class arg parser for our expected metadata format.protected MetaDataFilternewMetaDataFilter()Return a metadata filter that identifies metadata resources when performing jar and classpath scans.protected AbstractCFMetaDataFactory.ParsernewParser(boolean loading)Create a new metadata parser.protected AbstractCFMetaDataFactory.SerializernewSerializer()Create a new metadata serializer.protected AnnotationPersistenceXMLMetaDataParsernewXMLAnnotationParser()Create a new JAXB XML annotation parser.protected XMLPersistenceMetaDataParsernewXMLParser(boolean loading)Create a new metadata parser.protected XMLPersistenceMetaDataSerializernewXMLSerializer()Create a new serializerprotected voidparse(MetaDataParser parser, java.lang.Class[] cls)Parse all given classses.voidresetXMLParser()voidsetAnnotationParser(AnnotationPersistenceMetaDataParser parser)Set the metadata parser.voidsetConfiguration(Configuration conf)Invoked prior to setting bean properties.voidsetFieldOverride(boolean field)Whether to use field-level override or class-level override.voidsetInto(Options opts)Perform any generic configuration based on the data inopts.voidsetXMLAnnotationParser(AnnotationPersistenceXMLMetaDataParser parser)Set the JAXB XML annotation parser.voidsetXMLParser(XMLPersistenceMetaDataParser parser)Set the metadata parser.voidstartConfiguration()Invoked before bean property configuration is begun on this object.-
Methods inherited from class org.apache.openjpa.meta.AbstractCFMetaDataFactory
backupAndDelete, clearMapping, decode, 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
-
-
-
-
Field Detail
-
_stack
protected java.util.Stack<XMLPersistenceMetaDataParser> _stack
-
-
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:
newAnnotationSerializerin classAbstractCFMetaDataFactory
-
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(java.lang.Class<?> cls, int mode, java.lang.ClassLoader envLoader)Description copied from interface:MetaDataFactoryLoad metadata for the given class in the given mode(s). If loading inMetaDataModes.MODE_QUERY, the class may be null. Loaded metadata should be added directly to the repository. It should have its source mode set appropriately viaClassMetaData.setSourceMode(int).- Specified by:
loadin interfaceMetaDataFactorymode- 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 includesMODE_META, so long as thestrictproperty hasn't been set
-
mapPersistentTypeNames
protected void mapPersistentTypeNames(java.lang.Object rsrc, java.lang.String[] names)Description copied from class:AbstractCFMetaDataFactoryImplement this method to map metadata resources to the persistent types contained within them. The method will be called whenAbstractCFMetaDataFactory.getPersistentTypeNames(boolean, java.lang.ClassLoader)is invoked.- Overrides:
mapPersistentTypeNamesin classAbstractCFMetaDataFactory
-
getQueryScope
public java.lang.Class<?> getQueryScope(java.lang.String queryName, java.lang.ClassLoader loader)Description copied from interface:MetaDataFactoryReturn the type defining the given query name, if any.- Specified by:
getQueryScopein interfaceMetaDataFactory- Overrides:
getQueryScopein classAbstractMetaDataFactory
-
getResultSetMappingScope
public java.lang.Class<?> getResultSetMappingScope(java.lang.String rsMappingName, java.lang.ClassLoader loader)Description copied from interface:MetaDataFactoryReturn the type defining the given result set mapping name, if any.- Specified by:
getResultSetMappingScopein interfaceMetaDataFactory- Overrides:
getResultSetMappingScopein classAbstractMetaDataFactory
-
newMetaDataFilter
protected MetaDataFilter newMetaDataFilter()
Description copied from class:AbstractCFMetaDataFactoryReturn a metadata filter that identifies metadata resources when performing jar and classpath scans.- Specified by:
newMetaDataFilterin classAbstractCFMetaDataFactory
-
getDefaults
public MetaDataDefaults getDefaults()
Description copied from interface:MetaDataFactoryReturn the metadata defaults for this factory.- Specified by:
getDefaultsin interfaceMetaDataFactory
-
newClassArgParser
public ClassArgParser newClassArgParser()
Description copied from interface:MetaDataFactoryReturn a properly-configured class arg parser for our expected metadata format.- Specified by:
newClassArgParserin interfaceMetaDataFactory- Overrides:
newClassArgParserin classAbstractMetaDataFactory
-
clear
public void clear()
Description copied from interface:MetaDataFactoryClear any internal caches.- Specified by:
clearin interfaceMetaDataFactory- Overrides:
clearin classAbstractCFMetaDataFactory
-
newParser
protected AbstractCFMetaDataFactory.Parser newParser(boolean loading)
Description copied from class:AbstractCFMetaDataFactoryCreate a new metadata parser.- Specified by:
newParserin classAbstractCFMetaDataFactory- Parameters:
loading- if true, this will be the cached parser used for loading metadata
-
newSerializer
protected AbstractCFMetaDataFactory.Serializer newSerializer()
Description copied from class:AbstractCFMetaDataFactoryCreate a new metadata serializer.- Specified by:
newSerializerin classAbstractCFMetaDataFactory
-
parse
protected void parse(MetaDataParser parser, java.lang.Class[] cls)
Description copied from class:AbstractCFMetaDataFactoryParse all given classses.- Overrides:
parsein classAbstractCFMetaDataFactory
-
defaultSourceFile
protected java.io.File defaultSourceFile(ClassMetaData meta)
Description copied from class:AbstractCFMetaDataFactoryReturn the default file for the given metadata.- Specified by:
defaultSourceFilein classAbstractCFMetaDataFactory
-
defaultSourceFile
protected java.io.File defaultSourceFile(QueryMetaData query, java.util.Map clsNames)
Description copied from class:AbstractCFMetaDataFactoryReturn a default file for the given query.- Specified by:
defaultSourceFilein classAbstractCFMetaDataFactory
-
defaultSourceFile
protected java.io.File defaultSourceFile(SequenceMetaData seq, java.util.Map clsNames)
Description copied from class:AbstractCFMetaDataFactoryReturn a default file for the given sequence.- Specified by:
defaultSourceFilein classAbstractCFMetaDataFactory
-
setConfiguration
public void setConfiguration(Configuration conf)
Description copied from interface:ConfigurableInvoked prior to setting bean properties.- Specified by:
setConfigurationin interfaceConfigurable
-
startConfiguration
public void startConfiguration()
Description copied from interface:ConfigurableInvoked before bean property configuration is begun on this object.- Specified by:
startConfigurationin interfaceConfigurable
-
endConfiguration
public void endConfiguration()
Description copied from interface:ConfigurableInvoked upon completion of bean property configuration for this object.- Specified by:
endConfigurationin interfaceConfigurable
-
setInto
public void setInto(Options opts)
Description copied from interface:GenericConfigurablePerform any generic configuration based on the data inopts. This method should remove any values inoptsthat have been successfully processed; if any values remain inoptsafter this method is executed, an exception will be thrown identifying those key-value pairs as invalid.- Specified by:
setIntoin interfaceGenericConfigurable
-
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(java.lang.Class<?> cls)
Description copied from interface:MetaDataFactoryLoad XMLClassMetadata for the given class. Loaded metadata should be added directly to the repository.- Specified by:
loadXMLMetaDatain interfaceMetaDataFactory
-
getManagedClassName
public java.lang.String getManagedClassName(java.lang.String mmClassName)
Description copied from interface:MetaDataFactoryGets the name of the managed class for the given fully-qualified meta-model class name.- Specified by:
getManagedClassNamein interfaceMetaDataFactory
-
getMetaModelClassName
public java.lang.String getMetaModelClassName(java.lang.String managedClassName)
Description copied from interface:MetaDataFactoryGets the name of the meta-model class for the given fully-qualified managed class name.- Specified by:
getMetaModelClassNamein interfaceMetaDataFactory
-
isMetaClass
public boolean isMetaClass(java.lang.Class<?> c)
Description copied from interface:MetaDataFactoryAffirms if the given class is a meta-class.- Specified by:
isMetaClassin interfaceMetaDataFactory
-
getManagedClass
public java.lang.Class<?> getManagedClass(java.lang.Class<?> c)
Description copied from interface:MetaDataFactoryGets the managed class corresponding to the given meta-class.- Specified by:
getManagedClassin interfaceMetaDataFactory- Returns:
- null if the given input is not a meta-class.
-
-