Package com.saxonica.ee.stream.adjunct

## Class FilterFnStreamer

- java.lang.Object
- - com.saxonica.ee.stream.adjunct.StreamingAdjunct
  - - com.saxonica.ee.stream.adjunct.TransmissionAdjunct
    - - com.saxonica.ee.stream.adjunct.FilteringAdjunct
      - - com.saxonica.ee.stream.adjunct.FilterFnStreamer

- All Implemented Interfaces:
    `FeedMaker`
  Direct Known Subclasses:
    `ItemsAfterStreamer`, `ItemsBeforeStreamer`, `ItemsFromStreamer`, `ItemsUntilStreamer`

      public class FilterFnStreamer
      extends FilteringAdjunct

  Generate streaming code for the fn:filter function. Only streamable if the operand is grounded

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FilterFnStreamer()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static boolean` | `checkPredicateFunction​(Expression fn, java.util.List<java.lang.String> reasons)` |
    `PostureAndSweep` | `computeStreamability​(ContextItemStaticInfoEE contextInfo, java.util.List<java.lang.String> reasons)` | Compute the posture and sweep of this expression as defined in the W3C streamability specifications.
    `FilteringFeed.Filter` | `makeFilter​(XPathContext context, ItemFeed out)` | Make a filter for the event stream

    - ### Methods inherited from class com.saxonica.ee.stream.adjunct.FilteringAdjunct

      `makeItemFeed`

    - ### Methods inherited from class com.saxonica.ee.stream.adjunct.TransmissionAdjunct

      `getWatchMaker, makeTransmissionFlow`

    - ### Methods inherited from class com.saxonica.ee.stream.adjunct.StreamingAdjunct

      `findConsumingArg, getConfiguration, getDefaultFeedMaker, getExpression, getFeedMaker, makeStreamingAdjunct, setConfiguration, setExpression, toStreamingPattern`

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

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

- - ### Constructor Detail

    - #### FilterFnStreamer

          public FilterFnStreamer()

  - ### Method Detail

    - #### computeStreamability

          public PostureAndSweep computeStreamability​(ContextItemStaticInfoEE contextInfo,
                                                      java.util.List<java.lang.String> reasons)

      Compute the posture and sweep of this expression as defined in the W3C streamability specifications. This must be implemented in all subclasses that don't use the general streamability rules. The implementation should have the side-effect of computing the streamability of all subexpressions, recursively.
      Overrides:
        `computeStreamability` in class `StreamingAdjunct`
      Parameters:
        `contextInfo` - Information about the context item type and posture
        `reasons` - the caller may supply a list, in which case the implementation may add to this; the contents are human-readable messages explaining why the expression is not streamable.
      Returns:
        the posture and sweep of the expression

    - #### checkPredicateFunction

          public static boolean checkPredicateFunction​(Expression fn,
                                                       java.util.List<java.lang.String> reasons)

    - #### makeFilter

          public FilteringFeed.Filter makeFilter​(XPathContext context,
                                                 ItemFeed out)
                                          throws XPathException

      Make a filter for the event stream
      Specified by:
        `makeFilter` in class `FilteringAdjunct`
      Parameters:
        `context` - the XPath dyamic context
        `out` -
      Returns:
        a filter that can be added to the event stream
      Throws:
        `XPathException` - if a dynamic evaluation error occurs