package com.apollographql.apollo; import com.apollographql.apollo.api.Field; import com.apollographql.apollo.api.Operation; import com.apollographql.apollo.cache.normalized.CacheKey; import com.apollographql.apollo.cache.normalized.CacheKeyResolver; import java.util.Map; import javax.annotation.Nonnull; public class IdFieldCacheKeyResolver extends CacheKeyResolver { @Nonnull @Override public CacheKey fromFieldRecordSet(@Nonnull Field field, @Nonnull Map<String, Object> recordSet) { return formatCacheKey((String) recordSet.get("id")); } @Nonnull @Override public CacheKey fromFieldArguments(@Nonnull Field field, @Nonnull Operation.Variables variables) { return formatCacheKey((String) field.resolveArgument("id", variables)); } private CacheKey formatCacheKey(String id) { if (id == null || id.isEmpty()) { return CacheKey.NO_KEY; } else { return CacheKey.from(id); } } }