/** * 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); }