Package mondrian.calc

Interface TupleCursor

All Known Subinterfaces:
TupleIterator
All Known Implementing Classes:
AbstractTupleCursor, AbstractTupleIterator, AbstractTupleList.AbstractTupleListIterator

public interface TupleCursor
Cheap interface for iterating through the contents of a TupleList.

Stops short of the full Iterator interface. If you want that, see TupleIterator.

Author:
Julian Hyde
  • Method Summary

    Modifier and Type
    Method
    Description
    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
    Moves the iterator forward one position.
    int
    Returns the number of members in each tuple.
    member(int column)
     
    void
    setContext(Evaluator evaluator)
     
  • Method Details

    • setContext

      void setContext(Evaluator evaluator)
    • forward

      boolean forward()
      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.

      Returns:
      Whether was able to move forward a position
    • current

      List<Member> current()
      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 forward() has not been called or if the most recent call to forward returned false.

      Returns:
      Current tuple
    • getArity

      int getArity()
      Returns the number of members in each tuple.
      Returns:
      The number of members in each tuple
    • member

      Member member(int column)
    • currentToArray

      void currentToArray(Member[] members, int offset)
      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.

      Parameters:
      members - Members
      offset - Offset in the array to write to