/**
         Constructor method
         @access public
         @throws Exception object
         @param object $database
         @return void
 */
 public function __construct(Database $database = null)
 {
     try {
         parent::__construct($database);
         $this->ApiDAO = new ApiDAO(parent::get_database());
     } catch (Exception $ex) {
         throw $ex;
     }
 }
 public function save(ValueObject $objVO)
 {
     try {
         parent::begin_transaction();
         if ($objVO->Id == null) {
             $returnId = self::create($objVO);
         } else {
             self::update($objVO);
             $returnId = $objVO->Id;
         }
         parent::commit();
         return $returnId;
     } catch (Exception $ex) {
         parent::rollback();
         throw $ex;
     }
 }