# Class NodeDiff

java.lang.Object
org.apache.cayenne.graph.NodeDiff

All Implemented Interfaces:
  `Serializable, Comparable<NodeDiff>, GraphDiff`

Direct Known Subclasses:
  `ArcCreateOperation, ArcDeleteOperation, NodeCreateOperation, NodeDeleteOperation, NodeIdChangeOperation, NodePropertyChangeOperation, ObjectDiff`

public abstract class NodeDiff extends Object implements GraphDiff, Comparable<NodeDiff>
An abstract superclass of operations on individual nodes and arcs in a digraph.

Since:
  1.2
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected int`
  `diffId`
  `protected Object`
  `nodeId`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NodeDiff(Object nodeId)`
  `NodeDiff(Object nodeId, int diffId)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract void`
  `apply(GraphChangeHandler tracker)`
  Calls appropriate methods on the handler to "replay" this change.
  `int`
  `compareTo(NodeDiff o)`
  Implements a Comparable interface method to compare based on diffId property.
  `int`
  `getDiffId()`
  Returns an id of this diff that can be used for various purposes, such as identifying the order of the diff in a sequence.
  `Object`
  `getNodeId()`
  `boolean`
  `isNoop()`
  Returns true if this diff is simply a placeholder and does not perform any actual operation.
  `void`
  `setDiffId(int diffId)`
  Sets an id of this diff that can be used for various purposes, such as identifying the order of the diff in a sequence.
  `abstract void`
  `undo(GraphChangeHandler tracker)`
  Calls appropriate methods on the handler to revert this change.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### diffId

    protected int diffId

  - ### nodeId

    protected Object nodeId

- ## Constructor Details

  - ### NodeDiff

    public NodeDiff(Object nodeId)

  - ### NodeDiff

    public NodeDiff(Object nodeId, int diffId)

- ## Method Details

  - ### isNoop

    public boolean isNoop()
    Description copied from interface: `GraphDiff`
    Returns true if this diff is simply a placeholder and does not perform any actual operation.
    Specified by:
      `isNoop` in interface `GraphDiff`

  - ### apply

    public abstract void apply(GraphChangeHandler tracker)
    Description copied from interface: `GraphDiff`
    Calls appropriate methods on the handler to "replay" this change.
    Specified by:
      `apply` in interface `GraphDiff`

  - ### undo

    public abstract void undo(GraphChangeHandler tracker)
    Description copied from interface: `GraphDiff`
    Calls appropriate methods on the handler to revert this change.
    Specified by:
      `undo` in interface `GraphDiff`

  - ### getNodeId

    public Object getNodeId()

  - ### getDiffId

    public int getDiffId()
    Returns an id of this diff that can be used for various purposes, such as identifying the order of the diff in a sequence.

  - ### setDiffId

    public void setDiffId(int diffId)
    Sets an id of this diff that can be used for various purposes, such as identifying the order of the diff in a sequence.

  - ### compareTo

    public int compareTo(NodeDiff o)
    Implements a Comparable interface method to compare based on diffId property.
    Specified by:
      `compareTo` in interface `Comparable<NodeDiff>`