public final class ResultSet extends Object implements Iterable<Result>
ResultSet
is returned from the submission of a Gremlin script to the server and represents the
results provided by the server. The results from the server are streamed into the ResultSet
and
therefore may not be available immediately. As such, ResultSet
provides access to a a number
of functions that help to work with the asynchronous nature of the data streaming back. Data from results
is stored in an Result
which can be used to retrieve the item once it is on the client side.
Note that a ResultSet
is a forward-only stream only so depending on how the methods are called and
interacted with, it is possible to return partial bits of the total response (e.g. calling one()
followed
by all()
will make it so that the List
of results returned from all()
have one
Result
missing from the total set as it was already retrieved by one()
.
This class is not thread-safe.Constructor and Description |
---|
ResultSet(org.apache.tinkerpop.gremlin.driver.ResultQueue resultQueue,
ExecutorService executor,
CompletableFuture<Void> readCompleted,
org.apache.tinkerpop.gremlin.driver.message.RequestMessage originalRequestMessage,
Host host) |
Modifier and Type | Method and Description |
---|---|
CompletableFuture<List<Result>> |
all()
The returned
CompletableFuture completes when all reads are complete for this request and the
entire result has been accounted for on the client. |
boolean |
allItemsAvailable()
Determines if all items have been returned to the client.
|
CompletableFuture<Void> |
allItemsAvailableAsync()
Returns a future that will complete when all items have been returned from the server.
|
int |
getAvailableItemCount()
Gets the number of items available on the client.
|
Host |
getHost() |
org.apache.tinkerpop.gremlin.driver.message.RequestMessage |
getOriginalRequestMessage() |
Iterator<Result> |
iterator()
Returns a blocking iterator of the items streaming from the server to the client.
|
Result |
one()
Get the next
Result from the stream, blocking until one is available. |
CompletableFuture<List<Result>> |
some(int items)
The returned
CompletableFuture completes when the number of items specified are available. |
CompletableFuture<Map<String,Object>> |
statusAttributes()
Returns a future that will complete when
allItemsAvailable() is true and will contain the
attributes from the response. |
Stream<Result> |
stream()
Stream items with a blocking iterator.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public ResultSet(org.apache.tinkerpop.gremlin.driver.ResultQueue resultQueue, ExecutorService executor, CompletableFuture<Void> readCompleted, org.apache.tinkerpop.gremlin.driver.message.RequestMessage originalRequestMessage, Host host)
public org.apache.tinkerpop.gremlin.driver.message.RequestMessage getOriginalRequestMessage()
public Host getHost()
public CompletableFuture<Map<String,Object>> statusAttributes()
allItemsAvailable()
is true
and will contain the
attributes from the response.public boolean allItemsAvailable()
public CompletableFuture<Void> allItemsAvailableAsync()
public int getAvailableItemCount()
public CompletableFuture<List<Result>> some(int items)
CompletableFuture
completes when the number of items specified are available. The
number returned will be equal to or less than that number. They will only be less if the stream is
completed and there are less than that number specified available.public CompletableFuture<List<Result>> all()
CompletableFuture
completes when all reads are complete for this request and the
entire result has been accounted for on the client. While this method is named "all" it really refers to
retrieving all remaining items in the set. For large result sets it is preferred to use
Iterator
or Stream
options, as the results will be held in memory at once.public Iterator<Result> iterator()
Iterator
will
consume results as they arrive and leaving the ResultSet
empty when complete.
The returned Iterator
does not support the Iterator.remove()
method.Copyright © 2013–2018 Apache Software Foundation. All rights reserved.