org.apache.cayenne.map
Class DbEntity

java.lang.Object
  extended by org.apache.cayenne.map.Entity
      extended by org.apache.cayenne.map.DbEntity
All Implemented Interfaces:
Serializable, EventListener, DbAttributeListener, DbEntityListener, DbRelationshipListener, CayenneMapEntry, XMLSerializable
Direct Known Subclasses:
DetectedDbEntity

public class DbEntity
extends Entity
implements DbEntityListener, DbAttributeListener, DbRelationshipListener

A DbEntity is a mapping descriptor that defines a structure of a database table.

See Also:
Serialized Form

Field Summary
protected  String catalog
           
protected  Collection<DbAttribute> generatedAttributes
           
protected  Collection<DbAttribute> primaryKey
           
protected  DbKeyGenerator primaryKeyGenerator
           
protected  Expression qualifier
          Qualifier, that will be applied to all select queries and joins with this DbEntity
protected  String schema
           
 
Fields inherited from class org.apache.cayenne.map.Entity
attributes, dataMap, name, OUTER_JOIN_INDICATOR, PATH_SEPARATOR, relationships
 
Constructor Summary
DbEntity()
          Creates an unnamed DbEntity.
DbEntity(String name)
          Creates a named DbEntity.
 
Method Summary
 void addAttribute(Attribute attr)
          Deprecated. in favour of addAttribute(DbAttribute attr). Scheduled for removal in Cayenne 4.
 void addAttribute(DbAttribute attr)
          Adds a new attribute to this entity.
 void clearAttributes()
           
 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 event.
 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(XMLEncoder encoder)
          Prints itself as XML to the provided XMLEncoder.
 Collection<DbAttribute> getAttributes()
          Returns a Collection of all attributes that either belong to this DbEntity or inherited.
 String getCatalog()
          Returns the catalog name of the table described by this DbEntity.
 String getFullyQualifiedName()
          Returns table name including schema, if present.
 Collection<DbAttribute> getGeneratedAttributes()
          Returns an unmodifiable collection of DbAttributes that are generated by the database.
 List<DbAttribute> getPrimaryKey()
          Deprecated. since 3.0 use getPrimaryKeys() that returns a collection.
 DbKeyGenerator getPrimaryKeyGenerator()
          Return the primary key generator for this entity.
 Collection<DbAttribute> getPrimaryKeys()
          Returns an unmodifiable collection of DbAttributes representing the primary key of the table described by this DbEntity.
 Expression getQualifier()
           
 SortedMap<String,DbRelationship> getRelationshipMap()
          Returns an unmodifiable map of relationships sorted by name.
 Collection<DbRelationship> getRelationships()
          Returns a Collection of relationships from this entity or inherited.
 String getSchema()
          Returns database schema of this table.
 boolean isFullReplacementIdAttached(ObjectId id)
          Returns true if there is full replacement id is attached to an ObjectId.
 PathComponent<DbAttribute,DbRelationship> lastPathComponent(Expression path, Map aliasMap)
          Convenience method returning the last component in the path iterator.
 void removeAttribute(String attrName)
          Removes attribute from the entity, removes any relationship joins containing this attribute.
 Iterable<PathComponent<DbAttribute,DbRelationship>> resolvePath(Expression pathExp, Map aliasMap)
          Returns an Iterable instance over expression path components based on this entity.
 Iterator<CayenneMapEntry> resolvePathComponents(Expression pathExp)
          Processes expression pathExp and returns an Iterator of path components that contains a sequence of Attributes and Relationships.
 void setCatalog(String catalog)
          Sets the catalog name of the table described by this DbEntity.
 void setPrimaryKeyGenerator(DbKeyGenerator primaryKeyGenerator)
          Set the primary key generator for this entity.
 void setQualifier(Expression qualifier)
          Sets qualifier for this entity
 void setSchema(String schema)
          Sets the database schema name of the table described by this DbEntity.
 Expression translateToRelatedEntity(Expression expression, String relationshipPath)
          Transforms Expression rooted in this entity to an analogous expression rooted in related entity.
 
Methods inherited from class org.apache.cayenne.map.Entity
addRelationship, clearRelationships, getAnyRelationship, getAttribute, getAttributeMap, getDataMap, getName, getParent, getRelationship, lastPathComponent, removeRelationship, resolvePathComponents, setDataMap, setName, setParent, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

catalog

protected String catalog

schema

protected String schema

primaryKey

protected Collection<DbAttribute> primaryKey

generatedAttributes

protected Collection<DbAttribute> generatedAttributes
Since:
1.2

primaryKeyGenerator

protected DbKeyGenerator primaryKeyGenerator

qualifier

protected Expression qualifier
Qualifier, that will be applied to all select queries and joins with this DbEntity

Constructor Detail

DbEntity

public DbEntity()
Creates an unnamed DbEntity.


DbEntity

public DbEntity(String name)
Creates a named DbEntity.

Method Detail

encodeAsXML

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

Specified by:
encodeAsXML in interface XMLSerializable
Since:
1.1

getFullyQualifiedName

public String getFullyQualifiedName()
Returns table name including schema, if present.


getSchema

