Package org.apache.cayenne.graph

# Interface GraphChangeHandler

All Known Subinterfaces:
  `GraphManager`

All Known Implementing Classes:
  `ChildDiffLoader`, `DataChannelSyncCallbackAction`, `GraphMap`, `NoSyncObjectStore`, `ObjectStore`

public interface GraphChangeHandler
Defines callback API that can be used by object graph nodes to notify of their state changes. Graph nodes can be any objects as long as each node supports a notion of a unique id within the graph and each directional arc has a unique identifier within its source node.

Since:
  1.2

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default void`
  `arcCreated(Object nodeId, Object targetNodeId, ArcId arcId)`
  Notifies implementing object that a new arc was created between two nodes.
  `default void`
  `arcDeleted(Object nodeId, Object targetNodeId, ArcId arcId)`
  Notifies implementing object that an arc between two nodes was deleted.
  `default void`
  `nodeCreated(Object nodeId)`
  Notifies implementing object that a new node was created in the graph.
  `default void`
  `nodeIdChanged(Object nodeId, Object newId)`
  Notifies implementing object that a node was assigned a new id.
  `default void`
  `nodePropertyChanged(Object nodeId, String property, Object oldValue, Object newValue)`
  Notifies implementing object that a node's property was modified.
  `default void`
  `nodeRemoved(Object nodeId)`
  Notifies implementing object that a node was removed from the graph.

- ## Method Details

  - ### nodeIdChanged

    default void nodeIdChanged(Object nodeId, Object newId)
    Notifies implementing object that a node was assigned a new id.

  - ### nodeCreated

    default void nodeCreated(Object nodeId)
    Notifies implementing object that a new node was created in the graph.

  - ### nodeRemoved

    default void nodeRemoved(Object nodeId)
    Notifies implementing object that a node was removed from the graph.

  - ### nodePropertyChanged

    default void nodePropertyChanged(Object nodeId, String property, Object oldValue, Object newValue)
    Notifies implementing object that a node's property was modified.

  - ### arcCreated

    default void arcCreated(Object nodeId, Object targetNodeId, ArcId arcId)
    Notifies implementing object that a new arc was created between two nodes.

  - ### arcDeleted

    default void arcDeleted(Object nodeId, Object targetNodeId, ArcId arcId)
    Notifies implementing object that an arc between two nodes was deleted.