Package org.eclipse.rdf4j.repository
Class RepositoryResult<T>
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<T,RepositoryException>
org.eclipse.rdf4j.repository.RepositoryResult<T>
- All Implemented Interfaces:
AutoCloseable
,Iterable<T>
,CloseableIteration<T,
,RepositoryException> Iteration<T,
RepositoryException>
public class RepositoryResult<T>
extends AbstractCloseableIteration<T,RepositoryException>
implements Iterable<T>
A RepositoryResult is a result collection of objects (for example
Statement
,
Namespace
, or Resource
objects) that can be iterated
over. It keeps an open connection to the backend for lazy retrieval of individual results. Additionally it has some
utility methods to fetch all results and add them to a collection.
By default, a RepositoryResult is not necessarily a (mathematical) set: it may contain duplicate objects. Duplicate
filtering can be switched on
, but this should not be used lightly as the filtering
mechanism is potentially memory-intensive.
A RepositoryResult needs to be closed
after use to free up any resources (open connections, read
locks, etc.) it has on the underlying repository.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription<C extends Collection<T>>
CaddTo
(C collection) Deprecated.asList()
Deprecated.UseIterations.asList(Iteration)
instead.void
Switches on duplicate filtering while iterating over objects.protected void
Called byAbstractCloseableIteration.close()
when it is called for the first time.boolean
hasNext()
Returns true if the iteration has more elements.iterator()
next()
Returns the next element in the iteration.void
remove()
Removes from the underlying collection the last element returned by the iteration (optional operation).Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosed
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
RepositoryResult
-
-
Method Details
-
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<T,
RepositoryException> - Returns:
- true if the iteration has more elements.
- Throws:
RepositoryException
-
next
Description copied from interface:Iteration
Returns the next element in the iteration.- Specified by:
next
in interfaceIteration<T,
RepositoryException> - Returns:
- the next element in the iteration.
- Throws:
RepositoryException
-
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<T,
RepositoryException> - Throws:
RepositoryException
-
handleClose
Description copied from class:AbstractCloseableIteration
Called byAbstractCloseableIteration.close()
when it is called for the first time. This method is only called once on each iteration. By default, this method does nothing.- Overrides:
handleClose
in classAbstractCloseableIteration<T,
RepositoryException> - Throws:
RepositoryException
-
enableDuplicateFilter
Switches on duplicate filtering while iterating over objects. The RepositoryResult will keep track of the previously returned objects in aSet
and on calling next() or hasNext() will ignore any objects that already occur in this Set.Caution: use of this filtering mechanism is potentially memory-intensive.
- Throws:
RepositoryException
- if a problem occurred during initialization of the filter.
-
asList
Deprecated.UseIterations.asList(Iteration)
instead.Returns aList
containing all objects of this RepositoryResult in order of iteration. The RepositoryResult is fully consumed and automatically closed by this operation.Note: use this method with caution! It pulls the entire RepositoryResult in memory and as such is potentially very memory-intensive.
- Returns:
- a List containing all objects of this RepositoryResult.
- Throws:
RepositoryException
- if a problem occurred during retrieval of the results.- See Also:
-
addTo
Deprecated.UseIterations.addAll(Iteration, Collection)
instead.Adds all objects of this RepositoryResult to the supplied collection. The RepositoryResult is fully consumed and automatically closed by this operation.- Returns:
- A reference to the collection that was supplied.
- Throws:
RepositoryException
- if a problem occurred during retrieval of the results.
-
iterator
-
Iterations.addAll(Iteration, Collection)
instead.