org.apache.cayenne.map
Class Entity

java.lang.Object
  extended by org.apache.cayenne.map.Entity
All Implemented Interfaces:
Serializable, CayenneMapEntry, XMLSerializable
Direct Known Subclasses:
DbEntity, ObjEntity

public abstract class Entity
extends Object
implements CayenneMapEntry, XMLSerializable, Serializable

An Entity is an abstract descriptor for an entity mapping concept. Entity can represent either a descriptor of database table or a persistent object.

See Also:
Serialized Form

Field Summary
protected  SortedMap<String,Attribute> attributes
           
protected  DataMap dataMap
           
protected  String name
           
static String OUTER_JOIN_INDICATOR
          A prefix or a suffix that can be used in a path component to indicate that an OUTER JOIN should be used when resolving the expression.
static String PATH_SEPARATOR
           
protected  SortedMap<String,Relationship> relationships
           
 
Constructor Summary
Entity()
          Creates an unnamed Entity.
Entity(String name)
          Creates a named Entity.
 
Method Summary
 void addAttribute(Attribute attribute)
          Adds new attribute to the entity, setting its parent entity to be this object.
 void addRelationship(Relationship relationship)
          Adds new relationship to the entity.
 void clearAttributes()
           
 void clearRelationships()
           
 Relationship getAnyRelationship(Entity targetEntity)
          Returns a relationship that has a specified entity as a target.
 Attribute getAttribute(String attributeName)
          Returns attribute with name attributeName or null if no attribute with this name exists.
 SortedMap<String,? extends Attribute> getAttributeMap()
          Returns an unmodifiable sorted map of entity attributes.
 Collection<? extends Attribute> getAttributes()
          Returns an unmodifiable collection of entity attributes.
 DataMap getDataMap()
           
 String getName()
          Returns entity name.
 Object getParent()
          Returns the parent map.
 Relationship getRelationship(String relName)
          Returns relationship with name relName.
 SortedMap<String,? extends Relationship> getRelationshipMap()
          Returns an unmodifiable map of relationships sorted by name.
 Collection<? extends Relationship> getRelationships()
          Returns an unmodifiable collection of Relationships that exist in this entity.
 Object lastPathComponent(Expression path)
          Deprecated. since 3.0 use lastPathComponent(Expression, Map) method that supports aliases.
<T extends Attribute,U extends Relationship>
PathComponent<T,U>
lastPathComponent(Expression path, Map aliasMap)
          Convenience method returning the last component in the path iterator.
 void removeAttribute(String attrName)
          Removes an attribute named attrName.
 void removeRelationship(String relName)
          Removes a relationship named attrName.
abstract
<T extends Attribute,U extends Relationship>
Iterable<PathComponent<T,U>>
resolvePath(Expression pathExp, Map aliasMap)
          Returns an Iterable over the path components with elements represented as PathComponent instances, encapsulating a relationship, an attribute or a subpath alias.
abstract  Iterator<CayenneMapEntry> resolvePathComponents(Expression pathExp)
          Processes expression pathExp and returns an Iterator of path components that contains a sequence of Attributes and Relationships.
 Iterator<CayenneMapEntry> resolvePathComponents(String path)
          Returns an Iterator over the path components that contains a sequence of Attributes and Relationships.
 void setDataMap(DataMap dataMap)
          Sets parent DataMap of this entity.
 void setName(String name)
           
 void setParent(Object parent)
          Stores the parent map.
 String toString()
           
abstract  Expression translateToRelatedEntity(Expression expression, String relationshipPath)
          Translates Expression rooted in this entity to an analogous expression rooted in related entity.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.cayenne.util.XMLSerializable
encodeAsXML
 

Field Detail

PATH_SEPARATOR

public static final String PATH_SEPARATOR
See Also:
Constant Field Values

OUTER_JOIN_INDICATOR

public static final String OUTER_JOIN_INDICATOR
A prefix or a suffix that can be used in a path component to indicate that an OUTER JOIN should be used when resolving the expression.

