Package com.saxonica.ee.update

## Class PendingUpdateListImpl

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

- All Implemented Interfaces:
    `PendingUpdateList`

      public class PendingUpdateListImpl
      extends java.lang.Object
      implements PendingUpdateList

  Concrete implementation of the Pending Update List

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PendingUpdateListImpl​(Configuration config)` | Create a Pending Update List

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(PendingUpdateAction action)` | Add an action to the pending update list
    `void` | `addPutAction​(NodeInfo node, java.lang.String uri, Expression originator)` | Add a put() action to the pending update list
    `void` | `apply​(XPathContext context, int validationMode)` | Apply the pending updates
    `java.util.Set<MutableNodeInfo>` | `getAffectedTrees()` | Get the root nodes of the trees that are affected by updates in the pending update list

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

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

- - ### Constructor Detail

    - #### PendingUpdateListImpl

          public PendingUpdateListImpl​(Configuration config)

      Create a Pending Update List
      Parameters:
        `config` - the Saxon configuration

  - ### Method Detail

    - #### add

          public void add​(PendingUpdateAction action)
                   throws XPathException

      Add an action to the pending update list
      Parameters:
        `action` - the Pending Update Action to be added to the list
      Throws:
        `XPathException` - if the pending update action conflicts with an action that is already on the list

    - #### addPutAction

          public void addPutAction​(NodeInfo node,
                                   java.lang.String uri,
                                   Expression originator)
                            throws XPathException

      Add a put() action to the pending update list
      Specified by:
        `addPutAction` in interface `PendingUpdateList`
      Parameters:
        `node` - (the first argument of put())
        `uri` - (the second argument of put())
        `originator` - the originating put() expression, for diagnostics
      Throws:
        `XPathException`

    - #### apply

          public void apply​(XPathContext context,
                            int validationMode)
                     throws XPathException

      Apply the pending updates
      Specified by:
        `apply` in interface `PendingUpdateList`
      Parameters:
        `context` - the XPath dynamic evaluation context
        `validationMode` - the revalidation mode from the static context
      Throws:
        `XPathException` - if the operation fails

    - #### getAffectedTrees

          public java.util.Set<MutableNodeInfo> getAffectedTrees()

      Get the root nodes of the trees that are affected by updates in the pending update list
      Specified by:
        `getAffectedTrees` in interface `PendingUpdateList`
      Returns:
        the root nodes of affected trees, as a Set. Note that this includes all trees that have been updated; this is a superset of the trees that need to be revalidated, but updates that don't require revalidation are sufficiently unusual that we don't trouble with the distinction.