/**
  * Performs an UPDATE for the given ModelObject through our DAO.
  * ModifiedDate is updated, and the validator is run.
  *
  * Validation Errors will throw a ValidationException
  *
  * @param ModelObject $obj The ModelObject to edit
  *
  * @return mixed See the edit() method of our DAO
  */
 public function edit(ModelObject $obj)
 {
     if (!$obj->hasModifiedDate()) {
         $obj->ModifiedDate = $this->DateFactory->newStorageDate();
     }
     $this->validator->validateFor(__FUNCTION__, $obj)->throwOnError();
     return $this->dao->edit($obj);
 }