@SuppressWarnings("unchecked") static <V> StructuredQuery<V> fromPb( ResultType<?> resultType, String namespace, com.google.datastore.v1.Query queryPb) { BuilderImpl<?, ?> builder; if (resultType.equals(ResultType.ENTITY)) { builder = new EntityQuery.Builder(); } else if (resultType.equals(ResultType.KEY)) { builder = new KeyQuery.Builder(); } else { builder = new ProjectionEntityQuery.Builder(); } return (StructuredQuery<V>) builder.setNamespace(namespace).mergeFrom(queryPb).build(); } }
/** * Returns a new {@link StructuredQuery} builder for key only queries. * * <p>Example of creating and running a key query. * * <pre>{@code * String kind = "my_kind"; * Query<Key> query = Query.newKeyQueryBuilder().setKind(kind).build(); * QueryResults<Key> results = datastore.run(query); * // Use results * }</pre> */ public static KeyQuery.Builder newKeyQueryBuilder() { return new KeyQuery.Builder(); }
@Override public Builder toBuilder() { return new Builder(this); } }
/** * Returns a new {@link StructuredQuery} builder for key only queries. * * <p>Example of creating and running a key query. * * <pre>{@code * String kind = "my_kind"; * Query<Key> query = Query.newKeyQueryBuilder().setKind(kind).build(); * QueryResults<Key> results = datastore.run(query); * // Use results * }</pre> */ public static KeyQuery.Builder newKeyQueryBuilder() { return new KeyQuery.Builder(); }
@SuppressWarnings("unchecked") static <V> StructuredQuery<V> fromPb( ResultType<?> resultType, String namespace, com.google.datastore.v1.Query queryPb) { BuilderImpl<?, ?> builder; if (resultType.equals(ResultType.ENTITY)) { builder = new EntityQuery.Builder(); } else if (resultType.equals(ResultType.KEY)) { builder = new KeyQuery.Builder(); } else { builder = new ProjectionEntityQuery.Builder(); } return (StructuredQuery<V>) builder.setNamespace(namespace).mergeFrom(queryPb).build(); } }
@Override public Builder toBuilder() { return new Builder(this); } }
@Test public void mergeFrom() { compareMergedQuery( ENTITY_QUERY, new EntityQuery.Builder().mergeFrom(ENTITY_QUERY.toPb()).build()); compareMergedQuery(KEY_QUERY, new KeyQuery.Builder().mergeFrom(KEY_QUERY.toPb()).build()); compareMergedQuery( PROJECTION_QUERY, new ProjectionEntityQuery.Builder().mergeFrom(PROJECTION_QUERY.toPb()).build()); }