Package org.eclipse.rdf4j.query.impl
Class MutableTupleQueryResult
java.lang.Object
org.eclipse.rdf4j.query.impl.MutableTupleQueryResult
- All Implemented Interfaces:
AutoCloseable
,Cloneable
,Iterable<BindingSet>
,CloseableIteration<BindingSet,
,QueryEvaluationException> Iteration<BindingSet,
,QueryEvaluationException> QueryResult<BindingSet>
,TupleQueryResult
An implementation of the
TupleQueryResult
interface that stores the complete query result in memory. The
query results in a MutableTupleQueryResult can be iterated over multiple times and can also be iterated over in
reverse order.- Author:
- Arjohn Kampman
-
Constructor Summary
ConstructorDescriptionMutableTupleQueryResult
(Collection<String> bindingNames, Collection<? extends BindingSet> bindingSets) Creates a query result table with the supplied binding names.MutableTupleQueryResult
(Collection<String> bindingNames, Iteration<? extends BindingSet, E> bindingSetIter) MutableTupleQueryResult
(Collection<String> bindingNames, BindingSet... bindingSets) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Moves the cursor to the end of the query result, just after the last binding set.void
append
(BindingSet bindingSet) void
Moves the cursor to the start of the query result, just before the first binding set.void
clear()
clone()
void
close()
Closes this iteration, freeing any resources that it is holding.get
(int index) Gets the names of the bindings, in order of projection.int
getIndex()
boolean
hasNext()
Returns true if the iteration has more elements.boolean
void
insert
(int index, BindingSet bindingSet) void
insert
(BindingSet bindingSet) Inserts the specified binding set into the list.next()
Returns the next element in the iteration.previous()
void
remove()
Removes from the underlying collection the last element returned by the iteration (optional operation).remove
(int index) set
(int index, BindingSet bindingSet) void
set
(BindingSet bindingSet) void
setIndex
(int index) int
size()
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface org.eclipse.rdf4j.query.QueryResult
iterator
-
Constructor Details
-
MutableTupleQueryResult
-
MutableTupleQueryResult
public MutableTupleQueryResult(Collection<String> bindingNames, Collection<? extends BindingSet> bindingSets) Creates a query result table with the supplied binding names. The supplied list of binding names is assumed to be constant; care should be taken that the contents of this list doesn't change after supplying it to this solution.- Parameters:
bindingNames
- The binding names, in order of projection.
-
MutableTupleQueryResult
public MutableTupleQueryResult(Collection<String> bindingNames, Iteration<? extends BindingSet, E> bindingSetIter) throws E- Throws:
E extends Exception
-
MutableTupleQueryResult
- Throws:
QueryEvaluationException
-
-
Method Details
-
getBindingNames
Description copied from interface:TupleQueryResult
Gets the names of the bindings, in order of projection.- Specified by:
getBindingNames
in interfaceTupleQueryResult
- Returns:
- The binding names, in order of projection.
-
size
public int size() -
get
-
getIndex
public int getIndex() -
setIndex
public void setIndex(int index) -
hasNext
public boolean hasNext()Description copied from interface:Iteration
Returns true if the iteration has more elements. (In other words, returns true ifIteration.next()
would return an element rather than throwing a NoSuchElementException.)- Specified by:
hasNext
in interfaceIteration<BindingSet,
QueryEvaluationException> - Returns:
- true if the iteration has more elements.
-
next
Description copied from interface:Iteration
Returns the next element in the iteration.- Specified by:
next
in interfaceIteration<BindingSet,
QueryEvaluationException> - Returns:
- the next element in the iteration.
-
hasPrevious
public boolean hasPrevious() -
previous
-
beforeFirst
public void beforeFirst()Moves the cursor to the start of the query result, just before the first binding set. After calling this method, the result can be iterated over from scratch. -
afterLast
public void afterLast()Moves the cursor to the end of the query result, just after the last binding set. -
insert
Inserts the specified binding set into the list. The binding set is inserted immediately before the next element that would be returned bynext()
, if any, and after the next element that would be returned byprevious()
, if any. (If the table contains no binding sets, the new element becomes the sole element on the table.) The new element is inserted before the implicit cursor: a subsequent call to next() would be unaffected, and a subsequent call to previous() would return the new binding set.- Parameters:
bindingSet
- The binding set to insert.
-
insert
-
append
-
set
-
set
-
remove
public void remove()Description copied from interface:Iteration
Removes from the underlying collection the last element returned by the iteration (optional operation). This method can be called only once per call to next.- Specified by:
remove
in interfaceIteration<BindingSet,
QueryEvaluationException>
-
remove
-
clear
public void clear() -
close
public void close()Description copied from interface:CloseableIteration
Closes this iteration, freeing any resources that it is holding. If the iteration has already been closed then invoking this method has no effect.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseableIteration<BindingSet,
QueryEvaluationException>
-
clone
- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-