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
Base class for factory implementations built around XML metadata files
in the common format.
- Since:
- 0.4.0
- Author:
- Abe White
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Internal parser interface.static interface
Internal serializer interface. -
Field Summary
Modifier and TypeFieldDescriptionprotected Collection<String>
protected Collection<File>
static final String
static final String
static final String
protected Collection<String>
protected Collection<URL>
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
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
backupAndDelete
(Collection files) Backup and delete the source files for the given metadatas.void
clear()
Clear any internal caches.protected void
clearMapping
(ClassMetaData meta) Clear mapping information from the given metadata.static String
Decodes a URL-encoded path string.protected abstract File
Return the default file for the given metadata.protected abstract File
defaultSourceFile
(QueryMetaData query, Map clsNames) Return a default file for the given query.protected abstract File
defaultSourceFile
(SequenceMetaData seq, Map clsNames) Return a default file for the given sequence.boolean
drop
(Class[] cls, int mode, ClassLoader envLoader) Drop the metadata for the given classes in the given mode(s).protected ClassMetaData
getDefiningMetaData
(QueryMetaData query, Map clsNames) Return the metadata that defines the given query, if any.getPersistentTypeNames
(boolean devpath, ClassLoader envLoader) Return all persistent class names, using the metadata locations supplied in configuration, optionally scanning the classpath.protected File
getSourceFile
(ClassMetaData meta) Return the current source file of the given metadata.protected File
Return the current source file of the given metadata.protected boolean
Return true if this factory deals only with mapping data, and relies on a separate factory for metadata.protected boolean
Whether to parse classes top down.protected void
mapPersistentTypeNames
(Object rsrc, String[] names) Implement this method to map metadata resources to the persistent types contained within them.protected abstract AbstractCFMetaDataFactory.Serializer
Create a new annotation metadata serializer.protected abstract MetaDataFilter
Return a metadata filter that identifies metadata resources when performing jar and classpath scans.protected abstract AbstractCFMetaDataFactory.Parser
newParser
(boolean loading) Create a new metadata parser.protected abstract AbstractCFMetaDataFactory.Serializer
Create a new metadata serializer.protected void
parse
(MetaDataParser parser, Class[] cls) Parse all given classses.protected void
parse
(MetaDataParser parser, Collection files) Parse all given files.parsePersistentTypeNames
(ClassLoader loader) Parse persistent type names.protected void
serialize
(MetaDataSerializer ser, Map<File, String> output, int flags) Tell the given serialier to write its metadatas.void
setClasspathScan
(String cpath) Set of classpath directories or jars to scan for metadata supplied by user via auto-configuration.void
setClasspathScan
(Collection<String> cpath) Set of classpath directories or jars to scan for metadata supplied by user.void
Set of semicolon-separatedFile
s of metadata files or directories supplied by user via auto-configuration.void
setFiles
(Collection<File> files) Set ofFile
s of metadata files or directories supplied by user.void
setResources
(String rsrcs) Set of semicolon-separated resource paths of metadata files or jars supplied by user via auto-configuration.void
setResources
(Collection<String> rsrcs) Set of resource paths of metadata files or jars supplied by user.protected void
setSourceFile
(ClassMetaData meta, File sourceFile) Set the current source file of the given metadata.protected void
setSourceFile
(SequenceMetaData meta, File sourceFile) Set the current source file of the given metadata.void
Set of semicolon-separatedURL
s of metadata files or jars supplied by user via auto-configuration.void
setURLs
(Collection<URL> urls) Set ofURL
s of metadata files or jars supplied by user.boolean
store
(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 Details
-
files
-
urls
-
rsrcs
-
cpath
-
PERSISTENCE_UNIT_ROOT_URL
- See Also:
-
MAPPING_FILE_NAMES
- See Also:
-
JAR_FILE_URLS
- See Also:
-
-
Constructor Details
-
AbstractCFMetaDataFactory
public AbstractCFMetaDataFactory()
-
-
Method Details
-
setFiles
Set ofFile
s of metadata files or directories supplied by user. -
setFiles
Set of semicolon-separatedFile
s of metadata files or directories supplied by user via auto-configuration. -
setURLs
Set ofURL
s of metadata files or jars supplied by user. -
setURLs
Set of semicolon-separatedURL
s of metadata files or jars supplied by user via auto-configuration. -
setResources
Set of resource paths of metadata files or jars supplied by user. -
setResources
Set of semicolon-separated resource paths of metadata files or jars supplied by user via auto-configuration. -
setClasspathScan
Set of classpath directories or jars to scan for metadata supplied by user. -
setClasspathScan
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:MetaDataFactory
Store the given metadata.- Specified by:
store
in interfaceMetaDataFactory
- Overrides:
store
in classAbstractMetaDataFactory
mode
- 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 aFile
to the planned output for that destination in string form- Returns:
- false if this factory is unable to store metadata
-
drop
Description copied from interface:MetaDataFactory
Drop the metadata for the given classes in the given mode(s).- Specified by:
drop
in interfaceMetaDataFactory
- Overrides:
drop
in 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
Parse all given files. -
parse
Parse all given classses. -
isParseTopDown
protected boolean isParseTopDown()Whether to parse classes top down. Defaults to false. -
serialize
Tell the given serialier to write its metadatas. -
backupAndDelete
Backup and delete the source files for the given metadatas. -
clearMapping
Clear mapping information from the given metadata. -
getSourceFile
Return the current source file of the given metadata. -
setSourceFile
Set the current source file of the given metadata. -
getSourceFile
Return the current source file of the given metadata. -
setSourceFile
Set the current source file of the given metadata. -
defaultSourceFile
Return the default file for the given metadata. -
defaultSourceFile
Return a default file for the given query. -
defaultSourceFile
Return a default file for the given sequence. -
newParser
Create a new metadata parser.- Parameters:
loading
- if true, this will be the cached parser used for loading metadata
-
newSerializer
Create a new metadata serializer. -
newAnnotationSerializer
Create a new annotation metadata serializer. -
getDefiningMetaData
Return the metadata that defines the given query, if any.- Parameters:
clsNames
- map of class names to metadatas
-
getPersistentTypeNames
Description copied from interface:MetaDataFactory
Return 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:
getPersistentTypeNames
in interfaceMetaDataFactory
- Overrides:
getPersistentTypeNames
in classAbstractMetaDataFactory
- See Also:
-
parsePersistentTypeNames
Parse persistent type names.- Throws:
IOException
-
decode
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
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
Return a metadata filter that identifies metadata resources when performing jar and classpath scans. -
clear
public void clear()Description copied from interface:MetaDataFactory
Clear any internal caches.- Specified by:
clear
in interfaceMetaDataFactory
- Overrides:
clear
in classAbstractMetaDataFactory
-