Skip to content

Commit

Permalink
Introduce Query.returnType attribute
Browse files Browse the repository at this point in the history
This attribute will be used for aggregations and projections
  • Loading branch information
asereda-gs committed Jun 10, 2019
1 parent 0e5a292 commit 14592b8
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
Expand Up @@ -27,14 +27,14 @@
*/ */
public class InternalReader<T> implements Repository.Reader<T> { public class InternalReader<T> implements Repository.Reader<T> {


private final ImmutableQuery query; private final ImmutableQuery<T> query;
private final Backend backend; private final Backend backend;


public InternalReader(DocumentCriteria<T> criteria, Backend backend) { public InternalReader(DocumentCriteria<T> criteria, Class<T> returnType, Backend backend) {
this(ImmutableQuery.of(criteria), backend); this(ImmutableQuery.of(criteria, returnType), backend);
} }


private InternalReader(ImmutableQuery query, Backend backend) { private InternalReader(ImmutableQuery<T> query, Backend backend) {
this.query = Objects.requireNonNull(query, "query"); this.query = Objects.requireNonNull(query, "query");
this.backend = Objects.requireNonNull(backend, "backend"); this.backend = Objects.requireNonNull(backend, "backend");
} }
Expand Down
Expand Up @@ -28,10 +28,14 @@
public interface Query<T> extends Backend.Operation<T> { public interface Query<T> extends Backend.Operation<T> {


@Value.Parameter @Value.Parameter
DocumentCriteria<T> criteria(); DocumentCriteria<?> criteria();

@Value.Parameter
Class<T> returnType();


OptionalLong limit(); OptionalLong limit();


OptionalLong offset(); OptionalLong offset();



} }
Expand Up @@ -57,6 +57,8 @@ import java.util.Objects;
[/if] [/if]
[type.typeDocument.access] class [type.name]Repository implements Repository.Readable<[type.name]> { [type.typeDocument.access] class [type.name]Repository implements Repository.Readable<[type.name]> {


private static final Class<[type.name]> ENTITY_CLASS = [type.name].class;

private final Backend backend; private final Backend backend;


public [type.name]Repository(Backend backend) { public [type.name]Repository(Backend backend) {
Expand All @@ -65,7 +67,7 @@ import java.util.Objects;


@Override @Override
public Repository.Reader<[type.name]> find(DocumentCriteria<[type.name]> criteria) { public Repository.Reader<[type.name]> find(DocumentCriteria<[type.name]> criteria) {
return new InternalReader<>(criteria, backend); return new InternalReader<>(criteria, ENTITY_CLASS, backend);
} }


@Override @Override
Expand Down

0 comments on commit 14592b8

Please sign in to comment.