Package org.apache.cayenne.map
Class Relationship
- java.lang.Object
-
- org.apache.cayenne.map.Relationship
-
- All Implemented Interfaces:
Serializable
,CayenneMapEntry
,XMLSerializable
- Direct Known Subclasses:
DbRelationship
,ObjRelationship
public abstract class Relationship extends Object implements CayenneMapEntry, XMLSerializable, Serializable
Defines a relationship between two entities. In a DataMap graph relationships represent "arcs" connecting entity "nodes". Relationships are directional, i.e. they have a notion of source and target entity. This makes DataMap a "digraph".- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected String
name
protected boolean
runtime
A flag that specifies whether a Relationship was mapped by the user or added dynamically by Cayenne runtime.protected Entity
sourceEntity
protected String
targetEntityName
protected boolean
toMany
-
Constructor Summary
Constructors Constructor Description Relationship()
Creates an unnamed relationship.Relationship(String name)
Creates a named relationship.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description String
getName()
Returns the name property of this object.Object
getParent()
Returns the parent map.abstract Relationship
getReverseRelationship()
Returns a "complimentary" relationship going in the opposite direction.Entity
getSourceEntity()
Returns relationship source entity.abstract Entity
getTargetEntity()
Returns a target entity of the relationship.String
getTargetEntityName()
Returns the name of a target entity.abstract boolean
isMandatory()
Returns if relationship is mandatoryboolean
isRuntime()
boolean
isToMany()
Returns a boolean value that determines relationship multiplicity.void
setName(String name)
void
setParent(Object parent)
Stores the parent map.void
setRuntime(boolean synthetic)
void
setSourceEntity(Entity sourceEntity)
Sets relationship source entity.void
setTargetEntityName(String targetEntityName)
Sets the name of relationship target entity.void
setTargetEntityName(Entity targetEntity)
Sets relationship target entity.String
toString()
Overrides Object.toString() to return informative description.-
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
-
name
protected String name
-
sourceEntity
protected Entity sourceEntity
-
targetEntityName
protected String targetEntityName
-
toMany
protected boolean toMany
-
runtime
protected boolean runtime
A flag that specifies whether a Relationship was mapped by the user or added dynamically by Cayenne runtime.- Since:
- 3.0
-
-
Constructor Detail
-
Relationship
public Relationship()
Creates an unnamed relationship.
-
Relationship
public Relationship(String name)
Creates a named relationship.
-
-
Method Detail
-
getName
public String getName()
Description copied from interface:CayenneMapEntry
Returns the name property of this object.- Specified by:
getName
in interfaceCayenneMapEntry
- Returns:
- name of this entry.
-
setName
public void setName(String name)
-
getSourceEntity
public Entity getSourceEntity()
Returns relationship source entity.
-
setSourceEntity
public void setSourceEntity(Entity sourceEntity)
Sets relationship source entity.
-
getTargetEntity
public abstract Entity getTargetEntity()
Returns a target entity of the relationship.
-
setTargetEntityName
public void setTargetEntityName(Entity targetEntity)
Sets relationship target entity. Internally callssetTargetEntityName
.
-
getTargetEntityName
public String getTargetEntityName()
Returns the name of a target entity.
-
setTargetEntityName
public void setTargetEntityName(String targetEntityName)
Sets the name of relationship target entity.
-
isToMany
public boolean isToMany()
Returns a boolean value that determines relationship multiplicity. This defines semantics of the connection between two nodes described by the source and target entities. E.g. to-many relationship between two Persistent object classes means that a source object would have a collection of target objects. This is a read-only property.
-
getParent
public Object getParent()
Description copied from interface:CayenneMapEntry
Returns the parent map.- Specified by:
getParent
in interfaceCayenneMapEntry
-
setParent
public void setParent(Object parent)
Description copied from interface:CayenneMapEntry
Stores the parent map.- Specified by:
setParent
in interfaceCayenneMapEntry
-
toString
public String toString()
Overrides Object.toString() to return informative description.
-
isRuntime
public boolean isRuntime()
- Since:
- 3.0
-
setRuntime
public void setRuntime(boolean synthetic)
- Since:
- 3.0
-
getReverseRelationship
public abstract Relationship getReverseRelationship()
Returns a "complimentary" relationship going in the opposite direction. Returns null if no such relationship is found.- Since:
- 3.1
-
isMandatory
public abstract boolean isMandatory()
Returns if relationship is mandatory- Since:
- 3.1
-
-