/**
  * Builds a new instance of $objectType with the given $possibleConstructorArgumentValues.
  * If constructor argument values are missing from the given array the method looks for a
  * default value in the constructor signature.
  *
  * Furthermore, the constructor arguments are removed from $possibleConstructorArgumentValues
  *
  * @param array &$possibleConstructorArgumentValues
  * @param string $objectType
  * @return object The created instance
  * @throws \TYPO3\Flow\Property\Exception\InvalidTargetException if a required constructor argument is missing
  */
 protected function buildObject(array &$possibleConstructorArgumentValues, $objectType)
 {
     $className = $this->objectManager->getClassNameByObjectName($objectType) ?: static::$defaultNewAssetType;
     if (count($possibleConstructorArgumentValues)) {
         return parent::buildObject($possibleConstructorArgumentValues, $className);
     } else {
         return null;
     }
 }
 /**
  * All properties in the source array except __identity are sub-properties.
  *
  * @param mixed $source
  * @return array
  */
 public function getSourceChildPropertiesToBeConverted($source)
 {
     if (is_string($source)) {
         return array();
     }
     if (isset($source['__identity'])) {
         unset($source['__identity']);
     }
     return parent::getSourceChildPropertiesToBeConverted($source);
 }