## net.sf.saxon.expr
Class FilterIterator.NonNumeric

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

All Implemented Interfaces:
  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.Leading, FilterIterator.NonNumeric`

Field Summary

Fields inherited from class net.sf.saxon.expr.FilterIterator
`base, filter, filterContext`

Fields inherited from interface net.sf.saxon.om.SequenceIterator
`GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD`

Constructor Summary
`FilterIterator.NonNumeric(SequenceIterator base, Expression filter, XPathContext context)` Create a FilterIterator for the situation where it is known that the filter expression will never evaluate to a number value.

Method Summary
`SequenceIterator` `getAnother()` Get another iterator to return the same nodes
`protected boolean` `matches()` Determine whether the context item matches the filter predicate

Methods inherited from class net.sf.saxon.expr.FilterIterator
`close, current, getNextMatchingItem, getProperties, next, position`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### FilterIterator.NonNumeric

    public FilterIterator.NonNumeric(SequenceIterator base,
                                     Expression filter,
                                     XPathContext context)

  Create a FilterIterator 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`

### getAnother

    public SequenceIterator getAnother()
                                throws XPathException

  Get another iterator to return the same nodes

  Specified by:
    `getAnother` in interface `SequenceIterator`
  Overrides:
    `getAnother` in class `FilterIterator`
  Returns:
    a SequenceIterator that iterates over the same items, positioned before the first item
  Throws:
    `XPathException` - if any error occurs

Copyright (c) Saxonica Limited. All rights reserved.