package tc.oc.api.queue;
import javax.inject.Inject;
import com.google.common.reflect.TypeToken;
import com.google.common.util.concurrent.ListenableFuture;
import tc.oc.api.docs.virtual.Model;
import tc.oc.api.message.types.FindMultiResponse;
import tc.oc.api.message.types.FindRequest;
import tc.oc.api.model.ModelMeta;
import tc.oc.api.model.QueryService;
public class QueueQueryService<Complete extends Model> implements QueryService<Complete> {
@Inject protected ModelMeta<Complete, ?> meta;
@Inject private Transaction.Factory transactionFactory;
@Override
public TypeToken<Complete> completeType() {
return meta.completeType();
}
@Override
public ListenableFuture<FindMultiResponse<Complete>> find(FindRequest<Complete> request) {
return transactionFactory.request(request, meta.multiResponseType());
}
}