Storm\Drivers\Base\Mapping\Mappings\SemiLazyCollectionPropertyToManyRelationMapping::Revive PHP Method

Revive() public method

public Revive ( DomainDatabaseMap $DomainDatabaseMap, array $ResultRowArray, array $RevivalDataArray )
$DomainDatabaseMap Storm\Core\Mapping\DomainDatabaseMap
$ResultRowArray array
$RevivalDataArray array
    public function Revive(DomainDatabaseMap $DomainDatabaseMap, array $ResultRowArray, array $RevivalDataArray)
    {
        $this->ParentRowArrays[] = $ResultRowArray;
        $RelatedRevivalDataArrayLoader = function ($ParentRowKey) use(&$DomainDatabaseMap, &$ResultRowArray) {
            static $ParentKeyRelatedRevivalDataArraysMap = null;
            if ($ParentKeyRelatedRevivalDataArraysMap === null) {
                $ParentKeyRelatedRevivalDataArraysMap = $this->LoadAllRelatedRows($DomainDatabaseMap, $ResultRowArray);
            }
            return $ParentKeyRelatedRevivalDataArraysMap[$ParentRowKey];
        };
        foreach ($RevivalDataArray as $Key => $RevivalData) {
            $Loader = function () use(&$RelatedRevivalDataArrayLoader, $Key) {
                return $RelatedRevivalDataArrayLoader($Key);
            };
            $RevivalData[$this->Property] = $this->MakeMultipleLazyRevivalData($DomainDatabaseMap, $ResultRowArray[$Key], $Loader);
        }
    }
SemiLazyCollectionPropertyToManyRelationMapping