1: <?php
 2: 
 3: namespace SellerLabs\Snagshout\Normalizer;
 4: 
 5: use Joli\Jane\Runtime\Reference;
 6: use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
 7: use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
 8: use Symfony\Component\Serializer\Normalizer\SerializerAwareNormalizer;
 9: class ImageNormalizer extends SerializerAwareNormalizer implements DenormalizerInterface, NormalizerInterface
10: {
11:     public function supportsDenormalization($data, $type, $format = null)
12:     {
13:         if ($type !== 'SellerLabs\\Snagshout\\Model\\Image') {
14:             return false;
15:         }
16:         return true;
17:     }
18:     public function supportsNormalization($data, $format = null)
19:     {
20:         if ($data instanceof \SellerLabs\Snagshout\Model\Image) {
21:             return true;
22:         }
23:         return false;
24:     }
25:     public function denormalize($data, $class, $format = null, array $context = array())
26:     {
27:         $object = new \SellerLabs\Snagshout\Model\Image();
28:         if (property_exists($data, 'url')) {
29:             $object->setUrl($data->{'url'});
30:         }
31:         if (property_exists($data, 'title')) {
32:             $object->setTitle($data->{'title'});
33:         }
34:         if (property_exists($data, 'type')) {
35:             $object->setType($data->{'type'});
36:         }
37:         if (property_exists($data, 'id')) {
38:             $object->setId($data->{'id'});
39:         }
40:         if (property_exists($data, 'sort')) {
41:             $object->setSort($data->{'sort'});
42:         }
43:         if (property_exists($data, 'featured')) {
44:             $object->setFeatured($data->{'featured'});
45:         }
46:         if (property_exists($data, 'metadata')) {
47:             $object->setMetadata($this->serializer->deserialize($data->{'metadata'}, 'SellerLabs\\Snagshout\\Model\\ImageMetadata', 'raw', $context));
48:         }
49:         return $object;
50:     }
51:     public function normalize($object, $format = null, array $context = array())
52:     {
53:         $data = new \stdClass();
54:         if (null !== $object->getUrl()) {
55:             $data->{'url'} = $object->getUrl();
56:         }
57:         if (null !== $object->getTitle()) {
58:             $data->{'title'} = $object->getTitle();
59:         }
60:         if (null !== $object->getType()) {
61:             $data->{'type'} = $object->getType();
62:         }
63:         if (null !== $object->getId()) {
64:             $data->{'id'} = $object->getId();
65:         }
66:         if (null !== $object->getSort()) {
67:             $data->{'sort'} = $object->getSort();
68:         }
69:         if (null !== $object->getFeatured()) {
70:             $data->{'featured'} = $object->getFeatured();
71:         }
72:         if (null !== $object->getMetadata()) {
73:             $data->{'metadata'} = $this->serializer->serialize($object->getMetadata(), 'raw', $context);
74:         }
75:         return $data;
76:     }
77: }