org.apache.cayenne.map
Class DataMap

java.lang.Object
  extended by org.apache.cayenne.map.DataMap
All Implemented Interfaces:
Serializable, EventListener, DbAttributeListener, DbEntityListener, DbRelationshipListener, ObjAttributeListener, ObjEntityListener, ObjRelationshipListener, MappingNamespace, XMLSerializable

public class DataMap
extends Object
implements Serializable, XMLSerializable, MappingNamespace, DbEntityListener, DbAttributeListener, DbRelationshipListener, ObjEntityListener, ObjAttributeListener, ObjRelationshipListener

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.

Author:
Michael Shengaout, Andrus Adamchik, Craig Miskell
See Also:
Serialized Form

Field Summary
static String CLIENT_SUPPORTED_PROPERTY
          Defines whether a DataMap supports client entities.
protected  boolean clientSupported
           
static String DEFAULT_CLIENT_PACKAGE_PROPERTY
          Defines the name of the property for default client Java class package.
static String DEFAULT_LOCK_TYPE_PROPERTY
          Defines the name of the property for default DB schema.
static String DEFAULT_PACKAGE_PROPERTY
          Defines the name of the property for default Java class package.
static String DEFAULT_SCHEMA_PROPERTY
          Defines the name of the property for default DB schema.
static String DEFAULT_SUPERCLASS_PROPERTY
          Defines the name of the property for default DB schema.
protected  String defaultClientPackage
           
protected  int defaultLockType
           
protected  String defaultPackage
           
protected  String defaultSchema
           
protected  String defaultSuperclass
           
protected  String location
           
protected  String name
           
protected  MappingNamespace namespace
           
 
Constructor Summary
DataMap()
          Creates a new unnamed DataMap.
DataMap(String mapName)
          Creates a new named DataMap.
