From d62ac3c956b98e20be37b08e6e431860bdf54cf0 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 1 Jun 2021 09:34:05 +0400 Subject: [PATCH] Add check for every forecasting method --- .../ru/ulstu/tsMethods/TimeSeriesMethod.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/ulstu/tsMethods/TimeSeriesMethod.java b/src/main/java/ru/ulstu/tsMethods/TimeSeriesMethod.java index 7a38b6e..974068d 100644 --- a/src/main/java/ru/ulstu/tsMethods/TimeSeriesMethod.java +++ b/src/main/java/ru/ulstu/tsMethods/TimeSeriesMethod.java @@ -35,8 +35,7 @@ public abstract class TimeSeriesMethod { * строится модель. Количество точек может быть изменено: сокращено при сжатии ряда, увеличено при интерполяции. * Метод является шаблонным, выполняет операции валидации исходного ряда и потом его моделирование * - * @return модель временного ряда - * @throws TimeSeriesValidateException + * @throws ModelingException генерируется, если есть проблемы моделирования при задании параметров */ protected void makeModel() throws ModelingException { validateTimeSeries(); @@ -47,7 +46,7 @@ public abstract class TimeSeriesMethod { * Возвращает модельное представление валидного временного ряда: для тех же точек времени что и в параметре timeSeries * строится модель. Количество точек может быть изменено: сокращено при сжатии ряда, увеличено при интерполяции. * - * @return + * @return модельное представление временного ряда */ protected abstract TimeSeries getModelOfValidTimeSeries() throws ModelingException; @@ -69,7 +68,7 @@ public abstract class TimeSeriesMethod { * Выполняет построение прогноза для уже сгенерированных будущих точек временного ряда. * * @param forecast Заготовка прогноза временного ряда с пустыми значениями - * @return + * @return временной ряд прогноза */ protected abstract TimeSeries makeForecast(TimeSeries forecast) throws ModelingException; @@ -129,6 +128,16 @@ public abstract class TimeSeriesMethod { return model; } + public boolean canMakeForecast(int countPoints) { + try { + validateTimeSeries(); + validateForecastParams(countPoints); + } catch (ModelingException ex) { + return false; + } + return true; + } + @JsonIgnore public abstract List getAvailableParameters();