public function mapToObject(array $objectData)
    {
        if ($objectData === []) {
            throw new Exception\InvalidObjectDataException('The array with object data was empty, probably object not found or access denied.', 1277974338);
        }

        if ($this->persistenceSession->hasIdentifier($objectData['identifier'])) {
            return $this->persistenceSession->getObjectByIdentifier($objectData['identifier']);
        } else {
            $className = $objectData['classname'];
            $classSchema = $this->reflectionService->getClassSchema($className);

            $object = unserialize('O:' . strlen($className) . ':"' . $className . '":0:{};');
            $this->persistenceSession->registerObject($object, $objectData['identifier']);
            if ($classSchema->getModelType() === ClassSchema::MODELTYPE_ENTITY) {
                $this->persistenceSession->registerReconstitutedEntity($object, $objectData);
            }
            if ($objectData['properties'] === []) {
                if (!$classSchema->isLazyLoadableObject()) {
                    throw new PersistenceException('The object of type "' . $className . '" is not marked as lazy loadable.', 1268309017);
                }
                $persistenceManager = $this->persistenceManager;
                $persistenceSession = $this->persistenceSession;
                $dataMapper = $this;
                $identifier = $objectData['identifier'];
                $modelType = $classSchema->getModelType();
                $object->Flow_Persistence_LazyLoadingObject_thawProperties = function ($object) use ($persistenceManager, $persistenceSession, $dataMapper, $identifier, $modelType) {
                    $objectData = $persistenceManager->getObjectDataByIdentifier($identifier);
                    $dataMapper->thawProperties($object, $identifier, $objectData);
                    if ($modelType === ClassSchema::MODELTYPE_ENTITY) {
                        $persistenceSession->registerReconstitutedEntity($object, $objectData);
                    }
                };
            } else {
                $this->thawProperties($object, $objectData['identifier'], $objectData);
            }

            return $object;
        }
    }
public function mapToObject(array $objectData)
    {
        if ($objectData === []) {
            throw new Exception\InvalidObjectDataException('The array with object data was empty, probably object not found or access denied.', 1277974338);
        }

        if ($this->persistenceSession->hasIdentifier($objectData['identifier'])) {
            return $this->persistenceSession->getObjectByIdentifier($objectData['identifier']);
        } else {
            $className = $objectData['classname'];
            $classSchema = $this->reflectionService->getClassSchema($className);

            $object = unserialize('O:' . strlen($className) . ':"' . $className . '":0:{};');
            $this->persistenceSession->registerObject($object, $objectData['identifier']);
            if ($classSchema->getModelType() === ClassSchema::MODELTYPE_ENTITY) {
                $this->persistenceSession->registerReconstitutedEntity($object, $objectData);
            }
            if ($objectData['properties'] === []) {
                if (!$classSchema->isLazyLoadableObject()) {
                    throw new PersistenceException('The object of type "' . $className . '" is not marked as lazy loadable.', 1268309017);
                }
                $persistenceManager = $this->persistenceManager;
                $persistenceSession = $this->persistenceSession;
                $dataMapper = $this;
                $identifier = $objectData['identifier'];
                $modelType = $classSchema->getModelType();
                $object->Flow_Persistence_LazyLoadingObject_thawProperties = function ($object) use ($persistenceManager, $persistenceSession, $dataMapper, $identifier, $modelType) {
                    $objectData = $persistenceManager->getObjectDataByIdentifier($identifier);
                    $dataMapper->thawProperties($object, $identifier, $objectData);
                    if ($modelType === ClassSchema::MODELTYPE_ENTITY) {
                        $persistenceSession->registerReconstitutedEntity($object, $objectData);
                    }
                };
            } else {
                $this->thawProperties($object, $objectData['identifier'], $objectData);
            }

            return $object;
        }
    }
public function mapToObject ( array $ objectData ) { if ( $ objectData === [ ] ) { throw new Exception \ InvalidObjectDataException ( 'The array with object data was empty, probably object not found or access denied.' , 1277974338 ) ; } if ( $ this -> persistenceSession -> hasIdentifier ( $ objectData [ 'identifier' ] ) ) { return $ this -> persistenceSession -> getObjectByIdentifier ( $ objectData [ 'identifier' ] ) ; } else { $ className = $ objectData [ 'classname' ] ; $ classSchema = $ this -> reflectionService -> getClassSchema ( $ className ) ; $ object = unserialize ( 'O:' . strlen ( $ className ) . ':"' . $ className . '":0:{};' ) ; $ this -> persistenceSession -> registerObject ( $ object , $ objectData [ 'identifier' ] ) ; if ( $ classSchema -> getModelType ( ) === ClassSchema :: MODELTYPE_ENTITY ) { $ this -> persistenceSession -> registerReconstitutedEntity ( $ object , $ objectData ) ; } if ( $ objectData [ 'properties' ] === [ ] ) { if ( ! $ classSchema -> isLazyLoadableObject ( ) ) { throw new PersistenceException ( 'The object of type "' . $ className . '" is not marked as lazy loadable.' , 1268309017 ) ; } $ persistenceManager = $ this -> persistenceManager ; $ persistenceSession = $ this -> persistenceSession ; $ dataMapper = $ this ; $ identifier = $ objectData [ 'identifier' ] ; $ modelType = $ classSchema -> getModelType ( ) ; $ object -> Flow_Persistence_LazyLoadingObject_thawProperties = function ( $ object ) use ( $ persistenceManager , $ persistenceSession , $ dataMapper , $ identifier , $ modelType ) { $ objectData = $ persistenceManager -> getObjectDataByIdentifier ( $ identifier ) ; $ dataMapper -> thawProperties ( $ object , $ identifier , $ objectData ) ; if ( $ modelType === ClassSchema :: MODELTYPE_ENTITY ) { $ persistenceSession -> registerReconstitutedEntity ( $ object , $ objectData ) ; } } ; } else { $ this -> thawProperties ( $ object , $ objectData [ 'identifier' ] , $ objectData ) ; } return $ object ; } }
Maps a single record into the object it represents and registers it as
reconstituted with the session.

@param array $objectData
@return object
@throws Exception\InvalidObjectDataException
@throws PersistenceException
Maps a single record into the object it represents and registers it as reconstituted with the session .