org.aspectj.weaver
Class Iterators

java.lang.Object
  extended by org.aspectj.weaver.Iterators

public final class Iterators
extends java.lang.Object


Nested Class Summary
static interface Iterators.Filter<T>
          A filter represents a mapping function from Iterator to Iterator
static interface Iterators.Getter<A,B>
          A getter represents a mapping function from Object to Iterator
static class Iterators.ResolvedTypeArrayIterator
           
 
Method Summary
static
<T> java.util.Iterator<T>
append(java.util.Iterator<T> a, java.util.Iterator<T> b)
          creates an iterator I based on base iterators A and B.
static
<T> java.util.Iterator<T>
append1(java.util.Iterator<T> a, java.util.Iterator<T> b)
          creates an iterator I based on base iterators A and B.
static java.util.Iterator<ResolvedType> array(ResolvedType[] o, boolean genericsAware)
           
static
<T> java.util.Iterator<T>
array(T[] o)
          Creates an iterator that will return the elements of a specified array, in order.
static
<T> Iterators.Filter<T>
dupFilter()
          Create a new filter F that, when wrapped around another iterator I, creates a new iterator I' that will return only those values of I that have not yet been returned by I', discarding duplicates.
static
<A,B> java.util.Iterator<B>
mapOver(java.util.Iterator<A> a, Iterators.Getter<A,B> g)
          creates an iterator I based on a base iterator A and a getter G.
static
<T> java.util.Iterator<T>
one(T it)
          creates an iterator I based on an object O.
static
<A> java.util.Iterator<A>
recur(A a, Iterators.Getter<A,A> g)
          creates an iterator I based on a base iterator A and a getter G.
static
<T> java.util.Iterator<T>
snoc(java.util.Iterator<T> first, T last)
          creates an iterator I based on a base iterator A and an object O.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

dupFilter

public static <T> Iterators.Filter<T> dupFilter()
Create a new filter F that, when wrapped around another iterator I, creates a new iterator I' that will return only those values of I that have not yet been returned by I', discarding duplicates.


array

public static <T> java.util.Iterator<T> array(T[] o)
Creates an iterator that will return the elements of a specified array, in order. Like Arrays.asList(o).iterator(), without all that pesky safety.


array

public static java.util.Iterator<ResolvedType> array(ResolvedType[] o,
                                                     boolean genericsAware)

mapOver

public static <A,B> java.util.Iterator<B> mapOver(java.util.Iterator<A> a,
                                                  Iterators.Getter<A,B> g)
creates an iterator I based on a base iterator A and a getter G. I returns, in order, forall (i in A), G(i).


recur

public static <A> java.util.Iterator<A> recur(A a,
                                              Iterators.Getter<A,A> g)
creates an iterator I based on a base iterator A and a getter G. I returns, in order, forall (i in I) i :: forall (i' in g(i)) recur(i', g)


append

public static <T> java.util.Iterator<T> append(java.util.Iterator<T> a,
                                               java.util.Iterator<T> b)
creates an iterator I based on base iterators A and B. Returns the elements returned by A followed by those returned by B. If B is empty, simply returns A, and if A is empty, simply returns B. Do NOT USE if b.hasNext() is not idempotent.


append1

public static <T> java.util.Iterator<T> append1(java.util.Iterator<T> a,
                                                java.util.Iterator<T> b)
creates an iterator I based on base iterators A and B. Returns the elements returned by A followed by those returned by B. If A is empty, simply returns B. Guaranteed not to call B.hasNext() until A is empty.


snoc

public static <T> java.util.Iterator<T> snoc(java.util.Iterator<T> first,
                                             T last)
creates an iterator I based on a base iterator A and an object O. Returns the elements returned by A, followed by O.


one

public static <T> java.util.Iterator<T> one(T it)
creates an iterator I based on an object O. Returns O, once.