mondrian.calc.impl
Class AbstractTupleList.AbstractTupleListIterator

java.lang.Object
  extended by mondrian.calc.impl.AbstractTupleList.AbstractTupleListIterator
All Implemented Interfaces:
Iterator<List<Member>>, TupleCursor, TupleIterator
Enclosing class:
AbstractTupleList

protected class AbstractTupleList.AbstractTupleListIterator
extends Object
implements TupleIterator

Implementation of TupleIterator for ArrayTupleList. Based upon AbstractList.Itr, but with concurrent modification checking removed.


Field Summary
(package private)  int cursor
          Index of element to be returned by subsequent call to next.
(package private)  int lastRet
          Index of element returned by most recent call to next or previous.
 
Constructor Summary
protected AbstractTupleList.AbstractTupleListIterator()
           
 
Method Summary
 List<Member> current()
          Returns the tuple that this cursor is positioned on.
 void currentToArray(Member[] members, int offset)
          Writes the member(s) of the next tuple to a given offset in an array.
 boolean forward()
          Moves the iterator forward one position.
 int getArity()
          Returns the number of members in each tuple.
 boolean hasNext()
           
 Member member(int column)
           
 List<Member> next()
           
 void remove()
           
 void setContext(Evaluator evaluator)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cursor

int cursor
Index of element to be returned by subsequent call to next.


lastRet

int lastRet
Index of element returned by most recent call to next or previous. Reset to -1 if this element is deleted by a call to remove.

Constructor Detail

AbstractTupleList.AbstractTupleListIterator

protected AbstractTupleList.AbstractTupleListIterator()
Method Detail

hasNext

public boolean hasNext()
Specified by:
hasNext in interface Iterator<List<Member>>

next

public List<Member> next()
Specified by:
next in interface Iterator<List<Member>>

forward

public boolean forward()
Description copied from interface: TupleCursor
Moves the iterator forward one position.

Returns false only when end of data has been reached.

Similar to calling the Iterator methods Iterator.hasNext() followed by Iterator.next() but does not construct an object, and is therefore cheaper.

If you want to use an Iterator, see TupleIterator.

Specified by:
forward in interface TupleCursor
Returns:
Whether was able to move forward a position

current

public List<Member> current()
Description copied from interface: TupleCursor
Returns the tuple that this cursor is positioned on.

This method never returns null, and may safely be called multiple times (or not all) for each position in the iteration.

Invalid to call this method when the cursor is has not been positioned, for example, if TupleCursor.forward() has not been called or if the most recent call to forward returned false.

Specified by:
current in interface TupleCursor
Returns:
Current tuple

currentToArray

public void currentToArray(Member[] members,
                           int offset)
Description copied from interface: TupleCursor
Writes the member(s) of the next tuple to a given offset in an array.

This method saves the overhead of a memory allocation when the resulting tuple will be written immediately to an array. The effect of currentToArray(members, 0) is the same as calling current().toArray(members).

Before calling this method, you must position the iterator at a valid position. Typically you would call hasNext followed by next; or forward.

Specified by:
currentToArray in interface TupleCursor
Parameters:
members - Members
offset - Offset in the array to write to

getArity

public int getArity()
Description copied from interface: TupleCursor
Returns the number of members in each tuple.

Specified by:
getArity in interface TupleCursor
Returns:
The number of members in each tuple

remove

public void remove()
Specified by:
remove in interface Iterator<List<Member>>

setContext

public void setContext(Evaluator evaluator)
Specified by:
setContext in interface TupleCursor

member

public Member member(int column)
Specified by:
member in interface TupleCursor

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads