Class Entity

java.lang.Object
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 Details

    • 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 final Map<String,​Attribute> attributes
    • relationships

      protected final Map<String,​Relationship> relationships
  • Constructor Details

    • Entity

      public Entity()
      Creates an unnamed Entity.
    • Entity

      public Entity​(String name)
      Creates a named Entity.
  • Method Details

    • 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.
    • updateAttribute

      public void updateAttribute​(Attribute attribute)
      Since:
      4.0
    • 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 Map<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 Map<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

      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