public String getSchema()
Returns database schema of this table.

Returns:
table's schema, null if not set.

setSchema

public void setSchema(String schema)
Sets the database schema name of the table described by this DbEntity.


getCatalog

public String getCatalog()
Returns the catalog name of the table described by this DbEntity.


setCatalog

public void setCatalog(String catalog)
Sets the catalog name of the table described by this DbEntity.


getPrimaryKeys

public Collection<DbAttribute> getPrimaryKeys()
Returns an unmodifiable collection of DbAttributes representing the primary key of the table described by this DbEntity.

Since:
3.0

getPrimaryKey

@Deprecated
public List<DbAttribute> getPrimaryKey()
Deprecated. since 3.0 use getPrimaryKeys() that returns a collection.


getAttributes

public Collection<DbAttribute> getAttributes()
Returns a Collection of all attributes that either belong to this DbEntity or inherited.

Overrides:
getAttributes in class Entity

getGeneratedAttributes

public Collection<DbAttribute> getGeneratedAttributes()
Returns an unmodifiable collection of DbAttributes that are generated by the database.

Since:
1.2

addAttribute

public void addAttribute(DbAttribute attr)
Adds a new attribute to this entity.

Throws:
IllegalArgumentException - if Attribute has no name or there is an existing attribute with the same name
IllegalArgumentException - if a relationship has the same name as this attribute
Since:
3.0

addAttribute

@Deprecated
public void addAttribute(Attribute attr)
Deprecated. in favour of addAttribute(DbAttribute attr). Scheduled for removal in Cayenne 4.

Overrides super to fire an AttributeEvent.

Overrides:
addAttribute in class Entity

removeAttribute

public void removeAttribute(String attrName)
Removes attribute from the entity, removes any relationship joins containing this attribute. Does nothing if the attribute name is not found.

Overrides:
removeAttribute in class Entity
See Also:
Entity.removeAttribute(String)

clearAttributes

public void clearAttributes()
Overrides:
clearAttributes in class Entity

getRelationships

public Collection<DbRelationship> getRelationships()
Returns a Collection of relationships from this entity or inherited.

Overrides:
getRelationships in class Entity

getRelationshipMap

public SortedMap<String,DbRelationship> getRelationshipMap()
Description copied from class: Entity
Returns an unmodifiable map of relationships sorted by name.

Overrides:
getRelationshipMap in class Entity

lastPathComponent

public PathComponent<DbAttribute,DbRelationship> lastPathComponent(Expression path,
                                                                   Map aliasMap)
Description copied from class: Entity
Convenience method returning the last component in the path iterator. If the last component is an alias, it is fully resolved down to the last ObjRelationship.

Overrides:
lastPathComponent in class Entity
Since:
3.0

resolvePath

public Iterable<PathComponent<DbAttribute,DbRelationship>> resolvePath(Expression pathExp,
                                                                       Map aliasMap)
Returns an Iterable instance over expression path components based on this entity.

Specified by:
resolvePath in class Entity
Since:
3.0

resolvePathComponents

public Iterator<CayenneMapEntry> resolvePathComponents(Expression pathExp)
                                                throws ExpressionException
Description copied from class: Entity
Processes expression pathExp and returns an Iterator of path components that contains a sequence of Attributes and Relationships. Note that if path is invalid and can not be resolved from this entity, this method will still return an Iterator, but an attempt to read the first invalid path component will result in ExpressionException.

Specified by:
resolvePathComponents in class Entity
Throws:
ExpressionException

setPrimaryKeyGenerator

public void setPrimaryKeyGenerator(DbKeyGenerator primaryKeyGenerator)
Set the primary key generator for this entity. If null is passed, nothing is changed.


getPrimaryKeyGenerator

public DbKeyGenerator getPrimaryKeyGenerator()
Return the primary key generator for this entity.


dbEntityChanged

public void dbEntityChanged(EntityEvent e)
DbEntity property changed event. 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

dbAttributeAdded

public void dbAttributeAdded(AttributeEvent e)
Description copied from interface: DbAttributeListener
New attribute has been created/added.

Specified by:
dbAttributeAdded in interface DbAttributeListener

dbAttributeChanged

public void dbAttributeChanged(AttributeEvent e)
Description copied from interface: DbAttributeListener
Attribute property changed.

Specified by:
dbAttributeChanged in interface DbAttributeListener

dbAttributeRemoved

public void dbAttributeRemoved(AttributeEvent e)
Description copied from interface: DbAttributeListener
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

getQualifier

public Expression getQualifier()
Returns:
qualifier that will be ANDed to all select queries with this entity

setQualifier

public void setQualifier(Expression qualifier)
Sets qualifier for this entity


isFullReplacementIdAttached

public boolean isFullReplacementIdAttached(ObjectId id)
Returns true if there is full replacement id is attached to an ObjectId. "Full" means that all PK columns are present and only PK columns are present.

Since:
1.2

translateToRelatedEntity

public Expression translateToRelatedEntity(Expression expression,
                                           String relationshipPath)
Transforms Expression rooted in this entity to an analogous expression rooted in related entity.

Specified by:
translateToRelatedEntity in class Entity
Since:
1.1


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