Package org.apache.cayenne.map
Class DataMap
java.lang.Object
org.apache.cayenne.map.DataMap
- All Implemented Interfaces:
Serializable,Comparable<DataMap>,EventListener,ConfigurationNode,DbEntityListener,ObjEntityListener,MappingNamespace,XMLSerializable
public class DataMap
extends Object
implements Serializable, ConfigurationNode, XMLSerializable, MappingNamespace, DbEntityListener, ObjEntityListener, Comparable<DataMap>
Stores a collection of related mapping objects that describe database and
object layers of an application. DataMap contains DbEntities mapping database
tables, ObjEntities - mapping persistent Java classes, Procedures - mapping
database stored procedures.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Resourceprotected DataChannelDescriptorstatic final StringDefines the name of the property for default DB catalog.static final StringDefines the name of the property for default DB schema.static final StringDefines the name of the property for default Java class package.static final Stringstatic final StringDefines the name of the property for default DB schema.static final StringDefines the name of the property for default Java superclass.protected Stringprotected intprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected MappingNamespaceprotected Booleanstatic final StringThe namespace in which the data map XML file will be created.static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> TacceptVisitor(ConfigurationNodeVisitor<T> visitor) voidaddDbEntity(DbEntity entity) Adds a new DbEntity to this DataMap.voidaddEmbeddable(Embeddable embeddable) Adds an embeddable object to the DataMap.voidaddObjEntity(ObjEntity entity) Adds a new ObjEntity to this DataMap.voidaddProcedure(Procedure procedure) Adds stored procedure to the list of procedures.voidaddQueryDescriptor(QueryDescriptor queryDescriptor) Stores a query descriptor under its name.voidAdds a named SQLResultSet to the DataMap.voidclear()voidvoidRemoves all stored embeddable objects from the map.voidvoidvoidvoidintvoidNew entity has been created/added.voidDbEntity property changed.voidEntity has been removed.voidencodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate) Prints itself as XML to the provided PrintWriter.Returns all DbEntities in this DataMap.getDbEntity(String dbEntityName) Returns DbEntity matching thenameparameter.Returns a unmodifiable map of DbEntities contained in this DataMap, keyed by DbEntity name.intgetEmbeddable(String className) Returns anEmbeddablematching class name or null if such Embeddable is not mapped.Returns a collection ofEmbeddablemappings stored in the DataMap.getInheritanceTree(String entityName) Returns "location" property value.getMappedEntities(DbEntity dbEntity) Returns all ObjEntities mapped to the given DbEntity.getName()Returns the name of this DataMap.Returns a parent namespace where this DataMap resides.static StringgetNameWithPackage(String pack, String name) Returns an unmodifiable collection of ObjEntities stored in this DataMap.getObjEntity(Class<?> entityClass) getObjEntity(String objEntityName) Returns an ObjEntity for a given name.getObjEntity(Persistent object) getObjEntityForJavaClass(String javaClassName) Returns an ObjEntity for a Persistent class name.Returns a unmodifiable map of ObjEntities contained in this DataMap, keyed by ObjEntity name.getProcedure(String procedureName) Returns a Procedure for a given name or null if no such procedure exists.Returns a sorted unmodifiable map of Procedures in this DataMap keyed by name.Returns stored procedures associated with this DataMap.getQueryDescriptor(String queryName) Returns a named query associated with this DataMap.Returns an unmodifiable collection of mapped queries.Returns a named result set mapping.getSubclassesForObjEntity(ObjEntity superEntity) voidinitWithProperties(Map<String, Object> properties) Performs DataMap initialization from a set of properties, using defaults for the missing properties.booleanvoidmergeWithDataMap(DataMap map) Adds all Object and DB entities and Queries from another map to this map.voidNew entity has been created/added.voidObjEntity property changed.voidEntity has been removed.voidremoveDbEntity(String dbEntityName) "Dirty" remove of the DbEntity from the data map.voidremoveDbEntity(String dbEntityName, boolean clearDependencies) Removes DbEntity from the DataMap.voidremoveEmbeddable(String className) Removes anEmbeddabledescriptor with matching class name.voidremoveObjEntity(String objEntityName) "Dirty" remove of the ObjEntity from the data map.voidremoveObjEntity(String objEntityName, boolean clearDependencies) Removes ObjEntity from the DataMap.voidremoveProcedure(String name) voidremoveQueryDescriptor(String queryName) Removes a named query from the DataMap.voidremoveResult(String name) voidsetConfigurationSource(Resource configurationSource) voidsetDataChannelDescriptor(DataChannelDescriptor dataChannelDescriptor) voidsetDefaultCatalog(String defaultCatalog) voidsetDefaultLockType(int defaultLockType) voidsetDefaultPackage(String defaultPackage) voidsetDefaultSchema(String defaultSchema) voidsetDefaultSuperclass(String defaultSuperclass) voidsetLocation(String location) Sets "location" property.voidSet the name of this DataMap.voidsetNamespace(MappingNamespace namespace) Sets a parent namespace where this DataMap resides.voidsetQuotingSQLIdentifiers(boolean quotingSqlIdentifiers) toString()
-
Field Details
-
DEFAULT_CATALOG_PROPERTY
Defines the name of the property for default DB catalog.- Since:
- 4.0
- See Also:
-
DEFAULT_SCHEMA_PROPERTY
Defines the name of the property for default DB schema.- Since:
- 1.1
- See Also:
-
DEFAULT_PACKAGE_PROPERTY
Defines the name of the property for default Java class package.- Since:
- 1.1
- See Also:
-
DEFAULT_SUPERCLASS_PROPERTY
Defines the name of the property for default Java superclass.- Since:
- 1.1
- See Also:
-
DEFAULT_LOCK_TYPE_PROPERTY
Defines the name of the property for default DB schema.- Since:
- 1.1
- See Also:
-
DEFAULT_QUOTE_SQL_IDENTIFIERS_PROPERTY
- See Also:
-
SCHEMA_XSD
The namespace in which the data map XML file will be created. This is also the URI to locate a copy of the schema document.- See Also:
-
SCHEMA_XSD_LOCATION
- See Also:
-
name
-
location
-
namespace
-
quotingSQLIdentifiers
-
defaultCatalog
-
defaultSchema
-
defaultPackage
-
defaultSuperclass
-
defaultLockType
protected int defaultLockType -
configurationSource
- Since:
- 3.1
-
dataChannelDescriptor
- Since:
- 3.1
-
-
Constructor Details
-
DataMap
public DataMap()Creates a new unnamed DataMap. -
DataMap
Creates a new named DataMap. -
DataMap
-
-
Method Details
-
getDataChannelDescriptor
- Since:
- 3.1
-
setDataChannelDescriptor
- Since:
- 3.1
-
acceptVisitor
- Specified by:
acceptVisitorin interfaceConfigurationNode- Since:
- 3.1
-
compareTo
- Specified by:
compareToin interfaceComparable<DataMap>- Since:
- 3.1
-
isQuotingSQLIdentifiers
public boolean isQuotingSQLIdentifiers()- Since:
- 3.0
-
setQuotingSQLIdentifiers
public void setQuotingSQLIdentifiers(boolean quotingSqlIdentifiers) - Since:
- 3.0
-
initWithProperties
Performs DataMap initialization from a set of properties, using defaults for the missing properties.- Since:
- 1.1
-
encodeAsXML
Prints itself as XML to the provided PrintWriter.- Specified by:
encodeAsXMLin interfaceXMLSerializable- Since:
- 1.1
-
toString
-
getName
Returns the name of this DataMap. -
setName
Set the name of this DataMap. -
mergeWithDataMap
Adds all Object and DB entities and Queries from another map to this map. Overwrites all existing entities and queries with the new ones.TODO: will need to implement advanced merge that allows different policies for overwriting entities / queries.
-
getLocation
Returns "location" property value. Location is abstract and can depend on how the DataMap was loaded. E.g. location can be a File on the filesystem or a location within a JAR. -
setLocation
Sets "location" property. -
getObjEntityMap
Returns a unmodifiable map of ObjEntities contained in this DataMap, keyed by ObjEntity name. -
getDbEntityMap
Returns a unmodifiable map of DbEntities contained in this DataMap, keyed by DbEntity name. -
getQueryDescriptor
Returns a named query associated with this DataMap.- Specified by:
getQueryDescriptorin interfaceMappingNamespace- Since:
- 4.0
-
addQueryDescriptor
Stores a query descriptor under its name.- Since:
- 1.1
-
removeQueryDescriptor
Removes a named query from the DataMap.- Since:
- 4.0
-
clearEmbeddables
public void clearEmbeddables()Removes all stored embeddable objects from the map.- Since:
- 3.0
-
clearResultSets
public void clearResultSets()- Since:
- 3.0
-
clearQueries
public void clearQueries()- Since:
- 1.1
-
clearObjEntities
public void clearObjEntities()- Since:
- 1.2
-
clearDbEntities
public void clearDbEntities()- Since:
- 1.2
-
clearProcedures
public void clearProcedures()- Since:
- 1.2
-
getQueryDescriptorMap
- Since:
- 4.0
-
getQueryDescriptors
Returns an unmodifiable collection of mapped queries.- Specified by:
getQueryDescriptorsin interfaceMappingNamespace- Since:
- 4.0
-
addEmbeddable
Adds an embeddable object to the DataMap.- Since:
- 3.0
-
addResult
Adds a named SQLResultSet to the DataMap.- Since:
- 3.0
-
addObjEntity
Adds a new ObjEntity to this DataMap. -
addDbEntity
Adds a new DbEntity to this DataMap. -
getObjEntities
Returns an unmodifiable collection of ObjEntities stored in this DataMap.- Specified by:
getObjEntitiesin interfaceMappingNamespace
-
getEmbeddableMap
- Since:
- 3.0
-
getEmbeddables
Returns a collection ofEmbeddablemappings stored in the DataMap.- Specified by:
getEmbeddablesin interfaceMappingNamespace- Since:
- 3.0
-
getResultsMap
- Since:
- 3.0
-
getResults
- Specified by:
getResultsin interfaceMappingNamespace- Since:
- 3.0
-
getEmbeddable
Description copied from interface:MappingNamespaceReturns anEmbeddablematching class name or null if such Embeddable is not mapped.- Specified by:
getEmbeddablein interfaceMappingNamespace- Since:
- 3.0
-
getResult
Description copied from interface:MappingNamespaceReturns a named result set mapping.- Specified by:
getResultin interfaceMappingNamespace- Since:
- 3.0
-
getDbEntities
Returns all DbEntities in this DataMap.- Specified by:
getDbEntitiesin interfaceMappingNamespace
-
getDbEntity
Returns DbEntity matching thenameparameter. No dependencies will be searched.- Specified by:
getDbEntityin interfaceMappingNamespace
-
getObjEntityForJavaClass
Returns an ObjEntity for a Persistent class name.- Since:
- 1.1
-
getObjEntity
Returns an ObjEntity for a given name. If it is not found in this DataMap, it will search a parent EntityNamespace.- Specified by:
getObjEntityin interfaceMappingNamespace
-
getMappedEntities
Returns all ObjEntities mapped to the given DbEntity. -
removeEmbeddable
Removes anEmbeddabledescriptor with matching class name.- Since:
- 3.0
-
removeResult
- Since:
- 3.0
-
removeDbEntity
"Dirty" remove of the DbEntity from the data map. -
removeDbEntity
Removes DbEntity from the DataMap. IfclearDependenciesis true, all DbRelationships that reference this entity are also removed. ObjEntities that rely on this entity are cleaned up.- Since:
- 1.1
-
removeObjEntity
"Dirty" remove of the ObjEntity from the data map. -
removeObjEntity
Removes ObjEntity from the DataMap. IfclearDependenciesis true, all ObjRelationships that reference this entity are also removed.- Since:
- 1.1
-
getProcedures
Returns stored procedures associated with this DataMap.- Specified by:
getProceduresin interfaceMappingNamespace
-
getProcedure
Returns a Procedure for a given name or null if no such procedure exists. If Procedure is not found in this DataMap, a parent EntityNamcespace is searched.- Specified by:
getProcedurein interfaceMappingNamespace
-
addProcedure
Adds stored procedure to the list of procedures. If there is another procedure registered under the same name, throws an IllegalArgumentException. -
removeProcedure
-
getProcedureMap
Returns a sorted unmodifiable map of Procedures in this DataMap keyed by name. -
getNamespace
Returns a parent namespace where this DataMap resides. Parent EntityNamespace is used to establish relationships with entities in other DataMaps.- Since:
- 1.1
-
setNamespace
Sets a parent namespace where this DataMap resides. Parent EntityNamespace is used to establish relationships with entities in other DataMaps.- Since:
- 1.1
-
getDefaultLockType
public int getDefaultLockType()- Since:
- 1.1
-
setDefaultLockType
public void setDefaultLockType(int defaultLockType) - Since:
- 1.1
-
getDefaultPackage
- Since:
- 1.1
-
setDefaultPackage
- Since:
- 1.1
-
getDefaultSchema
- Since:
- 1.1
-
setDefaultSchema
- Since:
- 1.1
-
getDefaultSuperclass
- Since:
- 1.1
-
setDefaultSuperclass
- Since:
- 1.1
-
dbEntityChanged
DbEntity property changed. May be name, attribute or relationship added or removed, etc. Attribute and relationship property changes are handled in respective listeners.- Specified by:
dbEntityChangedin interfaceDbEntityListener- Since:
- 1.2
-
dbEntityAdded
New entity has been created/added.- Specified by:
dbEntityAddedin interfaceDbEntityListener
-
dbEntityRemoved
Entity has been removed.- Specified by:
dbEntityRemovedin interfaceDbEntityListener
-
objEntityChanged
ObjEntity property changed. May be name, attribute or relationship added or removed, etc. Attribute and relationship property changes are handled in respective listeners.- Specified by:
objEntityChangedin interfaceObjEntityListener- Since:
- 1.2
-
objEntityAdded
New entity has been created/added.- Specified by:
objEntityAddedin interfaceObjEntityListener
-
objEntityRemoved
Entity has been removed.- Specified by:
objEntityRemovedin interfaceObjEntityListener
-
getConfigurationSource
- Since:
- 3.1
-
setConfigurationSource
- Since:
- 3.1
-
getDefaultCatalog
- Since:
- 4.0
-
setDefaultCatalog
- Since:
- 4.0
-
getInheritanceTree
- Specified by:
getInheritanceTreein interfaceMappingNamespace- Since:
- 4.0
-
getObjEntity
- Specified by:
getObjEntityin interfaceMappingNamespace- Since:
- 4.0
-
getObjEntity
- Specified by:
getObjEntityin interfaceMappingNamespace
-
clear
public void clear() -
getNameWithDefaultPackage
- Returns:
- package + "." + name when it is possible otherwise just name
- Since:
- 4.0
-
getNameWithPackage
- Returns:
- package + "." + name when it is possible otherwise just name
- Since:
- 4.0
-
getSubclassesForObjEntity
-