Author: Elliot Levin (elliot@aanet.com.au)
Example #1
0
 /**
  * Adds a procedure to the execution queue. 
  * If AutoSave is enabled, the action will be commited.
  * 
  * @param Fluent\ProcedureBuilder $ProcedureBuilder The procedure to execute
  * @return void
  */
 public function ExecuteProcedure(Object\IProcedure $Procedure)
 {
     if ($Procedure->GetEntityType() !== $this->EntityType) {
         throw new Object\TypeMismatchException('The supplied procedure is of type %s, expecting: %s', $Procedure->GetEntityType(), $this->EntityType);
     }
     $this->ExecutionQueue[] = $Procedure;
     $this->AutoSave();
 }
Example #2
0
 /**
  * @access private
  * 
  * Maps a supplied object procedure to an equivalent relational procedure.
  * 
  * @param Object\IProcedure $ObjectProcedure The object procedure
  * @return Relational\Procedure The equivalent relational procedure
  */
 public final function MapProcedure(Object\IProcedure $ObjectProcedure)
 {
     $EntityRelationalMap = $this->VerifyEntityTypeIsMapped($ObjectProcedure->GetEntityType());
     $RelationalProcedure = new Relational\Procedure($EntityRelationalMap->GetMappedPersistTables(), $EntityRelationalMap->GetCriterion());
     $this->MapCriterion($EntityRelationalMap, $ObjectProcedure->GetCriterion(), $RelationalProcedure->GetCriterion());
     foreach ($this->MapExpressions($EntityRelationalMap, $ObjectProcedure->GetExpressions()) as $MappedExpression) {
         $RelationalProcedure->AddExpression($MappedExpression);
     }
     return $RelationalProcedure;
 }