org.eclipse.xtext.nodemodel.util
Class ReversedBidiTreeIterable<T>

java.lang.Object
  extended by org.eclipse.xtext.nodemodel.util.ReversedBidiIterable<T>
      extended by org.eclipse.xtext.nodemodel.util.ReversedBidiTreeIterable<T>
All Implemented Interfaces:
java.lang.Iterable<T>, BidiIterable<T>, BidiTreeIterable<T>

public class ReversedBidiTreeIterable<T>
extends ReversedBidiIterable<T>
implements BidiTreeIterable<T>


Constructor Summary
ReversedBidiTreeIterable(BidiTreeIterable<T> delegate)
           
 
Method Summary
protected  BidiTreeIterable<T> getDelegate()
           
 BidiTreeIterator<T> iterator()
          Returns an iterator that can be used forwards and backwards.
 BidiTreeIterable<T> reverse()
          Returns a reverse version of this iterable that can be used forwards and backwards.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReversedBidiTreeIterable

public ReversedBidiTreeIterable(BidiTreeIterable<T> delegate)
Method Detail

iterator

public BidiTreeIterator<T> iterator()
Description copied from interface: BidiIterable
Returns an iterator that can be used forwards and backwards.

Specified by:
iterator in interface java.lang.Iterable<T>
Specified by:
iterator in interface BidiIterable<T>
Specified by:
iterator in interface BidiTreeIterable<T>
Overrides:
iterator in class ReversedBidiIterable<T>
Returns:
an iterator. Never returns null.

reverse

public BidiTreeIterable<T> reverse()
Description copied from interface: BidiIterable

Returns a reverse version of this iterable that can be used forwards and backwards. In other words, an iterator provided by the reverse iterable will delegate its hasNext() and next() invocations to BidiIterator.hasPrevious() and BidiIterator.previous() respectively.

This allows clients to iterate backwards by means of the enhanced for-loop:

 for(T t: iterable.reverse()) {
   // do something with t
 }
 

Specified by:
reverse in interface BidiIterable<T>
Specified by:
reverse in interface BidiTreeIterable<T>
Overrides:
reverse in class ReversedBidiIterable<T>
Returns:
the reversed iterable. Never returns null.

getDelegate

protected BidiTreeIterable<T> getDelegate()
Overrides:
getDelegate in class ReversedBidiIterable<T>