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

    Constructors
    Constructor and Description
    `FilterIterator.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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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, setSequence`

    - ### 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 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`

    - #### 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) 2004-2013 Saxonica Limited. All rights reserved.