/**
  * @param array $source
  * @param boolean $enableSideLoading
  * @return string
  */
 public function serialize(array $source, $enableSideLoading = TRUE)
 {
     $data = array();
     foreach ($source as $variableName => $valueToRender) {
         if (class_exists($variableName)) {
             $variableName = EmberDataUtility::uncamelizeClassName($variableName);
         }
         $data[$variableName] = $this->transformValue($valueToRender, isset($this->configuration[$variableName]) ? $this->configuration[$variableName] : array(), FALSE, $enableSideLoading);
     }
     if (!empty($this->objectsToSideload)) {
         foreach ($this->objectsToSideload as $objectType => $objectUuids) {
             if (empty($objectUuids)) {
                 continue;
             }
             if (!isset($data[$objectType])) {
                 $data[$objectType] = array();
             }
             foreach ($objectUuids as $objectUuid) {
                 $object = $this->persistenceManager->getObjectByIdentifier($objectUuid, EmberDataUtility::camelizeClassName($objectType));
                 $data[$objectType][] = $this->transformValue($object, isset($this->configuration[$objectType]) ? $this->configuration[$objectType] : array(), FALSE, FALSE);
             }
         }
     }
     foreach ($data as $objectType => $sideLoadedCollection) {
         foreach ($sideLoadedCollection as $objectIndex => $sideLoadedObject) {
             if (isset($sideLoadedObject['links'])) {
                 foreach ($sideLoadedObject['links'] as $propertyName => $links) {
                     $data[$objectType][$objectIndex]['links'][$propertyName] = $this->getUrl($propertyName) . implode(',', $links);
                 }
             }
         }
     }
     return json_encode((object) $data);
 }
 /**
  * @param string $value
  * @return boolean
  */
 protected function matchValue($value)
 {
     if ($value === NULL || $value === '') {
         return FALSE;
     }
     $className = EmberDataUtility::camelizeClassName($value);
     if ($this->objectManager->isRegistered($className)) {
         $this->setName('modelName');
         $this->value = $className;
         return TRUE;
     }
     return FALSE;
 }