Skip to content

Commit bf41329

Browse files
committed
Allow to run structured queries on any objects, not just entities
1 parent 8c7f8c7 commit bf41329

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

datastore/src/main/java/io/spine/server/storage/datastore/DatastoreWrapper.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,11 @@ public Entity read(Key key) {
267267
* @param query
268268
* {@link Query} to execute upon the Datastore
269269
* @param <E>
270-
* the type of queried entities
270+
* the type of queried objects
271271
* @return results fo the query as a lazily evaluated {@link Iterator}
272272
* @see DatastoreReader#run(Query)
273273
*/
274-
public <E extends BaseEntity<Key>> DsQueryIterator<E> read(StructuredQuery<E> query) {
274+
public <E> DsQueryIterator<E> read(StructuredQuery<E> query) {
275275
Namespace namespace = currentNamespace();
276276
StructuredQuery<E> queryWithNamespace =
277277
query.toBuilder()
@@ -295,12 +295,12 @@ public <E extends BaseEntity<Key>> DsQueryIterator<E> read(StructuredQuery<E> qu
295295
* @param pageSize
296296
* a non-zero number of elements to be returned per a single read from Datastore
297297
* @param <E>
298-
* the type of queried entities
298+
* the type of queried objects
299299
* @return results fo the query as a lazily evaluated {@link Iterator}
300300
* @throws IllegalArgumentException
301301
* if the provided {@linkplain StructuredQuery#getLimit() query includes a limit}
302302
*/
303-
<E extends BaseEntity<Key>> Iterator<E> readAll(StructuredQuery<E> query, int pageSize) {
303+
<E> Iterator<E> readAll(StructuredQuery<E> query, int pageSize) {
304304
return readAllPageByPage(query, pageSize);
305305
}
306306

@@ -316,12 +316,12 @@ <E extends BaseEntity<Key>> Iterator<E> readAll(StructuredQuery<E> query, int pa
316316
* @param query
317317
* {@link Query} to execute upon the Datastore
318318
* @param <E>
319-
* the type of queried entities
319+
* the type of queried objects
320320
* @return results fo the query as a lazily evaluated {@link Iterator}
321321
* @throws IllegalArgumentException
322322
* if the provided {@linkplain StructuredQuery#getLimit() query includes a limit}
323323
*/
324-
<E extends BaseEntity<Key>> Iterator<E> readAll(StructuredQuery<E> query) {
324+
<E> Iterator<E> readAll(StructuredQuery<E> query) {
325325
return readAllPageByPage(query, null);
326326
}
327327

@@ -340,14 +340,14 @@ <E extends BaseEntity<Key>> Iterator<E> readAll(StructuredQuery<E> query) {
340340
* a non-zero number of elements to be returned per a single read from Datastore;
341341
* if {@code null} the page size will be dictated by the Datastore
342342
* @param <E>
343-
* the type of queried entities
343+
* the type of queried objects
344344
* @return results fo the query as a lazily evaluated {@link Iterator}
345345
* @throws IllegalArgumentException
346346
* if the provided {@linkplain StructuredQuery#getLimit() query includes a limit} or
347347
* the provided {@code batchSize} is 0
348348
*/
349349
@SuppressWarnings("unchecked") // Checked logically.
350-
private <E extends BaseEntity<Key>> Iterator<E>
350+
private <E> Iterator<E>
351351
readAllPageByPage(StructuredQuery<E> query, @Nullable Integer pageSize) {
352352
checkArgument(query.getLimit() == null,
353353
"Cannot limit a number of entities for \"read all\" operation.");
@@ -360,7 +360,7 @@ <E extends BaseEntity<Key>> Iterator<E> readAll(StructuredQuery<E> query) {
360360
.iterator();
361361
}
362362

363-
private static <E extends BaseEntity<Key>> StructuredQuery<E>
363+
private static <E> StructuredQuery<E>
364364
limit(StructuredQuery<E> query, @Nullable Integer batchSize) {
365365
return batchSize == null
366366
? query

datastore/src/main/java/io/spine/server/storage/datastore/DsQueryIterator.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@
2020

2121
package io.spine.server.storage.datastore;
2222

23-
import com.google.cloud.datastore.BaseEntity;
2423
import com.google.cloud.datastore.Cursor;
2524
import com.google.cloud.datastore.DatastoreReaderWriter;
26-
import com.google.cloud.datastore.Key;
2725
import com.google.cloud.datastore.QueryResults;
2826
import com.google.cloud.datastore.StructuredQuery;
2927
import com.google.common.collect.UnmodifiableIterator;
@@ -47,9 +45,9 @@
4745
* <p>The {@link #remove() remove()} method throws an {@link UnsupportedOperationException}.
4846
*
4947
* @param <E>
50-
* the type of queried entities
48+
* the type of queried objects
5149
*/
52-
final class DsQueryIterator<E extends BaseEntity<Key>> extends UnmodifiableIterator<E> {
50+
final class DsQueryIterator<E> extends UnmodifiableIterator<E> {
5351

5452
private final StructuredQuery<E> query;
5553
private final QueryResults<E> currentPage;

datastore/src/main/java/io/spine/server/storage/datastore/DsQueryPageIterator.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121
package io.spine.server.storage.datastore;
2222

23-
import com.google.cloud.datastore.BaseEntity;
24-
import com.google.cloud.datastore.Key;
2523
import com.google.cloud.datastore.StructuredQuery;
2624
import org.checkerframework.checker.nullness.qual.Nullable;
2725

@@ -42,9 +40,9 @@
4240
* query restrictions.
4341
*
4442
* @param <E>
45-
* the type of queried entities
43+
* the type of queried objects
4644
*/
47-
final class DsQueryPageIterator<E extends BaseEntity<Key>> implements Iterator<DsQueryIterator> {
45+
final class DsQueryPageIterator<E> implements Iterator<DsQueryIterator> {
4846

4947
private final DatastoreWrapper datastore;
5048

0 commit comments

Comments
 (0)