<?php namespace Symfony\Component\Serializer\Context\Normalizer; use Symfony\Component\PropertyAccess\Exception\InvalidPropertyPathException; use Symfony\Component\PropertyAccess\PropertyPath; use Symfony\Component\Serializer\Context\ContextBuilderInterface; use Symfony\Component\Serializer\Context\ContextBuilderTrait; use Symfony\Component\Serializer\Exception\InvalidArgumentException; use Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer; final class UnwrappingDenormalizerContextBuilder implements ContextBuilderInterface { use ContextBuilderTrait; public function withUnwrapPath(?string $unwrapPath): static { if (null === $unwrapPath) { return $this->with(UnwrappingDenormalizer::UNWRAP_PATH, null); } try { new PropertyPath($unwrapPath); } catch (InvalidPropertyPathException $e) { throw new InvalidArgumentException(\sprintf('The "%s" property path is not valid.', $unwrapPath), previous: $e); } return $this->with(UnwrappingDenormalizer::UNWRAP_PATH, $unwrapPath); } }