Skip to content

Commit 6ffe927

Browse files
author
Ajay Kannan
committed
remove changes to structured query's builder and instead use fromPb in GqlQuery's nextQuery
1 parent b270c64 commit 6ffe927

2 files changed

Lines changed: 20 additions & 24 deletions

File tree

gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/GqlQuery.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -379,12 +379,9 @@ protected void populatePb(com.google.datastore.v1beta3.RunQueryRequest.Builder r
379379
}
380380

381381
@Override
382-
protected StructuredQuery<V> nextQuery(com.google.datastore.v1beta3.RunQueryResponse responsePb) {
383-
return new StructuredQuery.Builder<>(type())
384-
.namespace(namespace())
385-
.mergeFrom(responsePb.getQuery())
386-
.prepareNext(responsePb.getBatch())
387-
.build();
382+
protected Query<V> nextQuery(com.google.datastore.v1beta3.RunQueryResponse responsePb) {
383+
return StructuredQuery.<V>fromPb(type(), namespace(), responsePb.getQuery())
384+
.nextQuery(responsePb);
388385
}
389386

390387
@Override

gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/StructuredQuery.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -669,23 +669,9 @@ B mergeFrom(com.google.datastore.v1beta3.Query queryPb) {
669669
return self();
670670
}
671671

672-
B prepareNext(com.google.datastore.v1beta3.QueryResultBatch queryResultBatchPb) {
673-
startCursor(new Cursor(queryResultBatchPb.getEndCursor()));
674-
if (offset > 0 && queryResultBatchPb.getSkippedResults() < offset) {
675-
offset(offset - queryResultBatchPb.getSkippedResults());
676-
} else {
677-
offset(0);
678-
if (limit != null) {
679-
limit(limit - queryResultBatchPb.getEntityResultsCount());
680-
}
681-
}
682-
return self();
683-
}
684-
685672
public StructuredQuery<V> build() {
686673
return new StructuredQuery<>(this);
687674
}
688-
689675
}
690676

691677
static final class Builder<V> extends BaseBuilder<V, Builder<V>> {
@@ -858,8 +844,19 @@ protected void populatePb(com.google.datastore.v1beta3.RunQueryRequest.Builder r
858844
}
859845

860846
@Override
861-
protected StructuredQuery<V> nextQuery(com.google.datastore.v1beta3.RunQueryResponse responsePb) {
862-
return new Builder<>(type()).mergeFrom(toPb()).prepareNext(responsePb.getBatch()).build();
847+
protected Query<V> nextQuery(com.google.datastore.v1beta3.RunQueryResponse responsePb) {
848+
Builder<V> builder = new Builder<>(type());
849+
builder.mergeFrom(toPb());
850+
builder.startCursor(new Cursor(responsePb.getBatch().getEndCursor()));
851+
if (offset > 0 && responsePb.getBatch().getSkippedResults() < offset) {
852+
builder.offset(offset - responsePb.getBatch().getSkippedResults());
853+
} else {
854+
builder.offset(0);
855+
if (limit != null) {
856+
builder.limit(limit - responsePb.getBatch().getEntityResultsCount());
857+
}
858+
}
859+
return builder.build();
863860
}
864861

865862
@Override
@@ -907,7 +904,9 @@ protected Object fromPb(ResultType<V> resultType, String namespace, byte[] bytes
907904
return fromPb(resultType, namespace, com.google.datastore.v1beta3.Query.parseFrom(bytesPb));
908905
}
909906

910-
private static StructuredQuery<?> fromPb(ResultType<?> resultType, String namespace,
907+
@SuppressWarnings("unchecked")
908+
static <V> StructuredQuery<V> fromPb(
909+
ResultType<?> resultType, String namespace,
911910
com.google.datastore.v1beta3.Query queryPb) {
912911
BaseBuilder<?, ?> builder;
913912
if (resultType.equals(ResultType.ENTITY)) {
@@ -917,6 +916,6 @@ private static StructuredQuery<?> fromPb(ResultType<?> resultType, String namesp
917916
} else {
918917
builder = new ProjectionEntityQueryBuilder();
919918
}
920-
return builder.namespace(namespace).mergeFrom(queryPb).build();
919+
return (StructuredQuery<V>) builder.namespace(namespace).mergeFrom(queryPb).build();
921920
}
922921
}

0 commit comments

Comments
 (0)