|  1:  | <?php | 
|  2:  |  | 
|  3:  | declare(strict_types=1); | 
|  4:  |  | 
|  5:  |  | 
|  6:  |  | 
|  7:  |  | 
|  8:  |  | 
|  9:  |  | 
| 10:  |  | 
| 11:  | namespace NxSys\Library\Clients\Brex\API\Payments\Normalizer; | 
| 12:  |  | 
| 13:  | use Jane\Component\JsonSchemaRuntime\Reference; | 
| 14:  | use NxSys\Library\Clients\Brex\API\Payments\Runtime\Normalizer\CheckArray; | 
| 15:  | use NxSys\Library\Clients\Brex\API\Payments\Runtime\Normalizer\ValidatorTrait; | 
| 16:  | use Symfony\Component\Serializer\Normalizer\DenormalizerAwareInterface; | 
| 17:  | use Symfony\Component\Serializer\Normalizer\DenormalizerAwareTrait; | 
| 18:  | use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; | 
| 19:  | use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface; | 
| 20:  | use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait; | 
| 21:  | use Symfony\Component\Serializer\Normalizer\NormalizerInterface; | 
| 22:  |  | 
| 23:  | class RecipientNormalizer implements DenormalizerInterface, NormalizerInterface, DenormalizerAwareInterface, NormalizerAwareInterface | 
| 24:  | { | 
| 25:  |     use DenormalizerAwareTrait; | 
| 26:  |     use NormalizerAwareTrait; | 
| 27:  |     use CheckArray; | 
| 28:  |     use ValidatorTrait; | 
| 29:  |  | 
| 30:  |     public function supportsDenormalization($data, $type, $format = null): bool | 
| 31:  |     { | 
| 32:  |         return $type === 'NxSys\\Library\\Clients\\Brex\\API\\Payments\\Model\\Recipient'; | 
| 33:  |     } | 
| 34:  |  | 
| 35:  |     public function supportsNormalization($data, $format = null): bool | 
| 36:  |     { | 
| 37:  |         return is_object($data) && get_class($data) === 'NxSys\\Library\\Clients\\Brex\\API\\Payments\\Model\\Recipient'; | 
| 38:  |     } | 
| 39:  |  | 
| 40:  |      | 
| 41:  |  | 
| 42:  |  | 
| 43:  |     public function denormalize($data, $class, $format = null, array $context = []) | 
| 44:  |     { | 
| 45:  |         if (isset($data['$ref'])) { | 
| 46:  |             return new Reference($data['$ref'], $context['document-origin']); | 
| 47:  |         } | 
| 48:  |         if (isset($data['$recursiveRef'])) { | 
| 49:  |             return new Reference($data['$recursiveRef'], $context['document-origin']); | 
| 50:  |         } | 
| 51:  |         $object = new \NxSys\Library\Clients\Brex\API\Payments\Model\Recipient(); | 
| 52:  |         if (null === $data || false === \is_array($data)) { | 
| 53:  |             return $object; | 
| 54:  |         } | 
| 55:  |         if (\array_key_exists('type', $data)) { | 
| 56:  |             $object->setType($data['type']); | 
| 57:  |             unset($data['type']); | 
| 58:  |         } | 
| 59:  |         if (\array_key_exists('id', $data)) { | 
| 60:  |             $object->setId($data['id']); | 
| 61:  |             unset($data['id']); | 
| 62:  |         } | 
| 63:  |         foreach ($data as $key => $value) { | 
| 64:  |             if (preg_match('/.*/', (string) $key)) { | 
| 65:  |                 $object[$key] = $value; | 
| 66:  |             } | 
| 67:  |         } | 
| 68:  |  | 
| 69:  |         return $object; | 
| 70:  |     } | 
| 71:  |  | 
| 72:  |      | 
| 73:  |  | 
| 74:  |  | 
| 75:  |     public function normalize($object, $format = null, array $context = []) | 
| 76:  |     { | 
| 77:  |         $data = []; | 
| 78:  |         $data['type'] = $object->getType(); | 
| 79:  |         $data['id'] = $object->getId(); | 
| 80:  |         foreach ($object as $key => $value) { | 
| 81:  |             if (preg_match('/.*/', (string) $key)) { | 
| 82:  |                 $data[$key] = $value; | 
| 83:  |             } | 
| 84:  |         } | 
| 85:  |  | 
| 86:  |         return $data; | 
| 87:  |     } | 
| 88:  | } | 
| 89:  |  |