/**
  * {@inheritDoc}
  */
 public function extract($object)
 {
     if (!$this->transformerManager->supports($object)) {
         throw new ExtractorNotSupportedException(sprintf('Can not extract data from object via class "%s" (Transformer).', get_class($object)));
     }
     $transformedObject = $this->transformerManager->transform($object);
     if (!$this->normalizerManager->supports($transformedObject)) {
         throw new ExtractorNotSupportedException(sprintf('Can not extract data from object via class "%s" (Normalizer).', get_class($transformedObject)));
     }
     $normalizedData = $this->normalizerManager->normalize($transformedObject);
     return $normalizedData;
 }
 /**
  * Transform object. Try create a object response via object in response.
  *
  * @param ActionViewEvent $event
  */
 public function transformObject(ActionViewEvent $event)
 {
     $data = $event->getData();
     if (is_array($data)) {
         $data = new \ArrayObject($data);
     }
     if ($this->normalizerManager->supports($data) && !$this->transformerManager->supports($data)) {
         $objectResponse = new ObjectResponse($data);
         $objectResponse->removeActionTransform();
         $response = $this->doTransformObjectResponse($objectResponse);
         $event->setResponse($response);
     }
     if ($this->transformerManager->supports($data)) {
         $objectResponse = new ObjectResponse($data);
         $response = $this->doTransformObjectResponse($objectResponse);
         $event->setResponse($response);
     }
 }