## Uses of Interface
org.apache.cayenne.DataObject

- Packages that use DataObject
  Package | Description
  --- | ---
  org.apache.cayenne | Contains persistence APIs directly accessible by users.
  org.apache.cayenne.access | Contains classes that make up Cayenne ORM stack.

- - ### Uses of DataObject in org.apache.cayenne

    Classes in org.apache.cayenne that implement DataObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BaseDataObject` | Base implementation of `DataObject`, have no assumption about how data is actually stored.
    `class` | `CayenneDataObject` | Implementation of `DataObject` that uses `Map` to store object fields.
    `class` | `HybridDataObject` | This data object like `CayenneDataObject` uses `Map` to store generic attributes, only difference is that this Map will be created lazily at first write, thus reducing memory penalty if possible.

    Methods in org.apache.cayenne that return types with arguments of type DataObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<? extends DataObject>` | BaseDataObject.`setToManyTarget​(String relName, Collection<? extends DataObject> values, boolean setReverse)` | Sets the relationships to the specified `DataObject` objects.

    Methods in org.apache.cayenne with parameters of type DataObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | BaseDataObject.`addToManyTarget​(String relName, DataObject value, boolean setReverse)` |
    `void` | DataObject.`addToManyTarget​(String relationshipName, DataObject target, boolean setReverse)` | Adds an object to a to-many relationship.
    `void` | BaseDataObject.`removeToManyTarget​(String relName, DataObject value, boolean setReverse)` |
    `void` | DataObject.`removeToManyTarget​(String relationshipName, DataObject target, boolean unsetReverse)` | Removes an object from a to-many relationship.
    `protected void` | BaseDataObject.`setReverseRelationship​(String relName, DataObject val)` | Initializes reverse relationship from object `val` to this object.
    `void` | BaseDataObject.`setToOneTarget​(String relationshipName, DataObject value, boolean setReverse)` |
    `void` | DataObject.`setToOneTarget​(String relationshipName, DataObject value, boolean setReverse)` | Sets to-one relationship to a new value.
    `protected void` | BaseDataObject.`unsetReverseRelationship​(String relName, DataObject val)` | Removes current object from reverse relationship of object `val` to this object.

    Method parameters in org.apache.cayenne with type arguments of type DataObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<? extends DataObject>` | BaseDataObject.`setToManyTarget​(String relName, Collection<? extends DataObject> values, boolean setReverse)` | Sets the relationships to the specified `DataObject` objects.

  - ### Uses of DataObject in org.apache.cayenne.access

    Methods in org.apache.cayenne.access that return DataObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `DataObject` | DataContext.`objectFromDataRow​(String entityName, DataRow dataRow)` | Creates a DataObject from DataRow.

    Methods in org.apache.cayenne.access with parameters of type DataObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | DataContextDelegate.`finishedMergeChanges​(DataObject object)` | Called after a successful merging of external changes to an object.
    `void` | DataContextDelegate.`finishedProcessDelete​(DataObject object)` | Called after a successful processing of externally deleted object.
    `boolean` | DataContextDelegate.`shouldMergeChanges​(DataObject object, DataRow snapshotInStore)` | Invoked by parent DataContext whenever an object change is detected.
    `boolean` | DataContextDelegate.`shouldProcessDelete​(DataObject object)` | Invoked by ObjectStore whenever it is detected that a database row was deleted for object.