Revision created by MOE tool push_codebase.
[gae.git] / java / src / main / com / google / appengine / api / datastore / WrappedQueryResultCloudDatastoreV1.java
blobf5f0c27391d2afa607becdde2618b58bac0e5c4b
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;
13 /**
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) {
20 this.batch = batch;
23 @Override
24 public Cursor getEndCursor() {
25 if (!batch.getEndCursor().isEmpty()) {
26 return new Cursor(batch.getEndCursor());
28 return null;
31 @Override
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()));
38 } else {
39 for (EntityResult entityResult : batch.getEntityResultsList()) {
40 entityList.add(DataTypeTranslator.toEntity(entityResult.getEntity(), projections));
43 return entityList;
46 @Override
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()));
52 return cursors;
55 @Override
56 public Cursor getSkippedResultsCursor() {
57 return batch.getSkippedCursor().isEmpty() ? null : new Cursor(batch.getSkippedCursor());
60 @Override
61 public boolean hasMoreResults() {
62 return batch.getMoreResults() == MoreResultsType.NOT_FINISHED;
65 @Override
66 public int numSkippedResults() {
67 return batch.getSkippedResults();
70 @Override
71 public List<Index> getIndexInfo(Collection<Index> monitoredIndexBuffer) {
72 return ImmutableList.of();
75 QueryResultBatch getBatch() {
76 return batch;