net.sf.saxon.expr
Class FilterIterator.NonNumeric

java.lang.Object
  extended by net.sf.saxon.expr.FilterIterator
      extended by 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
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) 2004-2010 Saxonica Limited. All rights reserved.