/**
  * Specific data preprocessing
  *
  * @param object $question
  * @return object
  */
 protected function data_preprocessing($question)
 {
     $question = parent::data_preprocessing($question);
     // specific preprocessing
     if (!empty($question->options)) {
         $question->questiontext_locale_map = json_encode(qtype_omerocommon::serialize_to_json_from($question->questiontext["text"]));
         $question->generalfeedback_locale_map = json_encode(qtype_omerocommon::serialize_to_json_from($question->generalfeedback["text"]));
         $question->correctfeedback_locale_map = json_encode(qtype_omerocommon::serialize_to_json_from($question->options->correctfeedback));
         $question->incorrectfeedback_locale_map = json_encode(qtype_omerocommon::serialize_to_json_from($question->options->incorrectfeedback));
         $question->partiallycorrectfeedback_locale_map = json_encode(qtype_omerocommon::serialize_to_json_from($question->options->partiallycorrectfeedback));
         $question->questiontext["text"] = "";
         $question->generalfeedback["text"] = "";
     }
     return $question;
 }