com.saxonica.update

## Class PendingUpdateListImpl

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

- All Implemented Interfaces:
    PendingUpdateList

      public class PendingUpdateListImpl
      extends Object
      implements PendingUpdateList

  Concrete implementation of the Pending Update List

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PendingUpdateListImpl(Configuration config)` Create a Pending Update List

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(PendingUpdateAction action)` Add an action to the pending update list
    `void` | `addPutAction(NodeInfo node, String uri, Expression originator)` Add a put() action to the pending update list
    `void` | `apply(XPathContext context, int validationMode)` Apply the pending updates
    `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,
                          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`

    - #### getAffectedTrees

          public 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.

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.