package com.apollographql.apollo.internal.json; import com.apollographql.apollo.cache.normalized.CacheReference; import java.io.IOException; /** * A {@link ResponseJsonStreamReader} with additional support for {@link CacheReference}. */ public final class CacheJsonStreamReader extends ResponseJsonStreamReader { public CacheJsonStreamReader(JsonReader jsonReader) { super(jsonReader); } @Override protected Object readScalar(ResponseJsonStreamReader streamReader) throws IOException { Object scalar = super.readScalar(streamReader); if (scalar instanceof String) { String scalarString = (String) scalar; if (CacheReference.canDeserialize(scalarString)) { return CacheReference.deserialize(scalarString); } } return scalar; } }