Package com.saxonica.ee.stream.feed

## Class SnapshotFeed

- java.lang.Object
- - net.sf.saxon.event.Outputter
  - - net.sf.saxon.event.ProxyOutputter
    - - com.saxonica.ee.stream.feed.ItemFeed
      - - com.saxonica.ee.stream.feed.GroundedItemFeed
        - - com.saxonica.ee.stream.feed.AbsorptionFeed
          - - com.saxonica.ee.stream.feed.SnapshotFeed

- All Implemented Interfaces:
    `javax.xml.transform.Result`, `Receiver`

      public class SnapshotFeed
      extends AbsorptionFeed

  This class provides streamed implementation of the snapshot() function

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.saxonica.ee.stream.feed.AbsorptionFeed

      `AbsorptionFeed.PendingItem`

  - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.event.Outputter

      `pipelineConfiguration, systemId`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SnapshotFeed​(WatchManager watchManager, ItemFeed result, XPathContext context)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Trigger` | `getWatch​(ItemFeed result, Pattern selection, WatchManager wm, XPathContext context)` | Create a Watch whose effect is to create snapshots of the selected (streamed) nodes and pass them to the supplied feed
    `protected AbsorptionFeed.PendingItem` | `makePendingItem​(int sequenceNr, FleetingParentNode node)` | Create a pending item (appropriate to the subclass) containing the data needed to compute the result value for one node in the streamed input sequence
    `protected Sequence` | `processGroundedItem​(Item item)` | Process a grounded item in the input sequence: either a streamed leaf node such as an attribute or text node, or an atomic value, or a non-streamed element or document node injected into the sequence for example by use of the comma operator.

    - ### Methods inherited from class com.saxonica.ee.stream.feed.AbsorptionFeed

      `append, endSelectedParentNode, setHasFailed, startSelectedParentNode`

    - ### Methods inherited from class com.saxonica.ee.stream.feed.GroundedItemFeed

      `attribute, characters, comment, endDocument, endElement, namespace, processingInstruction, setUnparsedEntity, startContent, startDocument, startElement, startElement`

    - ### Methods inherited from class com.saxonica.ee.stream.feed.ItemFeed

      `append, close, dynamicError, getContext, getExpression, getResult, getTerminator, hasFailed, open, processItems, setExpression, setTerminator`

    - ### Methods inherited from class net.sf.saxon.event.ProxyOutputter

      `getNextOutputter, open, setLocation, usesTypeAnnotations`

    - ### Methods inherited from class net.sf.saxon.event.Outputter

      `getConfiguration, getPipelineConfiguration, getStringReceiver, getSystemId, namespaces, setPipelineConfiguration, setSystemId`

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

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

    - ### Methods inherited from interface net.sf.saxon.event.Receiver

      `handlesAppend`

- - ### Constructor Detail

    - #### SnapshotFeed

          public SnapshotFeed​(WatchManager watchManager,
                              ItemFeed result,
                              XPathContext context)

  - ### Method Detail

    - #### getWatch

          public static Trigger getWatch​(ItemFeed result,
                                         Pattern selection,
                                         WatchManager wm,
                                         XPathContext context)

      Create a Watch whose effect is to create snapshots of the selected (streamed) nodes and pass them to the supplied feed
      Parameters:
        `result` - The feed to which the snapshot nodes should be supplied
        `selection` - defines the nodes to be selected
        `wm` - The WatchManager that will notify the selected nodes
        `context` - the XPath evaluation context
      Returns:
        the new Watch

    - #### makePendingItem

          protected AbsorptionFeed.PendingItem makePendingItem​(int sequenceNr,
                                                               FleetingParentNode node)
                                                        throws XPathException

      Description copied from class: `AbsorptionFeed`
      Create a pending item (appropriate to the subclass) containing the data needed to compute the result value for one node in the streamed input sequence
      Specified by:
        `makePendingItem` in class `AbsorptionFeed`
      Parameters:
        `sequenceNr` - the sequence number of this node within a set of nested nodes
        `node` - the streamed input node
      Returns:
        the data needed to process this node
      Throws:
        `XPathException` - if a dynamic error is detected at this stage

    - #### processGroundedItem

          protected Sequence processGroundedItem​(Item item)

      Description copied from class: `AbsorptionFeed`
      Process a grounded item in the input sequence: either a streamed leaf node such as an attribute or text node, or an atomic value, or a non-streamed element or document node injected into the sequence for example by use of the comma operator.
      Specified by:
        `processGroundedItem` in class `AbsorptionFeed`
      Parameters:
        `item` - the grounded item
      Returns:
        the result of processing the grounded item