コード例 #1
0
ファイル: Mapper.php プロジェクト: aazon/sfm
 /**
  * @param SFM_Entity $eEntity
  * @throws SFM_Exception
  * @internal param array $simpleValues
  * @return string
  */
 public function saveEntity(SFM_Entity $eEntity)
 {
     if ($eEntity->isDummy()) {
         //Saving all fields, not only changed
         $simpleValues = $eEntity->getTuple();
         unset($simpleValues[$this->primaryKey]);
         $response = $this->dao->insertOne($this->member, $simpleValues);
         $id = $response[$this->primaryKey];
         //Storing entity in Identity Map for future reuse
         if ($this->useIdentityMap) {
             $this->storeEntityInIdentityMap($eEntity);
         }
     } elseif ($eEntity->isDeleted()) {
         $this->dao->deleteOne($this->member, array($this->primaryKey => $eEntity->getId()));
         $id = $eEntity->getId();
     } elseif ($eEntity->isDirty()) {
         //Updating only fields that are dirty
         $id = $this->dao->updateOne($this->member, $this->primaryKey, $eEntity->getId(), $eEntity->getDiff());
     } else {
         //Do nothing because entity has got id already and isn't dirty
         $id = $eEntity->getId();
     }
     return $id;
 }