/**
  * @param Noovias_Cron_Data_CronExpression $data
  * @return string
  * @throws Exception
  */
 protected function calculateDayOfWeek(Noovias_Cron_Data_CronExpression $data)
 {
     $dayofweekoption = $data->getDayOfWeekOption();
     if ($dayofweekoption === Noovias_Cron_Data_CronExpression::OPTION_EVERY) {
         return '*';
     }
     if ($dayofweekoption === Noovias_Cron_Data_CronExpression::OPTION_SPECIFY) {
         if (!is_array($data->getSpecifyDayOfWeek())) {
             throw new Noovias_Cron_Exception_CouldNotGenerateCronExpression(self::GENERATION_EXCEPTION_MESSAGE);
         }
         return implode(',', $data->getSpecifyDayOfWeek());
     }
     if ($dayofweekoption === Noovias_Cron_Data_CronExpression::OPTION_FROMTO) {
         return $data->getFromDayOfWeek() . '-' . $data->getToDayOfWeek();
     }
     // Throw exception if there was no return yet
     throw new Noovias_Cron_Exception_CouldNotGenerateCronExpression(self::GENERATION_EXCEPTION_MESSAGE);
 }
 /**
  * @param string $cronDayOfWeek
  * @param Noovias_Cron_Data_CronExpression $data
  */
 protected function convertDayOfWeek($cronDayOfWeek, Noovias_Cron_Data_CronExpression &$data)
 {
     if (strpos($cronDayOfWeek, ',') !== false) {
         $data->setDayOfWeekOption(Noovias_Cron_Data_CronExpression::OPTION_SPECIFY);
         $data->setSpecifyDayOfWeek(explode(',', $cronDayOfWeek));
     } elseif (strpos($cronDayOfWeek, '-') !== false) {
         $data->setDayOfWeekOption(Noovias_Cron_Data_CronExpression::OPTION_FROMTO);
         preg_match('#(\\w+)-(\\w+)#', $cronDayOfWeek, $pockets);
         if (array_key_exists(1, $pockets) && array_key_exists(2, $pockets)) {
             $data->setFromDayOfWeek($pockets[1]);
             $data->setToDayOfWeek($pockets[2]);
         } else {
             throw new Exception('From or to day of week parameter wrong.');
         }
     } elseif ($cronDayOfWeek === '*') {
         $data->setDayOfWeekOption(Noovias_Cron_Data_CronExpression::OPTION_EVERY);
     } else {
         $data->setDayOfWeekOption(Noovias_Cron_Data_CronExpression::OPTION_SPECIFY);
         $data->setSpecifyDayOfWeek(array($cronDayOfWeek));
     }
 }