final public MapRowsToRevivalData ( string $EntityType, array $ResultRows ) : |
||
$EntityType | string | The type of entity to revive as |
$ResultRows | array | The result row to ma |
return | The mapped revival data |
protected final function MapParentRowKeysToRelatedRevivalData(DomainDatabaseMap $DomainDatabaseMap, array $ParentRows, array $RelatedRows) { $ParentKeyRelatedRowMap = $this->ToOneRelation->MapParentKeysToRelatedRow($ParentRows, $RelatedRows); $RelatedRevivalDataArray = $DomainDatabaseMap->MapRowsToRevivalData($this->GetEntityType(), $ParentKeyRelatedRowMap); $MappedRelatedRevivalData = []; foreach ($ParentRows as $Key => $ParentRow) { $MappedRelatedRevivalData[$Key] = isset($RelatedRevivalDataArray[$Key]) ? $RelatedRevivalDataArray[$Key] : null; } return $MappedRelatedRevivalData; }
protected final function MapParentRowKeysToRelatedRevivalDataArray(DomainDatabaseMap $DomainDatabaseMap, array $ParentRows, array $RelatedRows) { $ParentKeyRelatedRowsMap = $this->ToManyRelation->MapParentKeysToRelatedRows($ParentRows, $RelatedRows); $RelatedRevivalData = $DomainDatabaseMap->MapRowsToRevivalData($this->GetEntityType(), $RelatedRows); $MappedRelatedRevivalData = []; foreach ($ParentRows as $Key => $ParentRow) { $MappedRelatedRevivalData[$Key] = array_intersect_key($RelatedRevivalData, $ParentKeyRelatedRowsMap[$Key]); } return $MappedRelatedRevivalData; }
public function Revive(DomainDatabaseMap $DomainDatabaseMap, array $ResultRowArray, array $RevivalDataArray) { $ParentKeyRelatedRevivalDataMap = null; if (!$this->WillJoinRows) { $ParentKeyRelatedRevivalDataMap = $DomainDatabaseMap->MapRowsToRevivalData($this->GetEntityType(), $ResultRowArray); } else { $RelatedRowArray = $this->LoadRelatedRows($DomainDatabaseMap, $ResultRowArray); $ParentKeyRelatedRevivalDataMap = $this->MapParentRowKeysToRelatedRevivalData($DomainDatabaseMap, $ResultRowArray, $RelatedRowArray); } foreach ($RevivalDataArray as $Key => $RevivalData) { $RevivalData[$this->Property] = $ParentKeyRelatedRevivalDataMap[$Key]; } }