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

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

All Implemented Interfaces:
  SequenceIterator

Enclosing class:
  FilterIterator

    public static final class FilterIterator.Leading

extends FilterIterator

Subclass to support the extension function saxon:leading, which terminates the iteration at the first item whose predicate is false

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.Leading(SequenceIterator base, Expression filter, XPathContext context)` Create a FilterIterate that terminates at the first item for which the predicate evaluates to false

Method Summary
`SequenceIterator` `getAnother()` Get another iterator to return the same nodes
`protected Item` `getNextMatchingItem()` Get the next node that matches the filter predicate if there is one
`protected boolean` `matches()` Determine whether the context item matches the filter predicate

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

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

Constructor Detail

### FilterIterator.Leading

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

  Create a FilterIterate that terminates at the first item for which the predicate evaluates to false

  Parameters:
    `base` - iterator over the sequence to be filtered
    `filter` - the filter expression - always evaluated as a boolean
    `context` - the outer context for the filter expression as a whole; a new context will be created for evaluating 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`

### getNextMatchingItem

    protected Item getNextMatchingItem()
                                throws XPathException

  Get the next node that matches the filter predicate if there is one

  Overrides:
    `getNextMatchingItem` in class `FilterIterator`
  Returns:
    the next item that matches the predicate
  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.