Package mondrian.calc.impl
Class ListTupleList
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<java.util.List<Member>>
-
- mondrian.calc.impl.AbstractTupleList
-
- mondrian.calc.impl.AbstractEndToEndTupleList
-
- mondrian.calc.impl.ListTupleList
-
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Iterable<java.util.List<Member>>
,java.util.Collection<java.util.List<Member>>
,java.util.List<java.util.List<Member>>
,java.util.RandomAccess
,TupleIterable
,TupleList
public class ListTupleList extends AbstractEndToEndTupleList
Implementation ofTupleList
that stores tuples end-to-end in a backing list.l1: {A,B,C},{D,E,F} l2: {a,b},{c,d},{e,f} externally looks like: [] <- {A,B,C,a,b} [] <- {A,B,C,c,d} [] <- {A,B,C,e,f} [] <- {D,E,F,a,b} [] <- {D,E,F,c,d} [] <- {D,E,F,e,d} but internally is: A,B,C,a,b,A,B,C,c,d,A,B,C,e,f,D,E,F,a,b,D,E,F,c,d,D,E,F,e,d
- 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
-
-
Constructor Summary
Constructors Constructor Description ListTupleList(int arity, java.util.List<Member> list)
Creates a ListTupleList.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int index, java.util.List<Member> element)
void
addTuple(Member... members)
protected java.util.List<Member>
backingList()
void
clear()
TupleList
cloneList(int capacity)
Creates a copy of this list that has the same type and has a given capacity.java.util.List<Member>
get(int index)
Member
get(int slice, int index)
Returns a particular column of a particular row.java.util.List<Member>
remove(int index)
protected void
removeRange(int fromIndex, int toIndex)
int
size()
java.util.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, addAll, project, set, subList, withPositionCallback
-
Methods inherited from class mondrian.calc.impl.AbstractTupleList
addCurrent, fix, getArity, iterator, tupleCursor, tupleIterator
-
Methods inherited from class java.util.AbstractList
add, equals, hashCode, indexOf, lastIndexOf, listIterator, listIterator
-
Methods inherited from class java.util.AbstractCollection
contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
-
-
-
-
Constructor Detail
-
ListTupleList
public ListTupleList(int arity, java.util.List<Member> list)
Creates a ListTupleList.- Parameters:
arity
- Aritylist
- Backing list
-
-
Method Detail
-
backingList
protected java.util.List<Member> backingList()
- Specified by:
backingList
in classAbstractEndToEndTupleList
-
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 tolist.slice(column).get(row)
andlist.get(row).get(column)
but is more efficient for most implementations of TupleList.- Specified by:
get
in interfaceTupleList
- Overrides:
get
in classAbstractTupleList
- Parameters:
slice
- Column ordinalindex
- Row ordinal- Returns:
- Member at given row and column
-
get
public java.util.List<Member> get(int index)
-
add
public void add(int index, java.util.List<Member> element)
-
addTuple
public void addTuple(Member... members)
-
clear
public void clear()
-
remove
public java.util.List<Member> remove(int index)
-
removeRange
protected void removeRange(int fromIndex, int toIndex)
- Overrides:
removeRange
in classjava.util.AbstractList<java.util.List<Member>>
-
size
public int size()
-
slice
public java.util.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 classAbstractTupleList
-
-