@@ -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