Storm\Core\Mapping\DomainDatabaseMap::MapEntityDataToTransaction PHP Method

MapEntityDataToTransaction() private method

private MapEntityDataToTransaction ( UnitOfWork $UnitOfWork, Transaction $Transaction, Storm\Core\Mapping\IEntityRelationalMap $EntityRelationalMap, array $EntityDataArray ) : Storm\Core\Relational\ResultRows[]
$UnitOfWork Storm\Core\Object\UnitOfWork
$Transaction Storm\Core\Relational\Transaction
$EntityRelationalMap Storm\Core\Mapping\IEntityRelationalMap
$EntityDataArray array
return Storm\Core\Relational\ResultRows[]
    private function MapEntityDataToTransaction(Object\UnitOfWork $UnitOfWork, Relational\Transaction $Transaction, IEntityRelationalMap $EntityRelationalMap, array $EntityDataArray)
    {
        $DataPropertyColumnMappings = $EntityRelationalMap->GetDataPropertyColumnMappings();
        $EntityPropertyToOneRelationMappings = $EntityRelationalMap->GetEntityPropertyToOneRelationMappings();
        $CollectionPropertyToManyRelationMappings = $EntityRelationalMap->GetCollectionPropertyToManyRelationMappings();
        $ResultRowArray = [];
        foreach ($EntityDataArray as $Key => $EntityData) {
            $ResultRowArray[$Key] = $EntityRelationalMap->ResultRow();
        }
        foreach ($DataPropertyColumnMappings as $DataPropertyColumnMapping) {
            $DataPropertyColumnMapping->Persist($EntityDataArray, $ResultRowArray);
        }
        foreach ($EntityDataArray as $Key => $EntityData) {
            $ResultRow = $ResultRowArray[$Key];
            foreach ($EntityPropertyToOneRelationMappings as $EntityPropertyToOneRelationMapping) {
                $RelationshipChange = $EntityData[$EntityPropertyToOneRelationMapping->GetProperty()];
                $MappedRelationshipChange = $this->MapRelationshipChanges($UnitOfWork, $Transaction, $EntityRelationalMap, [$RelationshipChange])[0];
                $EntityPropertyToOneRelationMapping->Persist($Transaction, $ResultRow, $MappedRelationshipChange);
            }
            foreach ($CollectionPropertyToManyRelationMappings as $CollectionPropertyToManyRelationMapping) {
                $RelationshipChanges = $EntityData[$CollectionPropertyToManyRelationMapping->GetProperty()];
                $MappedRelationshipChanges = $this->MapRelationshipChanges($UnitOfWork, $Transaction, $EntityRelationalMap, $RelationshipChanges);
                $CollectionPropertyToManyRelationMapping->Persist($Transaction, $ResultRow, $MappedRelationshipChanges);
            }
        }
        return $ResultRowArray;
    }