mondrian.calc
Interface TupleList

All Superinterfaces:
Collection<List<Member>>, Iterable<List<Member>>, List<List<Member>>, TupleIterable
All Known Implementing Classes:
AbstractEndToEndTupleList, AbstractTupleList, ArrayTupleList, DelegatingTupleList, ListTupleList, UnaryTupleList

public interface TupleList
extends List<List<Member>>, TupleIterable

List of tuples.

Design notes

Author:
jhyde

Nested Class Summary
static interface TupleList.PositionCallback
           
 
Method Summary
 void addCurrent(TupleCursor tupleIter)
           
 void addTuple(Member... members)
           
 TupleList cloneList(int capacity)
          Creates a copy of this list that has the same type and has a given capacity.
 TupleList fix()
          Fixes the tuples of this list, so that their contents will not change even if elements of the list are reordered or removed.
 Member get(int slice, int index)
          Returns a particular column of a particular row.
 TupleList project(int[] destIndices)
           
 List<Member> slice(int column)
          Returns a list of the members at a given column.
 TupleList subList(int fromIndex, int toIndex)
           
 TupleList withPositionCallback(TupleList.PositionCallback positionCallback)
           
 
Methods inherited from interface java.util.List
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, size, toArray, toArray
 
Methods inherited from interface mondrian.calc.TupleIterable
getArity, tupleCursor, tupleIterator
 

Method Detail

get

Member get(int slice,
           int index)
Returns a particular column of a particular row.

Note that list.get(row, column) is equivalent to list.slice(column).get(row) and list.get(row).get(column) but is more efficient for most implementations of TupleList.

Parameters:
slice - Column ordinal
index - Row ordinal
Returns:
Member at given row and column

slice

List<Member> slice(int column)
Returns a list of the members at a given column.

The list is modifiable if and only if this TupleList is modifiable. Adding an element to a slice will create a tuple whose members in other columns are null. Removing an element from a slicer will remove a tuple.

Specified by:
slice in interface TupleIterable
Parameters:
column - Ordinal of the member in each tuple to project
Returns:
List of members
Throws:
IllegalArgumentException - if column is not less than arity

cloneList

TupleList cloneList(int capacity)
Creates a copy of this list that has the same type and has a given capacity.

If capacity is negative, populates the list. A deep copy is made, so that it the contents of the list are not affected to changes to any backing collections.

Parameters:
capacity - Capacity
Returns:
Copy of list, empty if capacity is non-negative

addTuple

void addTuple(Member... members)

project

TupleList project(int[] destIndices)

addCurrent

void addCurrent(TupleCursor tupleIter)

subList

TupleList subList(int fromIndex,
                  int toIndex)
Specified by:
subList in interface List<List<Member>>

withPositionCallback

TupleList withPositionCallback(TupleList.PositionCallback positionCallback)

fix

TupleList fix()
Fixes the tuples of this list, so that their contents will not change even if elements of the list are reordered or removed. Returns this list if possible.

Returns:
List whose tuples are invariant if the list is sorted or filtered

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