# Package org.apache.cayenne.graph

Contains generic graph management tools used in Cayenne. Main focus of this API is not graph semantics, but rather working with a graph as a random access map of nodes and tracking graph changes.

- Interface Summary
  Interface | Description
  --- | ---
  GraphChangeHandler | Defines callback API that can be used by object graph nodes to notify of their state changes.
  GraphDiff | Represents a change in an object graph.
  GraphManager | Represents a generic "managed" graph with nodes mapped by their ids.

- Class Summary
  Class | Description
  --- | ---
  ArcCreateOperation |
  ArcDeleteOperation |
  ArcId | Object that represents Arc identifier.
  ChildDiffLoader | A GraphChangeHandler that loads child ObjectContext diffs into a parent ObjectContext.
  CompoundDiff | A GraphDiff that is a list of other GraphDiffs.
  GraphDiffCompressor | A utility class that removes redundant and mutually exclusive graph changes from the graph diff.
  GraphEvent | An event indicating a change in the object graph.
  GraphMap | A base implementation of GraphManager that stores graph nodes keyed by their ids.
  NodeCreateOperation |
  NodeDeleteOperation |
  NodeDiff | An abstract superclass of operations on individual nodes and arcs in a digraph.
  NodeIdChangeOperation | A GraphDiff representing a change in node ID.
  NodePropertyChangeOperation |