Map<String, String> expectedMap = Collections.singletonMap(expectedMapKey, expectedMapValue); recordBuilder.addField("bigDecimal", expectedBigDecimal); recordBuilder.addField("string", expectedStringValue); recordBuilder.addField("boolean", expectedBooleanValue); recordBuilder.addField("cacheReference", expectedCacheReference); recordBuilder.addField("scalarList", expectedScalarList); recordBuilder.addField("referenceList", expectedCacheReferenceList); recordBuilder.addField("nullValue", null); recordBuilder.addField("listOfScalarList", expectedListOfScalarList); recordBuilder.addField("map", expectedMap); Record record = recordBuilder.build();
public static Builder builder(@NotNull String key) { return new Builder(checkNotNull(key, "key == null"), new LinkedHashMap<String, Object>(), null); }
@Override public void didResolve(ResponseField field, Operation.Variables variables) { path.remove(path.size() - 1); Object value = valueStack.pop(); String cacheKey = cacheKeyBuilder().build(field, variables); String dependentKey = currentRecordBuilder.key() + "." + cacheKey; dependentKeys.add(dependentKey); currentRecordBuilder.addField(cacheKey, value); if (recordStack.isEmpty()) { recordSet.merge(currentRecordBuilder.build()); } }
@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); } } });
public Builder toBuilder() { return new Builder(key(), this.fields, mutationId); }
public static Builder builder(@Nonnull String key) { return new Builder(checkNotNull(key, "key == null"), new LinkedHashMap<String, Object>(), null); }
@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); } } });
public static Builder builder(@Nonnull String key) { return new Builder(checkNotNull(key, "key == null"), new LinkedHashMap<String, Object>(), null); }
public Record clone() { return toBuilder().build(); }
@Override public void willResolveObject(ResponseField field, Optional<R> objectSource) { pathStack.push(path); CacheKey cacheKey = objectSource.isPresent() ? resolveCacheKey(field, objectSource.get()) : CacheKey.NO_KEY; String cacheKeyValue = cacheKey.key(); if (cacheKey == CacheKey.NO_KEY) { cacheKeyValue = pathToString(); } else { path = new ArrayList<>(); path.add(cacheKeyValue); } recordStack.push(currentRecordBuilder.build()); currentRecordBuilder = Record.builder(cacheKeyValue); }
@Override public void didResolveObject(ResponseField field, Optional<R> objectSource) { path = pathStack.pop(); if (objectSource.isPresent()) { Record completedRecord = currentRecordBuilder.build(); valueStack.push(new CacheReference(completedRecord.key())); dependentKeys.add(completedRecord.key()); recordSet.merge(completedRecord); } currentRecordBuilder = recordStack.pop().toBuilder(); }
public Record clone() { return toBuilder().build(); }
public Builder toBuilder() { return new Builder(key(), this.fields, mutationId); }
@Override public void didResolveObject(ResponseField field, Optional<R> objectSource) { path = pathStack.pop(); if (objectSource.isPresent()) { Record completedRecord = currentRecordBuilder.build(); valueStack.push(new CacheReference(completedRecord.key())); dependentKeys.add(completedRecord.key()); recordSet.merge(completedRecord); } currentRecordBuilder = recordStack.pop().toBuilder(); }
@Override public void didResolve(ResponseField field, Operation.Variables variables) { path.remove(path.size() - 1); Object value = valueStack.pop(); String cacheKey = field.cacheKey(variables); String dependentKey = currentRecordBuilder.key() + "." + cacheKey; dependentKeys.add(dependentKey); currentRecordBuilder.addField(cacheKey, value); if (recordStack.isEmpty()) { recordSet.merge(currentRecordBuilder.build()); } }
@Override public void didResolve(ResponseField field, Operation.Variables variables) { path.remove(path.size() - 1); Object value = valueStack.pop(); String cacheKey = field.cacheKey(variables); String dependentKey = currentRecordBuilder.key() + "." + cacheKey; dependentKeys.add(dependentKey); currentRecordBuilder.addField(cacheKey, value); if (recordStack.isEmpty()) { recordSet.merge(currentRecordBuilder.build()); } }
@Override public void willResolveObject(ResponseField field, Optional<R> objectSource) { pathStack.push(path); CacheKey cacheKey = objectSource.isPresent() ? resolveCacheKey(field, objectSource.get()) : CacheKey.NO_KEY; String cacheKeyValue = cacheKey.key(); if (cacheKey == CacheKey.NO_KEY) { cacheKeyValue = pathToString(); } else { path = new ArrayList<>(); path.add(cacheKeyValue); } recordStack.push(currentRecordBuilder.build()); currentRecordBuilder = Record.builder(cacheKeyValue); }
@Nonnull @Override public List<Record> apply(@Nonnull Collection<Record> records) { final List<Record> result = new ArrayList<>(records.size()); for (Record record : records) { result.add(record.toBuilder().mutationId(request.uniqueId).build()); } return result; } }
@Nonnull @Override public List<Record> apply(@Nonnull Collection<Record> records) { final List<Record> result = new ArrayList<>(records.size()); for (Record record : records) { result.add(record.toBuilder().mutationId(request.uniqueId).build()); } return result; } }