Class AbstractTupleIterable

java.lang.Object
mondrian.calc.impl.AbstractTupleIterable
All Implemented Interfaces:
Iterable<List<Member>>, TupleIterable

public abstract class AbstractTupleIterable extends Object implements TupleIterable
Abstract implementation of TupleIterable.

Derived classes need to implement only TupleIterable.tupleCursor(), and this implementation will implement tupleIterator() and iterator() by creating a wrapper around that cursor. (The cursor interface is easier to implement efficiently than the wider iterator interface.) If you have a more efficient implementation of cursor, override the tupleIterator method.

Author:
jhyde
  • Field Details

    • arity

      protected final int arity
  • Constructor Details

    • AbstractTupleIterable

      public AbstractTupleIterable(int arity)
      Creates an AbstractTupleIterable.
      Parameters:
      arity - Arity (number of members per tuple)
  • Method Details

    • getArity

      public int getArity()
      Description copied from interface: TupleIterable
      Returns the number of members in each tuple.
      Specified by:
      getArity in interface TupleIterable
      Returns:
      The number of members in each tuple
    • slice

      public Iterable<Member> slice(int column)
      Description copied from interface: TupleIterable
      Returns an iterable over the members at a given column.

      The iteratble returns an interator that is modifiable if and only if this TupleIterable is modifiable.

      If this TupleIterable happens to be a TupleList, the method is overridden to return a List<Member>.

      Specified by:
      slice in interface TupleIterable
      Parameters:
      column - Ordinal of the member in each tuple to project
      Returns:
      Iterable that returns an iterator over members
    • iterator

      public final Iterator<List<Member>> iterator()
      Specified by:
      iterator in interface Iterable<List<Member>>
    • tupleIterator

      public TupleIterator tupleIterator()
      Description copied from interface: TupleIterable
      Creates an iterator over the contents of this iterable.

      Always has the same effect as calling Iterable.iterator().

      Specified by:
      tupleIterator in interface TupleIterable
      Returns:
      cursor over the tuples returned by this iterable
      See Also: