fallbackNormalizer = $normalizer; } /** * {@inheritdoc} */ public function normalize($data, $format = NULL, array $context = []): array|string|int|float|bool|\ArrayObject|NULL { if ($this->selfSupportsNormalization($data, $format, $context)) { return parent::normalize($data, $format, $context); } if ($this->fallbackNormalizer->supportsNormalization($data, $format, $context)) { return $this->fallbackNormalizer->normalize($data, $format, $context); } return parent::normalize($data, $format, $context); } /** * {@inheritdoc} */ public function denormalize($data, $type, $format = NULL, array $context = []): mixed { if ($this->selfSupportsDenormalization($data, $type, $format, $context)) { return parent::denormalize($data, $type, $format, $context); } return $this->fallbackNormalizer->denormalize($data, $type, $format, $context); } /** * {@inheritdoc} */ public function supportsNormalization($data, ?string $format = NULL, array $context = []): bool { return $this->selfSupportsNormalization($data, $format, $context) || $this->fallbackNormalizer->supportsNormalization($data, $format, $context); } /** * Checks whether this class alone supports normalization. * * @param mixed $data * Data to normalize. * @param string $format * The format being (de-)serialized from or into. * @param array $context * (optional) Options available to the normalizer. * * @return bool * Whether this class supports normalization for the given data. */ private function selfSupportsNormalization($data, $format = NULL, array $context = []) { return parent::supportsNormalization($data, $format, $context); } /** * {@inheritdoc} */ public function supportsDenormalization($data, string $type, ?string $format = NULL, array $context = []): bool { return $this->selfSupportsDenormalization($data, $type, $format, $context) || $this->fallbackNormalizer->supportsDenormalization($data, $type, $format, $context); } /** * Checks whether this class alone supports denormalization. * * @param mixed $data * Data to denormalize from. * @param string $type * The class to which the data should be denormalized. * @param string $format * The format being deserialized from. * @param array $context * (optional) Options available to the denormalizer. * * @return bool * Whether this class supports normalization for the given data and type. */ private function selfSupportsDenormalization($data, $type, $format = NULL, array $context = []) { return parent::supportsDenormalization($data, $type, $format, $context); } }