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 and 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 and 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 and 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 mandatory
    `boolean` | `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(Entity targetEntity)` Sets relationship target entity.
    `void` | `setTargetEntityName(String targetEntityName)` Sets the name of 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 interface `CayenneMapEntry`
      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 calls `setTargetEntityName`.

    - #### 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 interface `CayenneMapEntry`

    - #### setParent

          public void setParent(Object parent)

      Description copied from interface: `CayenneMapEntry`
      Stores the parent map.
      Specified by:
        `setParent` in interface `CayenneMapEntry`

    - #### toString

          public String toString()

      Overrides Object.toString() to return informative description.
      Overrides:
        `toString` in class `Object`

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

Copyright © 2001–2021 Apache Cayenne. All rights reserved.