Package com.saxonica.ee.stream.feed

## Class SimpleContentFeed

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

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

      public class SimpleContentFeed
      extends AbsorptionFeed

  This class is used when a streaming template requests evaluation of a simple content constructor in streaming mode (that is, when it constructs a text, attribute, comment, or PI node based on the contents of the streamed document).

  The result of this Watch is a single string, constructed using the rules of "Constructing Simple Content" in the XSLT specification.

  The AdjacentTextNodeMergerFeed is used when the node is constructed as a result of a computation on the streamed data, for example `xsl:value-of select="distinct-values(.//@price)"`. By contrast, a SimpleContentWatch is used when the streamed nodes are selected directly, for example `xsl:value-of select=".//@price"`.

  Both a Feed and a Watch are needed because a simple content constructor operates on a sequence of nodes without simply atomizing the sequence.

- - ### 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
    --- | ---
    `SimpleContentFeed​(ItemFeed result)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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

    - #### SimpleContentFeed

          public SimpleContentFeed​(ItemFeed result)

  - ### Method Detail

    - #### makePendingItem

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

      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

    - #### processGroundedItem

          protected Sequence processGroundedItem​(Item item)
                                          throws XPathException

      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
      Throws:
        `XPathException` - if a dynamic error occurs