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
ConstructorDescriptionRelationBackedList
(nz.org.riskscape.engine.relation.Relation relation, nz.org.riskscape.problem.ProblemSink sink) -
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(int index, nz.org.riskscape.engine.Tuple element) boolean
add
(nz.org.riskscape.engine.Tuple element) boolean
addAll
(Collection<? extends nz.org.riskscape.engine.Tuple> c) 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.boolean
isEmpty()
Iterator<nz.org.riskscape.engine.Tuple>
iterator()
int
size()
Note that size() only includes the valid tuples in the relation.void
sort
(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, subList
Methods inherited from class java.util.AbstractCollection
contains, containsAll, 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.Collection
parallelStream, removeIf, stream, toArray
Methods 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:
iterator
in interfaceCollection<nz.org.riskscape.engine.Tuple>
- Specified by:
iterator
in interfaceIterable<nz.org.riskscape.engine.Tuple>
- Specified by:
iterator
in interfaceList<nz.org.riskscape.engine.Tuple>
- Overrides:
iterator
in 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:
get
in interfaceList<nz.org.riskscape.engine.Tuple>
- Specified by:
get
in 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:
size
in interfaceCollection<nz.org.riskscape.engine.Tuple>
- Specified by:
size
in interfaceList<nz.org.riskscape.engine.Tuple>
- Specified by:
size
in classAbstractCollection<nz.org.riskscape.engine.Tuple>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmpty
in interfaceCollection<nz.org.riskscape.engine.Tuple>
- Specified by:
isEmpty
in interfaceList<nz.org.riskscape.engine.Tuple>
- Overrides:
isEmpty
in classAbstractCollection<nz.org.riskscape.engine.Tuple>
-
add
public void add(int index, nz.org.riskscape.engine.Tuple element) - Specified by:
add
in interfaceList<nz.org.riskscape.engine.Tuple>
- Overrides:
add
in classAbstractList<nz.org.riskscape.engine.Tuple>
-
add
public boolean add(nz.org.riskscape.engine.Tuple element) - Specified by:
add
in interfaceCollection<nz.org.riskscape.engine.Tuple>
- Specified by:
add
in interfaceList<nz.org.riskscape.engine.Tuple>
- Overrides:
add
in classAbstractList<nz.org.riskscape.engine.Tuple>
-
addAll
- Specified by:
addAll
in interfaceCollection<nz.org.riskscape.engine.Tuple>
- Specified by:
addAll
in interfaceList<nz.org.riskscape.engine.Tuple>
- Overrides:
addAll
in classAbstractCollection<nz.org.riskscape.engine.Tuple>
-
sort
-