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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringCLIENT_SUPPORTED_PROPERTYDefines whether a DataMap supports client entities.protected booleanclientSupportedprotected ResourceconfigurationSourceprotected DataChannelDescriptordataChannelDescriptorstatic StringDEFAULT_CATALOG_PROPERTYDefines the name of the property for default DB catalog.static StringDEFAULT_CLIENT_PACKAGE_PROPERTYDefines the name of the property for default client Java class package.static StringDEFAULT_CLIENT_SUPERCLASS_PROPERTYDefines the name of the property for default client Java superclass.static StringDEFAULT_LOCK_TYPE_PROPERTYDefines the name of the property for default DB schema.static StringDEFAULT_PACKAGE_PROPERTYDefines the name of the property for default Java class package.static StringDEFAULT_QUOTE_SQL_IDENTIFIERS_PROPERTYstatic StringDEFAULT_SCHEMA_PROPERTYDefines the name of the property for default DB schema.static StringDEFAULT_SUPERCLASS_PROPERTYDefines the name of the property for default Java superclass.protected StringdefaultCatalogprotected StringdefaultClientPackageprotected StringdefaultClientSuperclassprotected intdefaultLockTypeprotected StringdefaultPackageprotected StringdefaultSchemaprotected StringdefaultSuperclassprotected Stringlocationprotected Stringnameprotected MappingNamespacenamespaceprotected BooleanquotingSQLIdentifiersstatic StringSCHEMA_XSDThe namespace in which the data map XML file will be created.static StringSCHEMA_XSD_LOCATION
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <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.voidaddResult(SQLResult result)Adds a named SQLResultSet to the DataMap.voidclear()voidclearDbEntities()voidclearEmbeddables()Removes all stored embeddable objects from the map.voidclearObjEntities()voidclearProcedures()voidclearQueries()voidclearResultSets()intcompareTo(DataMap o)voiddbEntityAdded(EntityEvent e)New entity has been created/added.voiddbEntityChanged(EntityEvent e)DbEntity property changed.voiddbEntityRemoved(EntityEvent e)Entity has been removed.voidencodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate)Prints itself as XML to the provided PrintWriter.DataMapgetClientDataMap(EntityResolver serverResolver)Returns a DataMap stripped of any server-side information, such as DbEntity mapping, or ObjEntities that are not allowed in the client tier.ResourcegetConfigurationSource()DataChannelDescriptorgetDataChannelDescriptor()Collection<DbEntity>getDbEntities()Returns all DbEntities in this DataMap.DbEntitygetDbEntity(String dbEntityName)Returns DbEntity matching thenameparameter.Map<String,DbEntity>getDbEntityMap()Returns a unmodifiable map of DbEntities contained in this DataMap, keyed by DbEntity name.StringgetDefaultCatalog()StringgetDefaultClientPackage()Returns default client package.StringgetDefaultClientSuperclass()Returns default client superclass.intgetDefaultLockType()StringgetDefaultPackage()StringgetDefaultSchema()StringgetDefaultSuperclass()EmbeddablegetEmbeddable(String className)Returns anEmbeddablematching class name or null if such Embeddable is not mapped.Map<String,Embeddable>getEmbeddableMap()Collection<Embeddable>getEmbeddables()Returns a collection ofEmbeddablemappings stored in the DataMap.EntityInheritanceTreegetInheritanceTree(String entityName)StringgetLocation()Returns "location" property value.Collection<ObjEntity>getMappedEntities(DbEntity dbEntity)Returns all ObjEntities mapped to the given DbEntity.StringgetName()Returns the name of this DataMap.MappingNamespacegetNamespace()Returns a parent namespace where this DataMap resides.StringgetNameWithDefaultClientPackage(String name)StringgetNameWithDefaultPackage(String name)static StringgetNameWithPackage(String pack, String name)Collection<ObjEntity>getObjEntities()Returns an unmodifiable collection of ObjEntities stored in this DataMap.ObjEntitygetObjEntity(Class<?> entityClass)ObjEntitygetObjEntity(String objEntityName)Returns an ObjEntity for a given name.ObjEntitygetObjEntity(Persistent object)ObjEntitygetObjEntityForJavaClass(String javaClassName)Returns an ObjEntity for a DataObject class name.Map<String,ObjEntity>getObjEntityMap()Returns a unmodifiable map of ObjEntities contained in this DataMap, keyed by ObjEntity name.ProceduregetProcedure(String procedureName)Returns a Procedure for a given name or null if no such procedure exists.Map<String,Procedure>getProcedureMap()Returns a sorted unmodifiable map of Procedures in this DataMap keyed by name.Collection<Procedure>getProcedures()Returns stored procedures associated with this DataMap.QueryDescriptorgetQueryDescriptor(String queryName)Returns a named query associated with this DataMap.Map<String,QueryDescriptor>getQueryDescriptorMap()Collection<QueryDescriptor>getQueryDescriptors()Returns an unmodifiable collection of mapped queries.SQLResultgetResult(String name)Returns a named result set mapping.Collection<SQLResult>getResults()Map<String,SQLResult>getResultsMap()Map<String,ObjEntity>getSubclassesForObjEntity(ObjEntity superEntity)voidinitWithProperties(Map<String,Object> properties)Performs DataMap initialization from a set of properties, using defaults for the missing properties.booleanisClientSupported()booleanisQuotingSQLIdentifiers()voidmergeWithDataMap(DataMap map)Adds all Object and DB entities and Queries from another map to this map.voidobjEntityAdded(EntityEvent e)New entity has been created/added.voidobjEntityChanged(EntityEvent e)ObjEntity property changed.voidobjEntityRemoved(EntityEvent e)Entity 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)voidsetClientSupported(boolean clientSupport)voidsetConfigurationSource(Resource configurationSource)voidsetDataChannelDescriptor(DataChannelDescriptor dataChannelDescriptor)voidsetDefaultCatalog(String defaultCatalog)voidsetDefaultClientPackage(String defaultClientPackage)voidsetDefaultClientSuperclass(String defaultClientSuperclass)voidsetDefaultLockType(int defaultLockType)voidsetDefaultPackage(String defaultPackage)voidsetDefaultSchema(String defaultSchema)voidsetDefaultSuperclass(String defaultSuperclass)voidsetLocation(String location)Sets "location" property.voidsetName(String name)Set the name of this DataMap.voidsetNamespace(MappingNamespace namespace)Sets a parent namespace where this DataMap resides.voidsetQuotingSQLIdentifiers(boolean quotingSqlIdentifiers)StringtoString()
-
-
-
Field Detail
-
CLIENT_SUPPORTED_PROPERTY
public static final String CLIENT_SUPPORTED_PROPERTY
Defines whether a DataMap supports client entities.- Since:
- 1.2
- See Also:
- Constant Field Values
-
DEFAULT_CLIENT_PACKAGE_PROPERTY
public static final String DEFAULT_CLIENT_PACKAGE_PROPERTY
Defines the name of the property for default client Java class package.- Since:
- 1.2
- See Also:
- Constant Field Values
-
DEFAULT_CLIENT_SUPERCLASS_PROPERTY
public static final String DEFAULT_CLIENT_SUPERCLASS_PROPERTY
Defines the name of the property for default client Java superclass.- Since:
- 3.0
- See Also:
- Constant Field Values
-
DEFAULT_CATALOG_PROPERTY
public static final String DEFAULT_CATALOG_PROPERTY
Defines the name of the property for default DB catalog.- Since:
- 4.0
- See Also:
- Constant Field Values
-
DEFAULT_SCHEMA_PROPERTY
public static final String DEFAULT_SCHEMA_PROPERTY
Defines the name of the property for default DB schema.- Since:
- 1.1
- See Also:
- Constant Field Values
-
DEFAULT_PACKAGE_PROPERTY
public static final String DEFAULT_PACKAGE_PROPERTY
Defines the name of the property for default Java class package.- Since:
- 1.1
- See Also:
- Constant Field Values
-
DEFAULT_SUPERCLASS_PROPERTY
public static final String DEFAULT_SUPERCLASS_PROPERTY
Defines the name of the property for default Java superclass.- Since:
- 1.1
- See Also:
- Constant Field Values
-
DEFAULT_LOCK_TYPE_PROPERTY
public static final String DEFAULT_LOCK_TYPE_PROPERTY
Defines the name of the property for default DB schema.- Since:
- 1.1
- See Also:
- Constant Field Values
-
DEFAULT_QUOTE_SQL_IDENTIFIERS_PROPERTY
public static final String DEFAULT_QUOTE_SQL_IDENTIFIERS_PROPERTY
- See Also:
- Constant Field Values
-
SCHEMA_XSD
public static final String 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:
- Constant Field Values
-
SCHEMA_XSD_LOCATION
public static final String SCHEMA_XSD_LOCATION
- See Also:
- Constant Field Values
-
name
protected String name
-
location
protected String location
-
namespace
protected MappingNamespace namespace
-
quotingSQLIdentifiers
protected Boolean quotingSQLIdentifiers
-
defaultCatalog
protected String defaultCatalog
-
defaultSchema
protected String defaultSchema
-
defaultPackage
protected String defaultPackage
-
defaultSuperclass
protected String defaultSuperclass
-
defaultLockType
protected int defaultLockType
-
clientSupported
protected boolean clientSupported
-
defaultClientPackage
protected String defaultClientPackage
-
defaultClientSuperclass
protected String defaultClientSuperclass
-
configurationSource
protected transient Resource configurationSource
- Since:
- 3.1
-
dataChannelDescriptor
protected DataChannelDescriptor dataChannelDescriptor
- Since:
- 3.1
-
-
Method Detail
-
getDataChannelDescriptor
public DataChannelDescriptor getDataChannelDescriptor()
- Since:
- 3.1
-
setDataChannelDescriptor
public void setDataChannelDescriptor(DataChannelDescriptor dataChannelDescriptor)
- Since:
- 3.1
-
acceptVisitor
public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor)
- Specified by:
acceptVisitorin interfaceConfigurationNode- Since:
- 3.1
-
compareTo
public int compareTo(DataMap o)
- 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
public void initWithProperties(Map<String,Object> properties)
Performs DataMap initialization from a set of properties, using defaults for the missing properties.- Since:
- 1.1
-
getClientDataMap
public DataMap getClientDataMap(EntityResolver serverResolver)
Returns a DataMap stripped of any server-side information, such as DbEntity mapping, or ObjEntities that are not allowed in the client tier. Returns null if this DataMap as a whole does not support client tier persistence.- Since:
- 1.2
-
encodeAsXML
public void encodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate)
Prints itself as XML to the provided PrintWriter.- Specified by:
encodeAsXMLin interfaceXMLSerializable- Since:
- 1.1
-
getName
public String getName()
Returns the name of this DataMap.
-
setName
public void setName(String name)
Set the name of this DataMap.
-
mergeWithDataMap
public void mergeWithDataMap(DataMap map)
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
public String 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
public void setLocation(String location)
Sets "location" property.
-
getObjEntityMap
public Map<String,ObjEntity> getObjEntityMap()
Returns a unmodifiable map of ObjEntities contained in this DataMap, keyed by ObjEntity name.
-
getDbEntityMap
public Map<String,DbEntity> getDbEntityMap()
Returns a unmodifiable map of DbEntities contained in this DataMap, keyed by DbEntity name.
-
getQueryDescriptor
public QueryDescriptor getQueryDescriptor(String queryName)
Returns a named query associated with this DataMap.- Specified by:
getQueryDescriptorin interfaceMappingNamespace- Since:
- 4.0
-
addQueryDescriptor
public void addQueryDescriptor(QueryDescriptor queryDescriptor)
Stores a query descriptor under its name.- Since:
- 1.1
-
removeQueryDescriptor
public void removeQueryDescriptor(String queryName)
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
public Map<String,QueryDescriptor> getQueryDescriptorMap()
- Since:
- 4.0
-
getQueryDescriptors
public Collection<QueryDescriptor> getQueryDescriptors()
Returns an unmodifiable collection of mapped queries.- Specified by:
getQueryDescriptorsin interfaceMappingNamespace- Since:
- 4.0
-
addEmbeddable
public void addEmbeddable(Embeddable embeddable)
Adds an embeddable object to the DataMap.- Since:
- 3.0
-
addResult
public void addResult(SQLResult result)
Adds a named SQLResultSet to the DataMap.- Since:
- 3.0
-
addObjEntity
public void addObjEntity(ObjEntity entity)
Adds a new ObjEntity to this DataMap.
-
addDbEntity
public void addDbEntity(DbEntity entity)
Adds a new DbEntity to this DataMap.
-
getObjEntities
public Collection<ObjEntity> getObjEntities()
Returns an unmodifiable collection of ObjEntities stored in this DataMap.- Specified by:
getObjEntitiesin interfaceMappingNamespace
-
getEmbeddableMap
public Map<String,Embeddable> getEmbeddableMap()
- Since:
- 3.0
-
getEmbeddables
public Collection<Embeddable> getEmbeddables()
Returns a collection ofEmbeddablemappings stored in the DataMap.- Specified by:
getEmbeddablesin interfaceMappingNamespace- Since:
- 3.0
-
getResults
public Collection<SQLResult> getResults()
- Specified by:
getResultsin interfaceMappingNamespace- Since:
- 3.0
-
getEmbeddable
public Embeddable getEmbeddable(String className)
Description copied from interface:MappingNamespaceReturns anEmbeddablematching class name or null if such Embeddable is not mapped.- Specified by:
getEmbeddablein interfaceMappingNamespace- Since:
- 3.0
-
getResult
public SQLResult getResult(String name)
Description copied from interface:MappingNamespaceReturns a named result set mapping.- Specified by:
getResultin interfaceMappingNamespace- Since:
- 3.0
-
getDbEntities
public Collection<DbEntity> getDbEntities()
Returns all DbEntities in this DataMap.- Specified by:
getDbEntitiesin interfaceMappingNamespace
-
getDbEntity
public DbEntity getDbEntity(String dbEntityName)
Returns DbEntity matching thenameparameter. No dependencies will be searched.- Specified by:
getDbEntityin interfaceMappingNamespace
-
getObjEntityForJavaClass
public ObjEntity getObjEntityForJavaClass(String javaClassName)
Returns an ObjEntity for a DataObject class name.- Since:
- 1.1
-
getObjEntity
public ObjEntity getObjEntity(String objEntityName)
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
public Collection<ObjEntity> getMappedEntities(DbEntity dbEntity)
Returns all ObjEntities mapped to the given DbEntity.
-
removeEmbeddable
public void removeEmbeddable(String className)
Removes anEmbeddabledescriptor with matching class name.- Since:
- 3.0
-
removeResult
public void removeResult(String name)
- Since:
- 3.0
-
removeDbEntity
public void removeDbEntity(String dbEntityName)
"Dirty" remove of the DbEntity from the data map.
-
removeDbEntity
public void removeDbEntity(String dbEntityName, boolean clearDependencies)
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
public void removeObjEntity(String objEntityName)
"Dirty" remove of the ObjEntity from the data map.
-
removeObjEntity
public void removeObjEntity(String objEntityName, boolean clearDependencies)
Removes ObjEntity from the DataMap. IfclearDependenciesis true, all ObjRelationships that reference this entity are also removed.- Since:
- 1.1
-
getProcedures
public Collection<Procedure> getProcedures()
Returns stored procedures associated with this DataMap.- Specified by:
getProceduresin interfaceMappingNamespace
-
getProcedure
public Procedure getProcedure(String procedureName)
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
public void addProcedure(Procedure procedure)
Adds stored procedure to the list of procedures. If there is another procedure registered under the same name, throws an IllegalArgumentException.
-
removeProcedure
public void removeProcedure(String name)
-
getProcedureMap
public Map<String,Procedure> getProcedureMap()
Returns a sorted unmodifiable map of Procedures in this DataMap keyed by name.
-
getNamespace
public MappingNamespace 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
public void setNamespace(MappingNamespace namespace)
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
-
isClientSupported
public boolean isClientSupported()
- Since:
- 1.2
-
setClientSupported
public void setClientSupported(boolean clientSupport)
- Since:
- 1.2
-
getDefaultClientPackage
public String getDefaultClientPackage()
Returns default client package.- Since:
- 1.2
-
setDefaultClientPackage
public void setDefaultClientPackage(String defaultClientPackage)
- Since:
- 1.2
-
getDefaultClientSuperclass
public String getDefaultClientSuperclass()
Returns default client superclass.- Since:
- 3.0
-
setDefaultClientSuperclass
public void setDefaultClientSuperclass(String defaultClientSuperclass)
- Since:
- 3.0
-
getDefaultPackage
public String getDefaultPackage()
- Since:
- 1.1
-
setDefaultPackage
public void setDefaultPackage(String defaultPackage)
- Since:
- 1.1
-
getDefaultSchema
public String getDefaultSchema()
- Since:
- 1.1
-
setDefaultSchema
public void setDefaultSchema(String defaultSchema)
- Since:
- 1.1
-
getDefaultSuperclass
public String getDefaultSuperclass()
- Since:
- 1.1
-
setDefaultSuperclass
public void setDefaultSuperclass(String defaultSuperclass)
- Since:
- 1.1
-
dbEntityChanged
public void dbEntityChanged(EntityEvent e)
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
public void dbEntityAdded(EntityEvent e)
New entity has been created/added.- Specified by:
dbEntityAddedin interfaceDbEntityListener
-
dbEntityRemoved
public void dbEntityRemoved(EntityEvent e)
Entity has been removed.- Specified by:
dbEntityRemovedin interfaceDbEntityListener
-
objEntityChanged
public void objEntityChanged(EntityEvent e)
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
public void objEntityAdded(EntityEvent e)
New entity has been created/added.- Specified by:
objEntityAddedin interfaceObjEntityListener
-
objEntityRemoved
public void objEntityRemoved(EntityEvent e)
Entity has been removed.- Specified by:
objEntityRemovedin interfaceObjEntityListener
-
getConfigurationSource
public Resource getConfigurationSource()
- Since:
- 3.1
-
setConfigurationSource
public void setConfigurationSource(Resource configurationSource)
- Since:
- 3.1
-
getDefaultCatalog
public String getDefaultCatalog()
- Since:
- 4.0
-
setDefaultCatalog
public void setDefaultCatalog(String defaultCatalog)
- Since:
- 4.0
-
getInheritanceTree
public EntityInheritanceTree getInheritanceTree(String entityName)
- Specified by:
getInheritanceTreein interfaceMappingNamespace- Since:
- 4.0
-
getObjEntity
public ObjEntity getObjEntity(Class<?> entityClass)
- Specified by:
getObjEntityin interfaceMappingNamespace- Since:
- 4.0
-
getObjEntity
public ObjEntity getObjEntity(Persistent object)
- Specified by:
getObjEntityin interfaceMappingNamespace
-
clear
public void clear()
-
getNameWithDefaultPackage
public String getNameWithDefaultPackage(String name)
- Returns:
- package + "." + name when it is possible otherwise just name
- Since:
- 4.0
-
getNameWithPackage
public static String getNameWithPackage(String pack, String name)
- Returns:
- package + "." + name when it is possible otherwise just name
- Since:
- 4.0
-
getNameWithDefaultClientPackage
public String getNameWithDefaultClientPackage(String name)
- Returns:
- package + "." + name when it is possible otherwise just name
- Since:
- 4.0
-
-