Class PendingUpdateListImpl

  • All Implemented Interfaces:
    PendingUpdateList

    public class PendingUpdateListImpl
    extends java.lang.Object
    implements PendingUpdateList
    Concrete implementation of the Pending Update List
    • 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.