/** * @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; }