DataMap(String mapName, Map properties)
           
 
Method Summary
 void addDbEntity(DbEntity entity)
          Adds a new DbEntity to this DataMap.
 void addDefaultEntityListener(EntityListener listener)
          Adds a new EntityListener.
 void addEmbeddable(Embeddable embeddable)
          Adds an embeddable object to the DataMap.
 void addEntityListener(EntityListener listener)
          Adds a default entity listener that should be notified of certain events on all entities.
 void addObjEntity(ObjEntity entity)
          Adds a new ObjEntity to this DataMap.
 void addProcedure(Procedure procedure)
          Adds stored procedure to the list of procedures.
 void addQuery(Query query)
          Stores a query under its name.
 void clearDbEntities()
           
 void clearEmbeddables()
          Removes all stored embeddable objects from the map.
 void clearEntityListeners()
          Removes all stored entity listeners from the map.
 void clearObjEntities()
           
 void clearProcedures()
           
 void clearQueries()
           
 void dbAttributeAdded(AttributeEvent e)
          New attribute has been created/added.
 void dbAttributeChanged(AttributeEvent e)
          Attribute property changed.
 void dbAttributeRemoved(AttributeEvent e)
          Attribute has been removed.
 void dbEntityAdded(EntityEvent e)
          New entity has been created/added.
 void dbEntityChanged(EntityEvent e)
          DbEntity property changed.
 void dbEntityRemoved(EntityEvent e)
          Entity has been removed.
 void dbRelationshipAdded(RelationshipEvent e)
          Relationship has been created/added.
 void dbRelationshipChanged(RelationshipEvent e)
          Relationship property changed.
 void dbRelationshipRemoved(RelationshipEvent e)
          Relationship has been removed.
 void encodeAsXML(PrintWriter pw)
          Prints itself as a well-formed complete XML document.
 void encodeAsXML(XMLEncoder encoder)
          Prints itself as XML to the provided PrintWriter.
 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.
 Collection getDbEntities()
          Returns all DbEntities in this DataMap.
 DbEntity getDbEntity(String dbEntityName)
          Returns DbEntity matching the name parameter.
 SortedMap getDbEntityMap()
          Returns a sorted unmodifiable map of DbEntities contained in this DataMap, keyed by DbEntity name.
 String getDefaultClientPackage()
          Returns default client package.
 EntityListener getDefaultEntityListener(String className)
           
 List getDefaultEntityListeners()
          Returns an unmodifiable list of default EntityListener objects.
 int getDefaultLockType()
           
 String getDefaultPackage()
           
 String getDefaultSchema()
           
 String getDefaultSuperclass()
           
 Embeddable getEmbeddable(String className)
          Returns an Embeddable matching class name or null if such Embeddable is not mapped.
 Map getEmbeddableMap()
           
 Collection getEmbeddables()
          Returns a collection of Embeddable mappings stored in the DataMap.
 EntityListener getEntityListener(String className)
          Returns an EntityListener matching class name or null if such EntityListener is not mapped.
 Collection getEntityListeners()
          Returns a collection of EntityListener mappings stored in the DataMap.
 Map getEntityListenersMap()
           
 String getLocation()
          Returns "location" property value.
 Collection getMappedEntities(DbEntity dbEntity)
          Returns all ObjEntities mapped to the given DbEntity.
 String getName()
          Returns the name of this DataMap.
 MappingNamespace getNamespace()
          Returns a parent namespace where this DataMap resides.
 Collection getObjEntities()
          Returns an unmodifiable collection of ObjEntities stored in this DataMap.
 ObjEntity getObjEntity(String objEntityName)
          Returns an ObjEntity for a given name.
 ObjEntity getObjEntityForJavaClass(String javaClassName)
          Returns an ObjEntity for a DataObject class name.
 SortedMap getObjEntityMap()
          Returns a sorted unmodifiable map of ObjEntities contained in this DataMap, keyed by ObjEntity name.
 Procedure getProcedure(String procedureName)
          Returns a Procedure for a given name or null if no such procedure exists.
 SortedMap getProcedureMap()
          Returns a sorted unmodifiable map of Procedures in this DataMap keyed by name.
 Collection getProcedures()
          Returns stored procedures associated with this DataMap.
 Collection getQueries()
          Returns an unmodifiable collection of mapped queries.
 Query getQuery(String queryName)
          Returns a named query associated with this DataMap.
 SortedMap getQueryMap()
           
 void initWithProperties(Map properties)
          Performs DataMap initialization from a set of properties, using defaults for the missing properties.
 boolean isClientSupported()
           
 void mergeWithDataMap(DataMap map)
          Adds all Object and DB entities and Queries from another map to this map.
 void objAttributeAdded(AttributeEvent e)
          New attribute has been created/added.
 void objAttributeChanged(AttributeEvent e)
          Attribute property changed.
 void objAttributeRemoved(AttributeEvent e)
          Attribute has been removed.
 void objEntityAdded(EntityEvent e)
          New entity has been created/added.
 void objEntityChanged(EntityEvent e)
          ObjEntity property changed.
 void objEntityRemoved(EntityEvent e)
          Entity has been removed.
 void objRelationshipAdded(RelationshipEvent e)
          Relationship has been created/added.
 void objRelationshipChanged(RelationshipEvent e)
          Relationship property changed.
 void objRelationshipRemoved(RelationshipEvent e)
          Relationship has been removed.
 void removeDbEntity(String dbEntityName)
          "Dirty" remove of the DbEntity from the data map.
 void removeDbEntity(String dbEntityName, boolean clearDependencies)
          Removes DbEntity from the DataMap.
 void removeDefaultEntityListener(String className)
          Removes a listener matching class name.
 void removeEmbeddable(String className)
          Removes an Embeddable descriptor with matching class name.
 void removeEntityListener(String className)
          Removes an EntityListener descriptor with matching class name from entity listeners and default entity listeners.
 void removeObjEntity(String objEntityName)
          "Dirty" remove of the ObjEntity from the data map.
 void removeObjEntity(String objEntityName, boolean clearDependencies)
          Removes ObjEntity from the DataMap.
 void removeProcedure(String name)
           
 void removeQuery(String queryName)
          Removes a named query from the DataMap.
 void setClientSupported(boolean clientSupport)
           
 void setDefaultClientPackage(String defaultClientPackage)
           
 void setDefaultLockType(int defaultLockType)
           
 void setDefaultPackage(String defaultPackage)
           
 void setDefaultSchema(String defaultSchema)
           
 void setDefaultSuperclass(String defaultSuperclass)
           
 void setLocation(String location)
          Sets "location" property.
 void setName(String name)
           
 void setNamespace(MappingNamespace namespace)
          Sets a parent namespace where this DataMap resides.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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_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 DB schema.

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

