Class RelationBackedList
- All Implemented Interfaces:
Iterable<nz.org.riskscape.engine.Tuple>,Collection<nz.org.riskscape.engine.Tuple>,List<nz.org.riskscape.engine.Tuple>
Allows a Relation to be treated like a List in a pipeline.
Mostly this is to allow relation data to be dynamically loaded from multiple different
sources, i.e. read a CSV file that points to other CSV files. Typically in a pipeline,
this will look something like:
select({*, to_list(bookmark(foo)) as relation_backed_list }) -> unnest(relation_backed_list)
Warning: some basic list operations can be slow for a RelationBackedList, especially if the relation is large. Some basic list operations are unsupported (i.e. modifying the list), although lists typically aren't modified in a pipeline (instead, a new list is created).
-
Field Summary
Fields inherited from class java.util.AbstractList
modCount -
Constructor Summary
ConstructorsConstructorDescriptionRelationBackedList(nz.org.riskscape.engine.relation.Relation relation, nz.org.riskscape.problem.ProblemSink sink) -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(int index, nz.org.riskscape.engine.Tuple element) booleanadd(nz.org.riskscape.engine.Tuple element) booleanaddAll(Collection<? extends nz.org.riskscape.engine.Tuple> c) nz.org.riskscape.engine.Tupleget(int index) Warning: accessing a specific item in RelationBackedList can be slow, as it requires iterating through all the tuples in the relation up to the specific index.booleanisEmpty()Iterator<nz.org.riskscape.engine.Tuple>iterator()intsize()Note that size() only includes the valid tuples in the relation.voidsort(Comparator<? super nz.org.riskscape.engine.Tuple> c) Methods inherited from class java.util.AbstractList
addAll, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subListMethods inherited from class java.util.AbstractCollection
contains, containsAll, remove, removeAll, retainAll, toArray, toArray, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArrayMethods inherited from interface java.util.List
contains, containsAll, remove, removeAll, replaceAll, retainAll, spliterator, toArray, toArray
-
Constructor Details
-
RelationBackedList
public RelationBackedList(nz.org.riskscape.engine.relation.Relation relation, nz.org.riskscape.problem.ProblemSink sink)
-
-
Method Details
-
iterator
- Specified by:
iteratorin interfaceCollection<nz.org.riskscape.engine.Tuple>- Specified by:
iteratorin interfaceIterable<nz.org.riskscape.engine.Tuple>- Specified by:
iteratorin interfaceList<nz.org.riskscape.engine.Tuple>- Overrides:
iteratorin classAbstractList<nz.org.riskscape.engine.Tuple>
-
get
public nz.org.riskscape.engine.Tuple get(int index) Warning: accessing a specific item in RelationBackedList can be slow, as it requires iterating through all the tuples in the relation up to the specific index.
- Specified by:
getin interfaceList<nz.org.riskscape.engine.Tuple>- Specified by:
getin classAbstractList<nz.org.riskscape.engine.Tuple>
-
size
public int size()Note that size() only includes the valid tuples in the relation. Warning: getting the size of a RelationBackedList can be slow, as it requires iterating through all the tuples in the relation in order to work out the exact size.
- Specified by:
sizein interfaceCollection<nz.org.riskscape.engine.Tuple>- Specified by:
sizein interfaceList<nz.org.riskscape.engine.Tuple>- Specified by:
sizein classAbstractCollection<nz.org.riskscape.engine.Tuple>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmptyin interfaceCollection<nz.org.riskscape.engine.Tuple>- Specified by:
isEmptyin interfaceList<nz.org.riskscape.engine.Tuple>- Overrides:
isEmptyin classAbstractCollection<nz.org.riskscape.engine.Tuple>
-
add
public void add(int index, nz.org.riskscape.engine.Tuple element) - Specified by:
addin interfaceList<nz.org.riskscape.engine.Tuple>- Overrides:
addin classAbstractList<nz.org.riskscape.engine.Tuple>
-
add
public boolean add(nz.org.riskscape.engine.Tuple element) - Specified by:
addin interfaceCollection<nz.org.riskscape.engine.Tuple>- Specified by:
addin interfaceList<nz.org.riskscape.engine.Tuple>- Overrides:
addin classAbstractList<nz.org.riskscape.engine.Tuple>
-
addAll
- Specified by:
addAllin interfaceCollection<nz.org.riskscape.engine.Tuple>- Specified by:
addAllin interfaceList<nz.org.riskscape.engine.Tuple>- Overrides:
addAllin classAbstractCollection<nz.org.riskscape.engine.Tuple>
-
sort
-