/** * Delete the given trend and all associated scalars. * * @param Tracker_TrendDao $trendDao trend DAO * @param null|ProgressDao $progressDao progress DAO */ public function delete($trendDao, $progressDao = null) { /** @var Tracker_ScalarModel $scalarModel */ $scalarModel = MidasLoader::loadModel('Scalar', $this->moduleName); /** @var Tracker_ThresholdNotificationModel $notificationModel */ $notificationModel = MidasLoader::loadModel('ThresholdNotification', $this->moduleName); if (!is_null($progressDao)) { /** @var ProgressModel $progressModel */ $progressModel = MidasLoader::loadModel('Progress'); $progressDao->setMessage('Counting scalar points...'); $progressModel->save($progressDao); } $scalarDaos = $trendDao->getScalars(); $scalarIndex = 0; if (!is_null($progressDao)) { $progressDao->setMaximum(count($scalarDaos)); /** @noinspection PhpUndefinedVariableInspection */ $progressModel->save($progressDao); } /** @var Tracker_ScalarDao $scalarDao */ foreach ($scalarDaos as $scalarDao) { if (!is_null($progressDao)) { ++$scalarIndex; $message = 'Deleting scalars: ' . $scalarIndex . ' of ' . $progressDao->getMaximum(); /** @noinspection PhpUndefinedVariableInspection */ $progressModel->updateProgress($progressDao, $scalarIndex, $message); } $scalarModel->delete($scalarDao); } $notificationModel->deleteByTrend($trendDao); parent::delete($trendDao); }