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 Object
A pending update action, such as is found on a pending update list
  • Constructor Details

    • PendingUpdateAction

      public PendingUpdateAction()
  • Method Details

    • 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, 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