* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Xabbuh\XApi\Serializer\Symfony\Normalizer; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Xabbuh\XApi\Model\DocumentData; /** * Normalizes and denormalizes xAPI statement documents. * * @author Christian Flothmann */ final class DocumentDataNormalizer implements DenormalizerInterface, NormalizerInterface { /** * {@inheritdoc} */ public function normalize($object, $format = null, array $context = array()) { if (!$object instanceof DocumentData) { return null; } return $object->getData(); } /** * {@inheritdoc} */ public function supportsNormalization($data, $format = null) { return $data instanceof DocumentData; } /** * {@inheritdoc} */ public function denormalize($data, $class, $format = null, array $context = array()) { return new DocumentData($data); } /** * {@inheritdoc} */ public function supportsDenormalization($data, $type, $format = null) { return 'Xabbuh\XApi\Model\DocumentData' === $type; } }