/**
  * Actually convert from $source to $targetType, taking into account the fully
  * built $convertedChildProperties and $configuration.
  *
  * @param mixed $source
  * @param string $targetType
  * @param array $convertedChildProperties
  * @param \TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface $configuration
  * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage
  * @api
  */
 public function convertFrom($source, $targetType, array $convertedChildProperties = array(), \TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface $configuration = NULL)
 {
     $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
     foreach ($convertedChildProperties as $subPropertyKey => $subProperty) {
         $objectStorage->attach($subProperty);
         $this->objectStorageMappingService->mapSplObjectHashToSourceKey(spl_object_hash($subProperty), $subPropertyKey);
     }
     return $objectStorage;
 }
 /**
  * Get the name of this form element, without prefix.
  *
  * @return string name
  */
 protected function getNameWithoutPrefix()
 {
     $formObjectName = $this->viewHelperVariableContainer->get('TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', 'formObjectName');
     if (!empty($formObjectName)) {
         $formObjectPath = str_replace(']', '', str_replace('[', '.', $formObjectName));
         $propertySegments = explode('.', $this->arguments['for']);
         $propertyPath = '';
         foreach ($propertySegments as $segment) {
             $propertyPath .= '.' . $segment;
         }
         $name = $formObjectPath . $propertyPath;
     } else {
         $name = $this->arguments['for'];
     }
     $nameArr = explode('.', $name);
     foreach ($nameArr as $i => $segment) {
         $nameArr[$i] = $this->objectStorageMappingService->getSplObjectHashForSourceKey($segment);
     }
     return implode('.', $nameArr);
 }