net.sf.saxon.expr
Class FilterIterator.Leading

java.lang.Object
  extended by net.sf.saxon.expr.FilterIterator
      extended by 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.