name

protected String name

location

protected String location

namespace

protected MappingNamespace namespace

defaultSchema

protected String defaultSchema

defaultPackage

protected String defaultPackage

defaultSuperclass

protected String defaultSuperclass

defaultLockType

protected int defaultLockType

clientSupported

protected boolean clientSupported

defaultClientPackage

protected String defaultClientPackage
Constructor Detail

DataMap

public DataMap()
Creates a new unnamed DataMap.


DataMap

public DataMap(String mapName)
Creates a new named DataMap.


DataMap

public DataMap(String mapName,
               Map properties)
Method Detail

initWithProperties

public void initWithProperties(Map 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(PrintWriter pw)
Prints itself as a well-formed complete XML document. In comparison, encodeAsXML(XMLEncoder)stores DataMap assuming it is a part of a bigger document.

Since:
1.1

encodeAsXML

public void encodeAsXML(XMLEncoder encoder)
Prints itself as XML to the provided PrintWriter.

Specified by:
encodeAsXML in interface XMLSerializable
Since:
1.1

toString

public String toString()
Overrides:
toString in class Object

getName

public String getName()
Returns the name of this DataMap.


setName

public void setName(String name)

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 SortedMap getObjEntityMap()
Returns a sorted unmodifiable map of ObjEntities contained in this DataMap, keyed by ObjEntity name.


getDbEntityMap

public SortedMap getDbEntityMap()
Returns a sorted unmodifiable map of DbEntities contained in this DataMap, keyed by DbEntity name.


getQuery

public Query getQuery(String queryName)
Returns a named query associated with this DataMap.

Specified by:
getQuery in interface MappingNamespace
Since:
1.1

addQuery

public void addQuery(Query query)
Stores a query under its name.

Since:
1.1

removeQuery

public void removeQuery(String queryName)
Removes a named query from the DataMap.

Since:
1.1

clearEmbeddables

public void clearEmbeddables()
Removes all stored embeddable objects from the map.

Since:
3.0

clearEntityListeners

public void clearEntityListeners()
Removes all stored entity listeners from the map.

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

getQueryMap

public SortedMap getQueryMap()
Since:
1.1

getQueries

public Collection getQueries()
Returns an unmodifiable collection of mapped queries.

Specified by:
getQueries in interface MappingNamespace
Since:
1.1

addEntityListener

public void addEntityListener(EntityListener listener)
Adds a default entity listener that should be notified of certain events on all entities.


removeEntityListener

public void removeEntityListener(String className)
Removes an EntityListener descriptor with matching class name from entity listeners and default entity listeners.

Since:
3.0

addEmbeddable

public void addEmbeddable(Embeddable embeddable)
Adds an embeddable object 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 getObjEntities()
Returns an unmodifiable collection of ObjEntities stored in this DataMap.

Specified by:
getObjEntities in interface MappingNamespace

getEmbeddableMap

public Map getEmbeddableMap()
Since:
3.0

getEmbeddables

public Collection getEmbeddables()
Returns a collection of Embeddable mappings stored in the DataMap.

Since:
3.0

getEmbeddable

public Embeddable getEmbeddable(String className)
Description copied from interface: MappingNamespace
Returns an Embeddable matching class name or null if such Embeddable is not mapped.

Specified by:
getEmbeddable in interface MappingNamespace
Since:
3.0

getEntityListenersMap

public Map getEntityListenersMap()
Since:
3.0

getEntityListeners

public Collection getEntityListeners()
Returns a collection of EntityListener mappings stored in the DataMap.

Since:
3.0

getEntityListener

public EntityListener getEntityListener(String className)
Description copied from interface: MappingNamespace
Returns an EntityListener matching class name or null if such EntityListener is not mapped.

Specified by:
getEntityListener in interface MappingNamespace
Since:
3.0

getDefaultEntityListeners

public List getDefaultEntityListeners()
Returns an unmodifiable list of default EntityListener objects. Note that since the order of listeners is significant a list, not just a generic Collection is returned.

Since:
3.0

addDefaultEntityListener

public void addDefaultEntityListener(EntityListener listener)
Adds a new EntityListener.

Throws:
IllegalArgumentException - if a listener for the same class name is already registered.
Since:
3.0

removeDefaultEntityListener

public void removeDefaultEntityListener(String className)
Removes a listener matching class name.

Since:
3.0

getDefaultEntityListener

public EntityListener getDefaultEntityListener(String className)
Since:
3.0

getDbEntities

public Collection getDbEntities()
Returns all DbEntities in this DataMap.

Specified by:
getDbEntities in interface MappingNamespace

getDbEntity

public DbEntity getDbEntity(String dbEntityName)
Returns DbEntity matching the name parameter. No dependencies will be searched.

Specified by:
getDbEntity in interface MappingNamespace

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:
getObjEntity in interface MappingNamespace

getMappedEntities

public Collection getMappedEntities(DbEntity dbEntity)
Returns all ObjEntities mapped to the given DbEntity.


removeEmbeddable

public void removeEmbeddable(String className)
Removes an Embeddable descriptor with matching class 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. If clearDependencies is 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. If clearDependencies is true, all ObjRelationships that reference this entity are also removed.

Since:
1.1

getProcedures

public Collection getProcedures()
Returns stored procedures associated with this DataMap.

Specified by:
getProcedures in interface MappingNamespace

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:
getProcedure in interface MappingNamespace

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 SortedMap 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

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:
dbEntityChanged in interface DbEntityListener
Since:
1.2

dbEntityAdded

public void dbEntityAdded(EntityEvent e)
New entity has been created/added.

Specified by:
dbEntityAdded in interface DbEntityListener

dbEntityRemoved

public void dbEntityRemoved(EntityEvent e)
Entity has been removed.

Specified by:
dbEntityRemoved in interface DbEntityListener

dbAttributeChanged

public void dbAttributeChanged(AttributeEvent e)
Attribute property changed.

Specified by:
dbAttributeChanged in interface DbAttributeListener

dbAttributeAdded

public void dbAttributeAdded(AttributeEvent e)
New attribute has been created/added.

Specified by:
dbAttributeAdded in interface DbAttributeListener

dbAttributeRemoved

public void dbAttributeRemoved(AttributeEvent e)
Attribute has been removed.

Specified by:
dbAttributeRemoved in interface DbAttributeListener

dbRelationshipChanged

public void dbRelationshipChanged(RelationshipEvent e)
Relationship property changed.

Specified by:
dbRelationshipChanged in interface DbRelationshipListener

dbRelationshipAdded

public void dbRelationshipAdded(RelationshipEvent e)
Relationship has been created/added.

Specified by:
dbRelationshipAdded in interface DbRelationshipListener

dbRelationshipRemoved

public void dbRelationshipRemoved(RelationshipEvent e)
Relationship has been removed.

Specified by:
dbRelationshipRemoved in interface DbRelationshipListener

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:
objEntityChanged in interface ObjEntityListener
Since:
1.2

objEntityAdded

public void objEntityAdded(EntityEvent e)
New entity has been created/added.

Specified by:
objEntityAdded in interface ObjEntityListener

objEntityRemoved

public void objEntityRemoved(EntityEvent e)
Entity has been removed.

Specified by:
objEntityRemoved in interface ObjEntityListener

objAttributeChanged

public void objAttributeChanged(AttributeEvent e)
Attribute property changed.

Specified by:
objAttributeChanged in interface ObjAttributeListener

objAttributeAdded

public void objAttributeAdded(AttributeEvent e)
New attribute has been created/added.

Specified by:
objAttributeAdded in interface ObjAttributeListener

objAttributeRemoved

public void objAttributeRemoved(AttributeEvent e)
Attribute has been removed.

Specified by:
objAttributeRemoved in interface ObjAttributeListener

objRelationshipChanged

public void objRelationshipChanged(RelationshipEvent e)
Relationship property changed.

Specified by:
objRelationshipChanged in interface ObjRelationshipListener

objRelationshipAdded

public void objRelationshipAdded(RelationshipEvent e)
Relationship has been created/added.

Specified by:
objRelationshipAdded in interface ObjRelationshipListener

objRelationshipRemoved

public void objRelationshipRemoved(RelationshipEvent e)
Relationship has been removed.

Specified by:
objRelationshipRemoved in interface ObjRelationshipListener


Copyright © 2001-2007 Apache Cayenne. All Rights Reserved.