manager->fetchStoredObject($object); } catch (AssociatedStoredObjectNotFound) { $storedObject = null; } $data = [ 'type' => 'doc_store_generic_doc', 'key' => $object->key, 'uniqueKey' => $object->key.implode('', array_keys($object->identifiers)).implode('', array_values($object->identifiers)), 'identifiers' => $object->identifiers, 'context' => $object->getContext(), 'doc_date' => $this->normalizer->normalize($object->docDate, $format, $context), 'metadata' => [], 'storedObject' => $this->normalizer->normalize($storedObject, $format, $context), ]; if ($this->manager->isGenericDocNormalizable($object, $format, $context)) { $data['metadata'] = $this->manager->normalizeGenericDoc($object, $format, $context); } return $data; } public function supportsNormalization($data, ?string $format = null): bool { return 'json' === $format && $data instanceof GenericDocDTO; } }