protected final function MakeLazyRevivalData(DomainDatabaseMap $DomainDatabaseMap, Relational\ResultRow $ParentData, callable $RevivalDataLoader) { $RelatedData = $DomainDatabaseMap->GetEntityRelationalMap($this->GetEntityType())->ResultRow(); $this->ToOneRelation->MapRelationalParentDataToRelatedData($ParentData, $RelatedData); $AlreadyKnownRelatedRevivalData = $DomainDatabaseMap->MapResultRowDataToRevivalData($this->GetEntityType(), $RelatedData); return new LazyRevivalData($AlreadyKnownRelatedRevivalData, $RevivalDataLoader); }
protected final function MapEntityToRelationalRequest(DomainDatabaseMap $DomainDatabaseMap, Relational\Request $RelationalRequest, Object\RevivalData $AlreadyKnownRevivalData = null) { if ($AlreadyKnownRevivalData !== null) { $AlreadyKnownPropertyIdentifiers = array_keys($AlreadyKnownRevivalData->GetPropertyData()); $AlreadyKnownProperties = $AlreadyKnownRevivalData->GetProperties($AlreadyKnownPropertyIdentifiers); $DomainDatabaseMap->MapEntityToRelationalRequest($this->EntityType, $RelationalRequest, $AlreadyKnownProperties); } else { $DomainDatabaseMap->MapEntityToRelationalRequest($this->EntityType, $RelationalRequest); } }
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]; } }
/** * Commits all specified changes to the underlying DomainDatabaseMap. * * @return void */ public function SaveChanges() { if (count($this->PersistedQueue) === 0 && count($this->ExecutionQueue) === 0 && count($this->DiscardedQueue) === 0 && count($this->DiscardedCriterionQueue) === 0) { return; } $this->DomainDatabaseMap->Commit($this->PersistedQueue, $this->ExecutionQueue, $this->DiscardedQueue, $this->DiscardedCriterionQueue); $this->ClearChanges(); }
/** * Saves all the changes from the repositories * instantiated by this storm. * * @return void */ public final function SaveChanges() { $PersistedQueues = []; $ExecutionQueues = []; $DiscardedQueues = []; $DiscardedCriterionQueues = []; foreach ($this->Repositories as $Repository) { list($PersistedQueue, $ExecutionQueue, $DiscardedQueue, $DiscardedCriterionQueue) = $Repository->GetChanges(); $PersistedQueues[] = $PersistedQueue; $ExecutionQueues[] = $ExecutionQueue; $DiscardedQueues[] = $DiscardedQueue; $DiscardedCriterionQueues[] = $DiscardedCriterionQueue; $Repository->ClearChanges(); } $PersistedQueue = call_user_func_array('array_merge', $PersistedQueues); $ExecutionQueue = call_user_func_array('array_merge', $ExecutionQueues); $DiscardedQueue = call_user_func_array('array_merge', $DiscardedQueues); $DiscardedCriterionQueue = call_user_func_array('array_merge', $DiscardedCriterionQueues); $this->DomainDatabaseMap->Commit($PersistedQueue, $ExecutionQueue, $DiscardedQueue, $DiscardedCriterionQueue); }
public function __construct() { $this->OperatorMapper = new OperatorMapper(); parent::__construct(); }