/**
  * Initializes the data from the incoming info.
  * @param array $info       incoming data.
  * @param bool  $attached   Indicates whether the object was attached successfully.
  * @param EE_Message $message
  * @return array
  */
 protected function _init_data($info, $attached, $message)
 {
     $data = array('test_send' => false, 'preview' => false, 'data_handler_class_name' => '', 'data' => array('MSG_generation_data' => array()));
     if (isset($info['preview'])) {
         $data['preview'] = $info['preview'];
         unset($info['preview']);
     }
     if (isset($info['test_send'])) {
         $data['test_send'] = $info['test_send'];
         unset($info['test_send']);
     }
     if (isset($info['data_handler_class_name'])) {
         $data['data_handler_class_name'] = $info['data_handler_class_name'];
         unset($info['data_handler_class_name']);
     }
     if ($attached && $message->STS_ID() === EEM_Message::status_incomplete) {
         $generation_data = isset($info['MSG_generation_data']) ? $info['MSG_generation_data'] : array();
         //if data isn't in $info...let's see if its available via the message object
         $generation_data = !$generation_data ? $message->get_generation_data() : $generation_data;
         //still empty then let's just use info
         $generation_data = !$generation_data ? $info : $generation_data;
         $data['data']['MSG_generation_data'] = $generation_data;
     }
     return $data;
 }
 /**
  * This sets any necessary error messages on the message object and its status to failed.
  * @param EE_Message $message
  * @param array      $error_messages the response from the messenger.
  */
 protected function _set_error_message(EE_Message $message, $error_messages)
 {
     $error_messages = (array) $error_messages;
     if (in_array($message->STS_ID(), EEM_Message::instance()->stati_indicating_failed_sending())) {
         $notices = EE_Error::has_notices();
         $error_messages[] = __('Messenger and Message Type were valid and active, but the messenger send method failed.', 'event_espresso');
         if ($notices === 1) {
             $notices = EE_Error::get_vanilla_notices();
             $notices['errors'] = isset($notices['errors']) ? $notices['errors'] : array();
             $error_messages[] = implode("\n", $notices['errors']);
         }
     }
     if (count($error_messages) > 0) {
         $msg = __('Message was not executed successfully.', 'event_espresso');
         $msg = $msg . "\n" . implode("\n", $error_messages);
         $message->set_error_message($msg);
     }
 }