Package net.sf.saxon.expr

## Class FilterIterator.NonNumeric

- java.lang.Object
- - net.sf.saxon.expr.FilterIterator
  - - net.sf.saxon.expr.FilterIterator.NonNumeric

- All Implemented Interfaces:
    `java.io.Closeable`, `java.lang.AutoCloseable`, `SequenceIterator`
  Enclosing class:
    FilterIterator

      public static final class FilterIterator.NonNumeric
      extends FilterIterator

  Subclass to handle the common special case where it is statically known that the filter cannot return a numeric value

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class net.sf.saxon.expr.FilterIterator

      `FilterIterator.NonNumeric`

    - ### Nested classes/interfaces inherited from interface net.sf.saxon.om.SequenceIterator

      `SequenceIterator.Property`

  - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.expr.FilterIterator

      `base, filter, filterContext`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NonNumeric​(SequenceIterator base, Expression filter, XPathContext context)` | Create a CompiledFilterIterator for the situation where it is known that the filter expression will never evaluate to a number value.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | `matches()` | Determine whether the context item matches the filter predicate

    - ### Methods inherited from class net.sf.saxon.expr.FilterIterator

      `close, getNextMatchingItem, next, setSequence, testPredicateValue`

    - ### 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.om.SequenceIterator

      `forEachOrFail, getProperties, materialize`

- - ### Constructor Detail

    - #### NonNumeric

          public NonNumeric​(SequenceIterator base,
                            Expression filter,
                            XPathContext context)

      Create a CompiledFilterIterator for the situation where it is known that the filter expression will never evaluate to a number value. For this case we can simply use the effective boolean value of the predicate
      Parameters:
        `base` - iterator over the sequence to be filtered
        `filter` - the filter expression
        `context` - the current context (for evaluating the filter expression as a whole). A new context will be created to evaluate the predicate.

  - ### Method Detail

    - #### matches

          protected boolean matches()
                             throws XPathException

      Determine whether the context item matches the filter predicate
      Overrides:
        `matches` in class `FilterIterator`
      Returns:
        true if the context item matches
      Throws:
        `XPathException` - if an error occurs evaluating the match