![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/jms/serializer/src/ |
<?php declare(strict_types=1); namespace JMS\Serializer; use JMS\Serializer\Exception\NonVisitableTypeException; use JMS\Serializer\Exception\RuntimeException; use JMS\Serializer\Metadata\ClassMetadata; use JMS\Serializer\Metadata\PropertyMetadata; use JMS\Serializer\Visitor\DeserializationVisitorInterface; use function is_float; use function is_int; use function is_string; final class JsonDeserializationStrictVisitor extends AbstractVisitor implements DeserializationVisitorInterface { /** @var JsonDeserializationVisitor */ private $wrappedDeserializationVisitor; public function __construct( int $options = 0, int $depth = 512 ) { $this->wrappedDeserializationVisitor = new JsonDeserializationVisitor($options, $depth); } public function setNavigator(GraphNavigatorInterface $navigator): void { parent::setNavigator($navigator); $this->wrappedDeserializationVisitor->setNavigator($navigator); } /** * {@inheritdoc} */ public function visitNull($data, array $type) { return null; } /** * {@inheritdoc} */ public function visitString($data, array $type): ?string { if (null === $data) { return null; } if (! is_string($data)) { throw NonVisitableTypeException::fromDataAndType($data, $type); } return $data; } /** * {@inheritdoc} */ public function visitBoolean($data, array $type): ?bool { if (null === $data) { return null; } if (! is_bool($data)) { throw NonVisitableTypeException::fromDataAndType($data, $type); } return $data; } /** * {@inheritdoc} */ public function visitInteger($data, array $type): ?int { if (null === $data) { return null; } if (! is_int($data)) { throw NonVisitableTypeException::fromDataAndType($data, $type); } return $data; } /** * {@inheritdoc} */ public function visitDouble($data, array $type): ?float { if (null === $data) { return null; } if (! is_float($data)) { throw NonVisitableTypeException::fromDataAndType($data, $type); } return $data; } /** * {@inheritdoc} */ public function visitArray($data, array $type): array { try { return $this->wrappedDeserializationVisitor->visitArray($data, $type); } catch (RuntimeException $e) { throw NonVisitableTypeException::fromDataAndType($data, $type, $e); } } /** * {@inheritdoc} */ public function visitDiscriminatorMapProperty($data, ClassMetadata $metadata): string { return $this->wrappedDeserializationVisitor->visitDiscriminatorMapProperty($data, $metadata); } /** * {@inheritdoc} */ public function startVisitingObject(ClassMetadata $metadata, object $object, array $type): void { $this->wrappedDeserializationVisitor->startVisitingObject($metadata, $object, $type); } /** * {@inheritdoc} */ public function visitProperty(PropertyMetadata $metadata, $data) { return $this->wrappedDeserializationVisitor->visitProperty($metadata, $data); } /** * {@inheritdoc} */ public function endVisitingObject(ClassMetadata $metadata, $data, array $type): object { return $this->wrappedDeserializationVisitor->endVisitingObject($metadata, $data, $type); } /** * {@inheritdoc} */ public function getResult($data) { return $this->wrappedDeserializationVisitor->getResult($data); } public function getCurrentObject(): ?object { return $this->wrappedDeserializationVisitor->getCurrentObject(); } /** * {@inheritdoc} */ public function prepare($data) { return $this->wrappedDeserializationVisitor->prepare($data); } }