Author: Elliot Levin (elliot@aanet.com.au)
 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];
     }
 }
Example #4
0
 /**
  * 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();
 }
Example #5
0
 /**
  * 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);
 }
Example #6
0
 public function __construct()
 {
     $this->OperatorMapper = new OperatorMapper();
     parent::__construct();
 }