package tc.oc.api.model; import java.util.Collections; import javax.inject.Inject; import com.google.common.reflect.TypeToken; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import tc.oc.api.docs.virtual.Model; import tc.oc.api.docs.virtual.PartialModel; import tc.oc.api.message.types.FindMultiResponse; import tc.oc.api.message.types.FindRequest; import tc.oc.api.message.types.PartialModelUpdate; import tc.oc.api.message.types.UpdateMultiRequest; import tc.oc.api.message.types.UpdateMultiResponse; public class NullModelService<Complete extends Model, Partial extends PartialModel> implements ModelService<Complete, Partial> { @Inject private ModelMeta<Complete, Partial> meta; @Override public TypeToken<Complete> completeType() { return meta.completeType(); } @Override public TypeToken<Partial> partialType() { return meta.partialType(); } @Override public ListenableFuture<FindMultiResponse<Complete>> find(FindRequest<Complete> request) { return Futures.immediateFuture(Collections::emptyList); } @Override public ListenableFuture<Complete> update(String id, PartialModelUpdate<Partial> request) { return find(id); } @Override public ListenableFuture<UpdateMultiResponse> updateMulti(UpdateMultiRequest<? extends Partial> request) { return Futures.immediateFuture(UpdateMultiResponse.EMPTY); } }