public void write(@NotNull JsonWriter jsonWriter) throws IOException { checkNotNull(jsonWriter, "jsonWriter == null"); RealResponseWriter realResponseWriter = new RealResponseWriter(Operation.EMPTY_VARIABLES, scalarTypeAdapters); operationData.marshaller().marshal(realResponseWriter); jsonWriter.beginObject(); jsonWriter.name("data"); jsonWriter.beginObject(); try { realResponseWriter.resolveFields(new JsonResponseResolver(jsonWriter)); } catch (RuntimeException e) { if (e.getCause() instanceof IOException) { throw (IOException) e.getCause(); } else { throw e; } } jsonWriter.endObject(); jsonWriter.endObject(); }
@Override public Set<String> execute(WriteableStore cache) { CacheResponseWriter cacheResponseWriter = new CacheResponseWriter(operation.variables(), scalarTypeAdapters); operationData.marshaller().marshal(cacheResponseWriter); ResponseNormalizer<Map<String, Object>> responseNormalizer = networkResponseNormalizer(); responseNormalizer.willResolveRootQuery(operation); Collection<Record> records = cacheResponseWriter.normalize(responseNormalizer); if (optimistic) { List<Record> updatedRecords = new ArrayList<>(); for (Record record : records) { updatedRecords.add(record.toBuilder().mutationId(mutationId).build()); } return optimisticCache.mergeOptimisticUpdates(updatedRecords); } else { return optimisticCache.merge(records, CacheHeaders.NONE); } } });
@Override public Set<String> execute(WriteableStore cache) { CacheResponseWriter cacheResponseWriter = new CacheResponseWriter(operation.variables(), scalarTypeAdapters); operationData.marshaller().marshal(cacheResponseWriter); ResponseNormalizer<Map<String, Object>> responseNormalizer = networkResponseNormalizer(); responseNormalizer.willResolveRootQuery(operation); Collection<Record> records = cacheResponseWriter.normalize(responseNormalizer); if (optimistic) { List<Record> updatedRecords = new ArrayList<>(); for (Record record : records) { updatedRecords.add(record.toBuilder().mutationId(mutationId).build()); } return optimisticCache.mergeOptimisticUpdates(updatedRecords); } else { return optimisticCache.merge(records, CacheHeaders.NONE); } } });
@Override public Set<String> execute(WriteableStore cache) { RealResponseWriter responseWriter = new RealResponseWriter(operation.variables(), scalarTypeAdapters); operationData.marshaller().marshal(responseWriter); ResponseNormalizer<Map<String, Object>> responseNormalizer = networkResponseNormalizer(); responseNormalizer.willResolveRootQuery(operation); responseWriter.resolveFields(responseNormalizer); if (optimistic) { List<Record> updatedRecords = new ArrayList<>(); for (Record record : responseNormalizer.records()) { updatedRecords.add(record.toBuilder().mutationId(mutationId).build()); } return optimisticCache.mergeOptimisticUpdates(updatedRecords); } else { return optimisticCache.merge(responseNormalizer.records(), CacheHeaders.NONE); } } });