mondrian.calc.impl
Class ArrayTupleList

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<List<Member>>
          extended by mondrian.calc.impl.AbstractTupleList
              extended by mondrian.calc.impl.AbstractEndToEndTupleList
                  extended by mondrian.calc.impl.ArrayTupleList
All Implemented Interfaces:
Cloneable, Iterable<List<Member>>, Collection<List<Member>>, List<List<Member>>, RandomAccess, TupleIterable, TupleList

public class ArrayTupleList
extends AbstractEndToEndTupleList

Implementation of TupleList that stores tuples end-to-end in an array.

Author:
jhyde

Nested Class Summary
 
Nested classes/interfaces inherited from class mondrian.calc.impl.AbstractTupleList
AbstractTupleList.AbstractTupleListIterator
 
Nested classes/interfaces inherited from interface mondrian.calc.TupleList
TupleList.PositionCallback
 
Field Summary
 
Fields inherited from class mondrian.calc.impl.AbstractTupleList
arity, mutable
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
ArrayTupleList(int arity)
          Creates an empty ArrayTupleList with an initial capacity of 10 tuples.
ArrayTupleList(int arity, int initialCapacity)
          Creates an empty ArrayTupleList.
 
Method Summary
 void add(int index, List<Member> members)
           
 boolean add(List<Member> members)
           
 boolean addAll(int index, Collection<? extends List<Member>> c)
           
 void addCurrent(TupleCursor tupleIter)
           
 void addTuple(Member... members)
           
protected  List<Member> backingList()
           
 TupleList cloneList(int capacity)
          Creates a copy of this list that has the same type and has a given capacity.
 List<Member> get(int index)
           
 Member get(int slice, int index)
          Returns a particular column of a particular row.
 List<Member> remove(int index)
           
 List<Member> set(int index, List<Member> element)
           
 int size()
           
 List<Member> slice(int column)
          Returns a list of the members at a given column.
 TupleIterator tupleIteratorInternal()
           
 
Methods inherited from class mondrian.calc.impl.AbstractEndToEndTupleList
addAll, project, subList, withPositionCallback
 
Methods inherited from class mondrian.calc.impl.AbstractTupleList
fix, getArity, iterator, tupleCursor, tupleIterator
 
Methods inherited from class java.util.AbstractList
clear, equals, hashCode, indexOf, lastIndexOf, listIterator, listIterator, removeRange
 
Methods inherited from class java.util.AbstractCollection
contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
clear, contains, containsAll, equals, hashCode, indexOf, isEmpty, lastIndexOf, listIterator, listIterator, remove, removeAll, retainAll, toArray, toArray
 

Constructor Detail

ArrayTupleList

public ArrayTupleList(int arity)
Creates an empty ArrayTupleList with an initial capacity of 10 tuples.

Parameters:
arity - Arity

ArrayTupleList

public ArrayTupleList(int arity,
                      int initialCapacity)
Creates an empty ArrayTupleList.

Parameters:
arity - Arity
initialCapacity - Initial capacity
Method Detail

backingList

protected List<Member> backingList()
Specified by:
backingList in class AbstractEndToEndTupleList

get

public Member get(int slice,
                  int index)
Description copied from interface: TupleList
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.

Specified by:
get in interface TupleList
Overrides:
get in class AbstractTupleList
Parameters:
slice - Column ordinal
index - Row ordinal
Returns:
Member at given row and column

get

public List<Member> get(int index)
Specified by:
get in interface List<List<Member>>
Specified by:
get in class AbstractList<List<Member>>

set

public List<Member> set(int index,
                        List<Member> element)
Specified by:
set in interface List<List<Member>>
Overrides:
set in class AbstractEndToEndTupleList

addCurrent

public void addCurrent(TupleCursor tupleIter)
Specified by:
addCurrent in interface TupleList
Overrides:
addCurrent in class AbstractTupleList

size

public int size()
Specified by:
size in interface Collection<List<Member>>
Specified by:
size in interface List<List<Member>>
Specified by:
size in class AbstractCollection<List<Member>>

add

public boolean add(List<Member> members)
Specified by:
add in interface Collection<List<Member>>
Specified by:
add in interface List<List<Member>>
Overrides:
add in class AbstractList<List<Member>>

add

public void add(int index,
                List<Member> members)
Specified by:
add in interface List<List<Member>>
Overrides:
add in class AbstractList<List<Member>>

addAll

public boolean addAll(int index,
                      Collection<? extends List<Member>> c)
Specified by:
addAll in interface List<List<Member>>
Overrides:
addAll in class AbstractEndToEndTupleList

addTuple

public void addTuple(Member... members)

remove

public List<Member> remove(int index)
Specified by:
remove in interface List<List<Member>>
Overrides:
remove in class AbstractList<List<Member>>

slice

public List<Member> slice(int column)
Description copied from interface: TupleList
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.

Parameters:
column - Ordinal of the member in each tuple to project
Returns:
List of members

cloneList

public TupleList cloneList(int capacity)
Description copied from interface: TupleList
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

tupleIteratorInternal

public TupleIterator tupleIteratorInternal()
Specified by:
tupleIteratorInternal in class AbstractTupleList

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