1 package com
.google
.appengine
.api
.datastore
;
3 import com
.google
.appengine
.api
.datastore
.BaseQueryResultsSource
.WrappedQueryResult
;
4 import com
.google
.common
.collect
.ImmutableList
;
5 import com
.google
.common
.collect
.Lists
;
6 import com
.google
.datastore
.v1beta3
.EntityResult
;
7 import com
.google
.datastore
.v1beta3
.QueryResultBatch
;
8 import com
.google
.datastore
.v1beta3
.QueryResultBatch
.MoreResultsType
;
10 import java
.util
.Collection
;
11 import java
.util
.List
;
14 * An implementation of {@link WrappedQueryResult} in terms of Cloud Datastore v1.
16 class WrappedQueryResultCloudDatastoreV1
implements WrappedQueryResult
{
17 private final QueryResultBatch batch
;
19 WrappedQueryResultCloudDatastoreV1(QueryResultBatch batch
) {
24 public Cursor
getEndCursor() {
25 if (!batch
.getEndCursor().isEmpty()) {
26 return new Cursor(batch
.getEndCursor());
32 public List
<Entity
> getEntities(Collection
<Projection
> projections
) {
33 List
<Entity
> entityList
= Lists
.newArrayListWithCapacity(batch
.getEntityResultsCount());
34 if (projections
.isEmpty()) {
35 for (EntityResult entityResult
: batch
.getEntityResultsList()) {
36 entityList
.add(DataTypeTranslator
.toEntity(entityResult
.getEntity()));
39 for (EntityResult entityResult
: batch
.getEntityResultsList()) {
40 entityList
.add(DataTypeTranslator
.toEntity(entityResult
.getEntity(), projections
));
47 public List
<Cursor
> getResultCursors() {
48 List
<Cursor
> cursors
= Lists
.newArrayListWithCapacity(batch
.getEntityResultsCount());
49 for (EntityResult result
: batch
.getEntityResultsList()) {
50 cursors
.add(result
.getCursor().isEmpty() ?
null : new Cursor(result
.getCursor()));
56 public Cursor
getSkippedResultsCursor() {
57 return batch
.getSkippedCursor().isEmpty() ?
null : new Cursor(batch
.getSkippedCursor());
61 public boolean hasMoreResults() {
62 return batch
.getMoreResults() == MoreResultsType
.NOT_FINISHED
;
66 public int numSkippedResults() {
67 return batch
.getSkippedResults();
71 public List
<Index
> getIndexInfo(Collection
<Index
> monitoredIndexBuffer
) {
72 return ImmutableList
.of();
75 QueryResultBatch
getBatch() {