Package com.saxonica.ee.update

## Class PendingUpdateAction

- java.lang.Object
- - com.saxonica.ee.update.PendingUpdateAction

- Direct Known Subclasses:
    `DeleteAction`, `InsertAction`, `InsertAttributeAction`, `PutAction`, `RenameAction`, `ReplaceAttributeAction`, `ReplaceNodeAction`, `ReplaceValueAction`

      public abstract class PendingUpdateAction
      extends java.lang.Object

  A pending update action, such as is found on a pending update list

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PendingUpdateAction()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | `apply​(XPathContext context, java.util.Set<MutableNodeInfo> affectedRootSet)` | Apply the pending update action to the affected nodes
    `protected NodeName` | `fixNodeName​(NodeName name)` | Fix a supplied node name for retention in the pending update list.
    `abstract int` | `getApplyPhase()` | Get the phase of operation in which this pending update action is applied.
    `Expression` | `getOriginator()` | Get the originating update expression.
    `abstract NodeInfo` | `getTargetNode()` | Get the target node of the update action
    `void` | `setOriginator​(Expression originator)` | Set the originating update expression.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### PendingUpdateAction

          public PendingUpdateAction()

  - ### Method Detail

    - #### setOriginator

          public void setOriginator​(Expression originator)

      Set the originating update expression. This is used for diagnostics.
      Parameters:
        `originator` - the originating expression

    - #### getOriginator

          public Expression getOriginator()

      Get the originating update expression. This is used for diagnostics.
      Returns:
        the originating expression

    - #### apply

          public abstract void apply​(XPathContext context,
                                     java.util.Set<MutableNodeInfo> affectedRootSet)
                              throws XPathException

      Apply the pending update action to the affected nodes
      Parameters:
        `context` - the XPath evaluation context
        `affectedRootSet` - the set of root nodes of trees that have been modified, which this action should add to as necessary
      Throws:
        `XPathException` - if any error occurs applying the update

    - #### getTargetNode

          public abstract NodeInfo getTargetNode()

      Get the target node of the update action
      Returns:
        the target node, the node to which this update action applies. Returns null in the case of a delete action, which affects multiple nodes.

    - #### getApplyPhase

          public abstract int getApplyPhase()

      Get the phase of operation in which this pending update action is applied. See 3.2.2 upd:applyUpdates, Semantics, rule 2.
      Returns:
        the phase of operation, an integer in the range 1 to 5 representing the stages labelled a-e in the specification, or 6 for a PutAction

    - #### fixNodeName

          protected NodeName fixNodeName​(NodeName name)

      Fix a supplied node name for retention in the pending update list. Names held here must not contain references to mutable nodes
      Parameters:
        `name` - the supplied node name
      Returns:
        an immutable copy of the supplied node name