Since:
3.0
See Also:
Constant Field Values

name

protected String name

dataMap

protected DataMap dataMap

attributes

protected SortedMap<String,Attribute> attributes

relationships

protected SortedMap<String,Relationship> relationships
Constructor Detail

Entity

public Entity()
Creates an unnamed Entity.


Entity

public Entity(String name)
Creates a named Entity.

Method Detail

toString

public String toString()
Overrides:
toString in class Object

getName

public String getName()
Returns entity name. Name is a unique identifier of the entity within its DataMap.

Specified by:
getName in interface CayenneMapEntry
Returns:
name of this entry.

setName

public void setName(String name)

getParent

public Object getParent()
Description copied from interface: CayenneMapEntry
Returns the parent map.

Specified by:
getParent in interface CayenneMapEntry

setParent

public void setParent(Object parent)
Description copied from interface: CayenneMapEntry
Stores the parent map.

Specified by:
setParent in interface CayenneMapEntry

getDataMap

public DataMap getDataMap()
Returns:
parent DataMap of this entity.

setDataMap

public void setDataMap(DataMap dataMap)
Sets parent DataMap of this entity.


getAttribute

public Attribute getAttribute(String attributeName)
Returns attribute with name attributeName or null if no attribute with this name exists.


addAttribute

public void addAttribute(Attribute attribute)
Adds new attribute to the entity, setting its parent entity to be this object. If attribute has no name, IllegalArgumentException is thrown.


removeAttribute

public void removeAttribute(String attrName)
Removes an attribute named attrName.


clearAttributes

public void clearAttributes()

getRelationship

public Relationship getRelationship(String relName)
Returns relationship with name relName. Will return null if no relationship with this name exists in the entity.


addRelationship

public void addRelationship(Relationship relationship)
Adds new relationship to the entity.


removeRelationship

public void removeRelationship(String relName)
Removes a relationship named attrName.


clearRelationships

public void clearRelationships()

getRelationshipMap

public SortedMap<String,? extends Relationship> getRelationshipMap()
Returns an unmodifiable map of relationships sorted by name.


getAnyRelationship

public Relationship getAnyRelationship(Entity targetEntity)
Returns a relationship that has a specified entity as a target. If there is more than one relationship for the same target, it is unpredictable which one will be returned.

Since:
1.1

getRelationships

public Collection<? extends Relationship> getRelationships()
Returns an unmodifiable collection of Relationships that exist in this entity.


getAttributeMap

public SortedMap<String,? extends Attribute> getAttributeMap()
Returns an unmodifiable sorted map of entity attributes.


getAttributes

public Collection<? extends Attribute> getAttributes()
Returns an unmodifiable collection of entity attributes.


translateToRelatedEntity

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

Since:
1.1

lastPathComponent

@Deprecated
public Object lastPathComponent(Expression path)
Deprecated. since 3.0 use lastPathComponent(Expression, Map) method that supports aliases.

Convenience method returning the last component in the path iterator, either an ObjAttribute or an ObjRelationship.

Since:
1.1

lastPathComponent

public <T extends Attribute,U extends Relationship> PathComponent<T,U> lastPathComponent(Expression path,
                                                                                         Map aliasMap)
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.

Since:
3.0

resolvePath

public abstract <T extends Attribute,U extends Relationship> Iterable<PathComponent<T,U>> resolvePath(Expression pathExp,
                                                                                                      Map aliasMap)
Returns an Iterable over the path components with elements represented as PathComponent instances, encapsulating a relationship, an attribute or a subpath alias. An optional "aliasMap" parameter is used to resolve subpaths from aliases.

This method is lazy: 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.

Since:
3.0

resolvePathComponents

public abstract Iterator<CayenneMapEntry> resolvePathComponents(Expression pathExp)
                                                         throws ExpressionException
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.

Throws:
ExpressionException

resolvePathComponents

public Iterator<CayenneMapEntry> resolvePathComponents(String path)
                                                throws ExpressionException
Returns an Iterator over the 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.

Throws:
ExpressionException


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