package com.apollographql.apollo.internal.cache.normalized;
import com.apollographql.apollo.api.GraphqlFragment;
import com.apollographql.apollo.api.Operation;
import com.apollographql.apollo.api.Response;
import com.apollographql.apollo.api.ResponseFieldMapper;
import com.apollographql.apollo.cache.CacheHeaders;
import com.apollographql.apollo.cache.normalized.ApolloStore;
import com.apollographql.apollo.cache.normalized.CacheKey;
import com.apollographql.apollo.cache.normalized.CacheKeyResolver;
import com.apollographql.apollo.cache.normalized.NormalizedCache;
import com.apollographql.apollo.cache.normalized.Record;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* An alternative to {@link RealApolloStore} for when a no-operation cache
* is needed.
*/
public final class NoOpApolloStore implements ApolloStore, ReadableStore, WriteableStore {
@Override public Set<String> merge(@Nonnull Collection<Record> recordCollection, @Nonnull CacheHeaders cacheHeaders) {
return Collections.emptySet();
}
@Nullable @Override public Record read(@Nonnull String key, @Nonnull CacheHeaders cacheHeaders) {
return null;
}
@Override public Collection<Record> read(@Nonnull Collection<String> keys, @Nonnull CacheHeaders cacheHeaders) {
return Collections.emptySet();
}
@Override public void subscribe(RecordChangeSubscriber subscriber) {
}
@Override public void unsubscribe(RecordChangeSubscriber subscriber) {
}
@Override public void publish(Set<String> keys) {
}
@Override public void clearAll() {
}
@Override public ResponseNormalizer<Map<String, Object>> networkResponseNormalizer() {
//noinspection unchecked
return ResponseNormalizer.NO_OP_NORMALIZER;
}
@Override public ResponseNormalizer<Record> cacheResponseNormalizer() {
//noinspection unchecked
return ResponseNormalizer.NO_OP_NORMALIZER;
}
@Override public <R> R readTransaction(Transaction<ReadableStore, R> transaction) {
return transaction.execute(this);
}
@Override public <R> R writeTransaction(Transaction<WriteableStore, R> transaction) {
return transaction.execute(this);
}
@Override public NormalizedCache normalizedCache() {
return null;
}
@Override public CacheKeyResolver cacheKeyResolver() {
return null;
}
@Nullable @Override public <D extends Operation.Data, T, V extends Operation.Variables> T read(
@Nonnull Operation<D, T, V> operation) {
return null;
}
@Nonnull @Override public <D extends Operation.Data, T, V extends Operation.Variables> Response<T> read(
@Nonnull Operation<D, T, V> operation, @Nonnull ResponseFieldMapper<D> responseFieldMapper,
@Nonnull ResponseNormalizer<Record> responseNormalizer, @Nonnull CacheHeaders cacheHeaders) {
return new Response<T>(operation);
}
@Nullable @Override public <F extends GraphqlFragment> F read(@Nonnull ResponseFieldMapper<F> fieldMapper,
@Nonnull CacheKey cacheKey, @Nonnull Operation.Variables variables) {
return null;
}
}