/**
  * Save review form element.
  */
 function execute()
 {
     $reviewFormElementDao =& DAORegistry::getDAO('ReviewFormElementDAO');
     if ($this->reviewFormElementId != null) {
         $reviewFormElement =& $reviewFormElementDao->getReviewFormElement($this->reviewFormElementId);
     }
     if (!isset($reviewFormElement)) {
         $reviewFormElement = new ReviewFormElement();
         $reviewFormElement->setReviewFormId($this->reviewFormId);
         $reviewFormElement->setSequence(REALLY_BIG_NUMBER);
     }
     $reviewFormElement->setQuestion($this->getData('question'), null);
     // Localized
     $reviewFormElement->setRequired($this->getData('required') ? 1 : 0);
     $reviewFormElement->setIncluded($this->getData('included') ? 1 : 0);
     $reviewFormElement->setElementType($this->getData('elementType'));
     if (in_array($this->getData('elementType'), ReviewFormElement::getMultipleResponsesElementTypes())) {
         $reviewFormElement->setPossibleResponses($this->getData('possibleResponses'), null);
         // Localized
     } else {
         $reviewFormElement->setPossibleResponses(null, null);
     }
     if ($reviewFormElement->getId() != null) {
         $reviewFormElementDao->deleteSetting($reviewFormElement->getId(), 'possibleResponses');
         $reviewFormElementDao->updateObject($reviewFormElement);
         $this->reviewFormElementId = $reviewFormElement->getId();
     } else {
         $this->reviewFormElementId = $reviewFormElementDao->insertObject($reviewFormElement);
         $reviewFormElementDao->resequenceReviewFormElements($this->reviewFormId);
     }
 }