net.sf.jga.fn.algorithm
public class FindMismatch<T> extends AbstractUnaryFunctor<Iterator<? extends T>,LookAheadIterator<T>> implements Serializable
Copyright © 2003 David A. Hall
Nested Class Summary | |
---|---|
interface | FindMismatch.Visitor
Interface for classes that may interpret a FindMismatch
functor |
Constructor Summary | |
---|---|
FindMismatch(Collection<? extends T> elements)
Builds a FindMismatch functor that uses !equals() to compare elements.
| |
FindMismatch(Collection<? extends T> elements, BinaryFunctor<T,T,Boolean> neq)
Builds a FindMismatch functor that uses the given functor to compare
elements. | |
FindMismatch(Iterator<? extends T> iter, BinaryFunctor<T,T,Boolean> neq)
Builds one-time use FindMismatch finder that will test against the
contents of an iteration rather than a collection. |
Method Summary | |
---|---|
void | accept(Visitor v)
Calls the Visitor's visit(FindMismatch) method, if it
implements the nested Visitor interface. |
LookAheadIterator<T> | fn(Iterator<? extends T> iterator)
Locates the first/next element in an iteration that is not the same as the
corresponding element in the given collection/iteration. |
BinaryFunctor<T,T,Boolean> | getComparisonFn()
Returns the functor that is used to test matching elements |
Collection<? extends T> | getElements()
Returns the collection against which the argument will be compared. |
LookAheadIterator<T> | getMismatchedElement()
Returns an iterator pointing to mismatched element in the given
collection/iteration on the last call to fn(). |
String | toString() |
A FindMismatch built this way cannot be used more than once as the contents of the iteration will be consumed in the first execution.
visit(FindMismatch)
method, if it
implements the nested Visitor interface.Returns: an iterator whose next() [if it hasNext()] points to the next element in the iteration that does not match the corresponding element in the given collection. If no such element exists and the iteration is longer than the the given collection, then the returned iterator's next() points to the first element that does not exist in the given collection. If no mismatched element exists and the collection is at least as long as the iteration, then the returned iterator's hasNext() will be false.
Throws: IllegalStateException if called before a call to fn or called more than once afterword.