net.sf.saxon.expr

Class FilterIterator.NonNumeric

Enclosing Class:
FilterIterator
Implemented Interfaces:
SequenceIterator

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

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

current, getAnother, getNextMatchingItem, getProperties, matches, next, position

Constructor Details

NonNumeric

public 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 Details

getAnother

public SequenceIterator getAnother()
            throws XPathException
Get another iterator to return the same nodes
Specified by:
getAnother in interface SequenceIterator
Overrides:
getAnother in interface FilterIterator

matches

protected boolean matches()
            throws XPathException
Determine whether the context item matches the filter predicate
Overrides:
matches in interface FilterIterator