org.apache.openjpa.jdbc.meta
Class MetaDataPlusMappingFactory

java.lang.Object
  extended by org.apache.openjpa.meta.DelegatingMetaDataFactory
      extended by org.apache.openjpa.jdbc.meta.MetaDataPlusMappingFactory
All Implemented Interfaces:
MetaDataFactory, MetaDataModes

public class MetaDataPlusMappingFactory
extends DelegatingMetaDataFactory

Combines two internal MetaDataFactory instances -- one for metadata, one for mappings -- into a single MetaDataFactory facade.

Author:
Abe White

Field Summary
 
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
MetaDataPlusMappingFactory(MetaDataFactory meta, MetaDataFactory map)
          Constructor; supply delegates.
MetaDataPlusMappingFactory(MetaDataFactory meta, MetaDataFactory map, OpenJPAConfiguration conf)
          Constructor, supply delegates and Configuration.
 
Method Summary
 void addClassExtensionKeys(Collection exts)
          Add any extension keys used by this instance to the given set.
 void addFieldExtensionKeys(Collection exts)
          Add any extension keys used by this instance to the given set.
 void clear()
          Clear any internal caches.
 boolean drop(Class[] cls, int mode, ClassLoader envLoader)
          Drop the metadata for the given classes in the given mode(s).
 MetaDataFactory getInnermostMappingDelegate()
          Innermost mapping delegate.
 MetaDataFactory getMappingDelegate()
          Mapping factory delegate.
 Set getPersistentTypeNames(boolean classpath, ClassLoader envLoader)
          Return all persistent class names, using the metadata locations supplied in configuration, optionally scanning the classpath.
 void load(Class cls, int mode, ClassLoader envLoader)
          Load metadata for the given class in the given mode(s).
 void setRepository(MetaDataRepository repos)
          Set the repository to load metadata into.
 void setStoreDirectory(File dir)
          Base directory for storing metadata.
 void setStoreMode(int store)
          Storage mode.
 void setStrict(boolean strict)
          If true, I/O's must exactly obey the mode directives given, and may not load additional information.
 boolean store(ClassMetaData[] metas, QueryMetaData[] queries, SequenceMetaData[] seqs, int mode, Map output)
          Store the given metadata.
 
Methods inherited from class org.apache.openjpa.meta.DelegatingMetaDataFactory
getDefaults, getDelegate, getInnermostDelegate, getManagedClass, getManagedClassName, getMetaModelClassName, getQueryScope, getResultSetMappingScope, isMetaClass, loadXMLMetaData, newClassArgParser
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MetaDataPlusMappingFactory

public MetaDataPlusMappingFactory(MetaDataFactory meta,
                                  MetaDataFactory map)
Constructor; supply delegates.


MetaDataPlusMappingFactory

public MetaDataPlusMappingFactory(MetaDataFactory meta,
                                  MetaDataFactory map,
                                  OpenJPAConfiguration conf)
Constructor, supply delegates and Configuration.

Parameters:
meta - MetaFactory delegate, should not be null.
map - MappingFactory delegate, should not be null.
conf - Configuration in use. Used to determine whether delegates should use strict mode.
Method Detail

getMappingDelegate

public MetaDataFactory getMappingDelegate()
Mapping factory delegate.


getInnermostMappingDelegate

public MetaDataFactory getInnermostMappingDelegate()
Innermost mapping delegate.


setRepository

public void setRepository(MetaDataRepository repos)
Description copied from interface: MetaDataFactory
Set the repository to load metadata into. This method will be called before use.

Specified by:
setRepository in interface MetaDataFactory
Overrides:
setRepository in class DelegatingMetaDataFactory

setStoreDirectory

public void setStoreDirectory(File dir)
Description copied from interface: MetaDataFactory
Base directory for storing metadata. May not be called.

Specified by:
setStoreDirectory in interface MetaDataFactory
Overrides:
setStoreDirectory in class DelegatingMetaDataFactory

setStoreMode

public void setStoreMode(int store)
Description copied from interface: MetaDataFactory
Storage mode. May not be called.

Specified by:
setStoreMode in interface MetaDataFactory
Overrides:
setStoreMode in class DelegatingMetaDataFactory

setStrict

public void setStrict(boolean strict)
Description copied from interface: MetaDataFactory
If true, I/O's must exactly obey the mode directives given, and may not load additional information.

Specified by:
setStrict in interface MetaDataFactory
Overrides:
setStrict in class DelegatingMetaDataFactory

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
Overrides:
load in class DelegatingMetaDataFactory
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

store

public boolean store(ClassMetaData[] metas,
                     QueryMetaData[] queries,
                     SequenceMetaData[] seqs,
                     int mode,
                     Map output)
Description copied from interface: MetaDataFactory
Store the given metadata.

Specified by:
store in interface MetaDataFactory
Overrides:
store in class DelegatingMetaDataFactory
mode - hint about what aspects of the metadata have changed
output - if non-null, rather than storing metadata directly, add entries mapping each output destination such as a File to 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: MetaDataFactory
Drop the metadata for the given classes in the given mode(s).

Specified by:
drop in interface MetaDataFactory
Overrides:
drop in class DelegatingMetaDataFactory
Returns:
false if any metadata could not be dropped

getPersistentTypeNames

public Set getPersistentTypeNames(boolean classpath,
                                  ClassLoader envLoader)
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; use MetaDataRepository.getPersistentTypeNames(boolean, java.lang.ClassLoader) instead.

Specified by:
getPersistentTypeNames in interface MetaDataFactory
Overrides:
getPersistentTypeNames in class DelegatingMetaDataFactory
See Also:
MetaDataRepository.getPersistentTypeNames(boolean, java.lang.ClassLoader), MetaDataRepository.loadPersistentTypes(boolean, java.lang.ClassLoader)

clear

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

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

addClassExtensionKeys

public void addClassExtensionKeys(Collection exts)
Description copied from interface: MetaDataFactory
Add any extension keys used by this instance to the given set.

Specified by:
addClassExtensionKeys in interface MetaDataFactory
Overrides:
addClassExtensionKeys in class DelegatingMetaDataFactory

addFieldExtensionKeys

public void addFieldExtensionKeys(Collection exts)
Description copied from interface: MetaDataFactory
Add any extension keys used by this instance to the given set.

Specified by:
addFieldExtensionKeys in interface MetaDataFactory
Overrides:
addFieldExtensionKeys in class DelegatingMetaDataFactory


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