Package org.apache.openjpa.meta
Class AbstractCFMetaDataFactory
- java.lang.Object
-
- org.apache.openjpa.meta.AbstractMetaDataFactory
-
- org.apache.openjpa.meta.AbstractCFMetaDataFactory
-
- All Implemented Interfaces:
MetaDataFactory,MetaDataModes
- Direct Known Subclasses:
PersistenceMetaDataFactory
public abstract class AbstractCFMetaDataFactory extends AbstractMetaDataFactory
Base class for factory implementations built around XML metadata files in the common format.- Since:
- 0.4.0
- Author:
- Abe White
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceAbstractCFMetaDataFactory.ParserInternal parser interface.static interfaceAbstractCFMetaDataFactory.SerializerInternal serializer interface.
-
Field Summary
Fields Modifier and Type Field Description protected Collection<String>cpathprotected Collection<File>filesstatic StringJAR_FILE_URLSstatic StringMAPPING_FILE_NAMESstatic StringPERSISTENCE_UNIT_ROOT_URLprotected Collection<String>rsrcsprotected Collection<URL>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 AbstractCFMetaDataFactory()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidbackupAndDelete(Collection files)Backup and delete the source files for the given metadatas.voidclear()Clear any internal caches.protected voidclearMapping(ClassMetaData meta)Clear mapping information from the given metadata.static Stringdecode(String s)Decodes a URL-encoded path string.protected abstract FiledefaultSourceFile(ClassMetaData meta)Return the default file for the given metadata.protected abstract FiledefaultSourceFile(QueryMetaData query, Map clsNames)Return a default file for the given query.protected abstract FiledefaultSourceFile(SequenceMetaData seq, Map clsNames)Return a default file for the given sequence.booleandrop(Class[] cls, int mode, ClassLoader envLoader)Drop the metadata for the given classes in the given mode(s).protected ClassMetaDatagetDefiningMetaData(QueryMetaData query, Map clsNames)Return the metadata that defines the given query, if any.Set<String>getPersistentTypeNames(boolean devpath, ClassLoader envLoader)Return all persistent class names, using the metadata locations supplied in configuration, optionally scanning the classpath.protected FilegetSourceFile(ClassMetaData meta)Return the current source file of the given metadata.protected FilegetSourceFile(SequenceMetaData meta)Return the current source file of the given metadata.protected booleanisMappingOnlyFactory()Return true if this factory deals only with mapping data, and relies on a separate factory for metadata.protected booleanisParseTopDown()Whether to parse classes top down.protected voidmapPersistentTypeNames(Object rsrc, String[] names)Implement this method to map metadata resources to the persistent types contained within them.protected abstract AbstractCFMetaDataFactory.SerializernewAnnotationSerializer()Create a new annotation metadata serializer.protected abstract MetaDataFilternewMetaDataFilter()Return a metadata filter that identifies metadata resources when performing jar and classpath scans.protected abstract AbstractCFMetaDataFactory.ParsernewParser(boolean loading)Create a new metadata parser.protected abstract AbstractCFMetaDataFactory.SerializernewSerializer()Create a new metadata serializer.protected voidparse(MetaDataParser parser, Class[] cls)Parse all given classses.protected voidparse(MetaDataParser parser, Collection files)Parse all given files.protected Set<String>parsePersistentTypeNames(ClassLoader loader)Parse persistent type names.protected voidserialize(MetaDataSerializer ser, Map<File,String> output, int flags)Tell the given serialier to write its metadatas.voidsetClasspathScan(String cpath)Set of classpath directories or jars to scan for metadata supplied by user via auto-configuration.voidsetClasspathScan(Collection<String> cpath)Set of classpath directories or jars to scan for metadata supplied by user.voidsetFiles(String files)Set of semicolon-separatedFiles of metadata files or directories supplied by user via auto-configuration.voidsetFiles(Collection<File> files)Set ofFiles of metadata files or directories supplied by user.voidsetResources(String rsrcs)Set of semicolon-separated resource paths of metadata files or jars supplied by user via auto-configuration.voidsetResources(Collection<String> rsrcs)Set of resource paths of metadata files or jars supplied by user.protected voidsetSourceFile(ClassMetaData meta, File sourceFile)Set the current source file of the given metadata.protected voidsetSourceFile(SequenceMetaData meta, File sourceFile)Set the current source file of the given metadata.voidsetURLs(String urls)Set of semicolon-separatedURLs of metadata files or jars supplied by user via auto-configuration.voidsetURLs(Collection<URL> urls)Set ofURLs of metadata files or jars supplied by user.booleanstore(ClassMetaData[] metas, QueryMetaData[] queries, SequenceMetaData[] seqs, int mode, Map<File,String> output)Store the given metadata.-
Methods inherited from class org.apache.openjpa.meta.AbstractMetaDataFactory
addClassExtensionKeys, addFieldExtensionKeys, getQueryScope, getResultSetMappingScope, newClassArgParser, setRepository, setStoreDirectory, setStoreMode, setStrict, setTypes, setTypes
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.openjpa.meta.MetaDataFactory
getDefaults, getManagedClass, getManagedClassName, getMetaModelClassName, isMetaClass, load, loadXMLMetaData
-
-
-
-
Field Detail
-
files
protected Collection<File> files
-
urls
protected Collection<URL> urls
-
rsrcs
protected Collection<String> rsrcs
-
cpath
protected Collection<String> cpath
-
PERSISTENCE_UNIT_ROOT_URL
public static final String PERSISTENCE_UNIT_ROOT_URL
- See Also:
- Constant Field Values
-
MAPPING_FILE_NAMES
public static final String MAPPING_FILE_NAMES
- See Also:
- Constant Field Values
-
JAR_FILE_URLS
public static final String JAR_FILE_URLS
- See Also:
- Constant Field Values
-
-
Method Detail
-
setFiles
public void setFiles(Collection<File> files)
Set ofFiles of metadata files or directories supplied by user.
-
setFiles
public void setFiles(String files)
Set of semicolon-separatedFiles of metadata files or directories supplied by user via auto-configuration.
-
setURLs
public void setURLs(Collection<URL> urls)
Set ofURLs of metadata files or jars supplied by user.
-
setURLs
public void setURLs(String urls)
Set of semicolon-separatedURLs of metadata files or jars supplied by user via auto-configuration.
-
setResources
public void setResources(Collection<String> rsrcs)
Set of resource paths of metadata files or jars supplied by user.
-
setResources
public void setResources(String rsrcs)
Set of semicolon-separated resource paths of metadata files or jars supplied by user via auto-configuration.
-
setClasspathScan
public void setClasspathScan(Collection<String> cpath)
Set of classpath directories or jars to scan for metadata supplied by user.
-
setClasspathScan
public void setClasspathScan(String cpath)
Set of classpath directories or jars to scan for metadata supplied by user via auto-configuration.
-
store
public boolean store(ClassMetaData[] metas, QueryMetaData[] queries, SequenceMetaData[] seqs, int mode, Map<File,String> output)
Description copied from interface:MetaDataFactoryStore the given metadata.- Specified by:
storein interfaceMetaDataFactory- Overrides:
storein classAbstractMetaDataFactorymode- hint about what aspects of the metadata have changedoutput- if non-null, rather than storing metadata directly, add entries mapping each output destination such as aFileto the planned output for that destination in string form- Returns:
- false if this factory is unable to store metadata
-
drop
public boolean drop(Class[] cls, int mode, ClassLoader envLoader)
Description copied from interface:MetaDataFactoryDrop the metadata for the given classes in the given mode(s).- Specified by:
dropin interfaceMetaDataFactory- Overrides:
dropin classAbstractMetaDataFactory- Returns:
- false if any metadata could not be dropped
-
isMappingOnlyFactory
protected boolean isMappingOnlyFactory()
Return true if this factory deals only with mapping data, and relies on a separate factory for metadata.
-
parse
protected void parse(MetaDataParser parser, Collection files)
Parse all given files.
-
parse
protected void parse(MetaDataParser parser, Class[] cls)
Parse all given classses.
-
isParseTopDown
protected boolean isParseTopDown()
Whether to parse classes top down. Defaults to false.
-
serialize
protected void serialize(MetaDataSerializer ser, Map<File,String> output, int flags)
Tell the given serialier to write its metadatas.
-
backupAndDelete
protected void backupAndDelete(Collection files)
Backup and delete the source files for the given metadatas.
-
clearMapping
protected void clearMapping(ClassMetaData meta)
Clear mapping information from the given metadata.
-
getSourceFile
protected File getSourceFile(ClassMetaData meta)
Return the current source file of the given metadata.
-
setSourceFile
protected void setSourceFile(ClassMetaData meta, File sourceFile)
Set the current source file of the given metadata.
-
getSourceFile
protected File getSourceFile(SequenceMetaData meta)
Return the current source file of the given metadata.
-
setSourceFile
protected void setSourceFile(SequenceMetaData meta, File sourceFile)
Set the current source file of the given metadata.
-
defaultSourceFile
protected abstract File defaultSourceFile(ClassMetaData meta)
Return the default file for the given metadata.
-
defaultSourceFile
protected abstract File defaultSourceFile(QueryMetaData query, Map clsNames)
Return a default file for the given query.
-
defaultSourceFile
protected abstract File defaultSourceFile(SequenceMetaData seq, Map clsNames)
Return a default file for the given sequence.
-
newParser
protected abstract AbstractCFMetaDataFactory.Parser newParser(boolean loading)
Create a new metadata parser.- Parameters:
loading- if true, this will be the cached parser used for loading metadata
-
newSerializer
protected abstract AbstractCFMetaDataFactory.Serializer newSerializer()
Create a new metadata serializer.
-
newAnnotationSerializer
protected abstract AbstractCFMetaDataFactory.Serializer newAnnotationSerializer()
Create a new annotation metadata serializer.
-
getDefiningMetaData
protected ClassMetaData getDefiningMetaData(QueryMetaData query, Map clsNames)
Return the metadata that defines the given query, if any.- Parameters:
clsNames- map of class names to metadatas
-
getPersistentTypeNames
public Set<String> getPersistentTypeNames(boolean devpath, ClassLoader envLoader)
Description copied from interface:MetaDataFactoryReturn all persistent class names, using the metadata locations supplied in configuration, optionally scanning the classpath. Return null if no types are supplied and this factory is unable to scan the classpath. This method should not be used directly by outside code; useMetaDataRepository.getPersistentTypeNames(boolean, java.lang.ClassLoader)instead.- Specified by:
getPersistentTypeNamesin interfaceMetaDataFactory- Overrides:
getPersistentTypeNamesin classAbstractMetaDataFactory- See Also:
MetaDataRepository.getPersistentTypeNames(boolean, java.lang.ClassLoader),MetaDataRepository.loadPersistentTypes(boolean, java.lang.ClassLoader)
-
parsePersistentTypeNames
protected Set<String> parsePersistentTypeNames(ClassLoader loader) throws IOException
Parse persistent type names.- Throws:
IOException
-
decode
public static String decode(String s)
Decodes a URL-encoded path string. For example, an encoded space (%20) is decoded into a normal space (' ') character. Added via OPENJPA-2102.- Parameters:
s- - the encoded URL string- Returns:
- String decoded - the decoded string.
-
mapPersistentTypeNames
protected void mapPersistentTypeNames(Object rsrc, String[] names)
Implement this method to map metadata resources to the persistent types contained within them. The method will be called whengetPersistentTypeNames(boolean, java.lang.ClassLoader)is invoked.
-
newMetaDataFilter
protected abstract MetaDataFilter newMetaDataFilter()
Return a metadata filter that identifies metadata resources when performing jar and classpath scans.
-
clear
public void clear()
Description copied from interface:MetaDataFactoryClear any internal caches.- Specified by:
clearin interfaceMetaDataFactory- Overrides:
clearin classAbstractMetaDataFactory
-
-