Skip to content

Commit ea679dd

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 ea679dd

File tree

2 files changed

+20
-23
lines changed

2 files changed

+20
-23
lines changed

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 & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -669,19 +669,6 @@ 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
}
@@ -858,8 +845,19 @@ protected void populatePb(com.google.datastore.v1beta3.RunQueryRequest.Builder r
858845
}
859846

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

865863
@Override
@@ -907,7 +905,9 @@ protected Object fromPb(ResultType<V> resultType, String namespace, byte[] bytes
907905
return fromPb(resultType, namespace, com.google.datastore.v1beta3.Query.parseFrom(bytesPb));
908906
}
909907

910-
private static StructuredQuery<?> fromPb(ResultType<?> resultType, String namespace,
908+
@SuppressWarnings("unchecked")
909+
static <V> StructuredQuery<V> fromPb(
910+
ResultType<?> resultType, String namespace,
911911
com.google.datastore.v1beta3.Query queryPb) {
912912
BaseBuilder<?, ?> builder;
913913
if (resultType.equals(ResultType.ENTITY)) {
@@ -917,6 +917,6 @@ private static StructuredQuery<?> fromPb(ResultType<?> resultType, String namesp
917917
} else {
918918
builder = new ProjectionEntityQueryBuilder();
919919
}
920-
return builder.namespace(namespace).mergeFrom(queryPb).build();
920+
return (StructuredQuery<V>) builder.namespace(namespace).mergeFrom(queryPb).build();
921921
}
922922
}

0 commit comments

Comments
 (0)