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