Package com.saxonica.ee.stream.feed

## Class ItemCheckingFeed

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

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

      public class ItemCheckingFeed
      extends ItemFeed

  A Feed to go on the streaming pipeline that checks the item type of the items in the sequence represented by the events passing down the pipeline. This includes the ability to handled decomposed items represented as a sequence of startElement/endElement calls.

- - ### 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
    --- | ---
    `ItemCheckingFeed​(Expression checker, ItemFeed result, XPathContext context)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `append​(Item item)` | Supply an item to the feed
    `void` | `close()` | Signal the end of the sequence of items
    `void` | `endDocument()` | Notify the end of a document node
    `void` | `endElement()` | Notify the end of an element.
    `void` | `endSelectedParentNode​(Location locationId)` | Signal that the endElement event has occurred for the element whose startElement event caused the Watch to be activated.
    `void` | `startDocument​(int properties)` | Notify the start of a document node
    `void` | `startElement​(NodeName elemName, SchemaType type, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties)` | Notify the start of an element, supplying all attributes and namespaces
    `void` | `startElement​(NodeName elemName, SchemaType type, Location location, int properties)` | Notify the start of an element
    `Receiver` | `startSelectedParentNode​(FleetingParentNode node, Location locationId)` | Signal that an element or document node has been found that matches the selection that this Watch is looking for.

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

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

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

      `attribute, characters, comment, getNextOutputter, namespace, open, processingInstruction, setLocation, setUnparsedEntity, startContent, 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

    - #### ItemCheckingFeed

          public ItemCheckingFeed​(Expression checker,
                                  ItemFeed result,
                                  XPathContext context)

  - ### Method Detail

    - #### startSelectedParentNode

          public Receiver startSelectedParentNode​(FleetingParentNode node,
                                                  Location locationId)
                                           throws XPathException

      Description copied from class: `ItemFeed`
      Signal that an element or document node has been found that matches the selection that this Watch is looking for. This method is called by the WatchManager while processing the startElement or startDocument event that matches the selection.
      Overrides:
        `startSelectedParentNode` in class `ItemFeed`
      Parameters:
        `node` - the element or document node whose start event has been matched
        `locationId` - the location associated with the element or document node (may be the location of the instruction that created it)
      Returns:
        a Receiver to be notified of all events starting with the startElement/startDocument event for the matched element, and ending with the endElement event for that element; or null if this feature is not required.
      Throws:
        `XPathException` - May be raised if a dynamic error occurs

    - #### endSelectedParentNode

          public void endSelectedParentNode​(Location locationId)
                                     throws XPathException

      Description copied from class: `ItemFeed`
      Signal that the endElement event has occurred for the element whose startElement event caused the Watch to be activated.
      Overrides:
        `endSelectedParentNode` in class `ItemFeed`
      Parameters:
        `locationId` - the location of the element
      Throws:
        `XPathException` - May be raised if a constraint implemented by this Watch is violated

    - #### append

          public void append​(Item item)
                      throws XPathException

      Supply an item to the feed
      Specified by:
        `append` in interface `Receiver`
      Specified by:
        `append` in class `ItemFeed`
      Parameters:
        `item` - the item being fed
      Throws:
        `XPathException` - to report any failure

    - #### close

          public void close()
                     throws XPathException

      Signal the end of the sequence of items
      Specified by:
        `close` in interface `Receiver`
      Overrides:
        `close` in class `ItemFeed`
      Throws:
        `XPathException` - to report any failure

    - #### startDocument

          public void startDocument​(int properties)
                             throws XPathException

      Description copied from class: `ProxyOutputter`
      Notify the start of a document node
      Specified by:
        `startDocument` in interface `Receiver`
      Overrides:
        `startDocument` in class `ProxyOutputter`
      Parameters:
        `properties` - bit-significant integer indicating properties of the document node. The definitions of the bits are in class `ReceiverOption`
      Throws:
        `XPathException` - if an error occurs

    - #### startElement

          public void startElement​(NodeName elemName,
                                   SchemaType type,
                                   Location location,
                                   int properties)
                            throws XPathException

      Description copied from class: `ProxyOutputter`
      Notify the start of an element
      Overrides:
        `startElement` in class `ProxyOutputter`
      Parameters:
        `elemName` - the name of the element.
        `type` - the type annotation of the element.
        `location` - an object providing information about the module, line, and column where the node originated
        `properties` - bit-significant properties of the element node. If there are no relevant properties, zero is supplied. The definitions of the bits are in class `ReceiverOption`
      Throws:
        `XPathException` - if an error occurs

    - #### startElement

          public void startElement​(NodeName elemName,
                                   SchemaType type,
                                   AttributeMap attributes,
                                   NamespaceMap namespaces,
                                   Location location,
                                   int properties)
                            throws XPathException

      Description copied from class: `ProxyOutputter`
      Notify the start of an element, supplying all attributes and namespaces
      Specified by:
        `startElement` in interface `Receiver`
      Overrides:
        `startElement` in class `ProxyOutputter`
      Parameters:
        `elemName` - the name of the element.
        `type` - the type annotation of the element.
        `attributes` - the attributes of this element
        `namespaces` - the in-scope namespaces of this element: generally this is all the in-scope namespaces, without relying on inheriting namespaces from parent elements
        `location` - an object providing information about the module, line, and column where the node originated
        `properties` - bit-significant properties of the element node. If there are no relevant properties, zero is supplied. The definitions of the bits are in class `ReceiverOption`
      Throws:
        `XPathException` - if an error occurs

    - #### endElement

          public void endElement()
                          throws XPathException

      Description copied from class: `ProxyOutputter`
      Notify the end of an element. The Outputter must maintain a stack if it needs to know which element is ending.
      Specified by:
        `endElement` in interface `Receiver`
      Overrides:
        `endElement` in class `ProxyOutputter`
      Throws:
        `XPathException` - if an error occurs

    - #### endDocument

          public void endDocument()
                           throws XPathException

      Description copied from class: `ProxyOutputter`
      Notify the end of a document node
      Specified by:
        `endDocument` in interface `Receiver`
      Overrides:
        `endDocument` in class `ProxyOutputter`
      Throws:
        `XPathException` - if an error occurs