protected function add_response_declaration(ImsQtiWriter $item, $question)
 {
     $result = parent::add_response_declaration($item, $question);
     $correct_response = $result->add_correctResponse();
     $mapping = $result->add_mapping();
     foreach ($question->options->answers as $answer) {
         $identifier = $answer->answer;
         if ($is_correct = $answer->fraction == 1) {
             $correct_response->add_value($identifier);
         }
         $mapping->add_mapEntry($identifier, $answer->fraction * $question->defaultgrade);
     }
     return $result;
 }
 public function __construct($target_root)
 {
     parent::__construct($target_root);
 }
 protected function create_serializer($question)
 {
     return QuestionSerializer::factory($question, 'resources');
 }
 protected function add_modal_feedback(ImsQtiWriter $item, $question)
 {
     $result = parent::add_modal_feedback($item, $question);
     $this->add_overall_feedback($item, $question);
     return $result;
 }
 /**
  * Returns data to be serialized on top of the QTI format.
  * Made of the question's object minus fields that don't have a meaning in another system.
  *
  * Remove question's fields which don't have a meaning in another system.
  * For example question id, user id, etc
  *
  * @param object $question
  * @return object
  */
 protected function get_question_data($question)
 {
     $result = parent::get_question_data($question);
     return $result;
 }