Add check for every forecasting method

This commit is contained in:
Anton Romanov 2021-06-01 09:34:05 +04:00
parent 61b2a21e2d
commit d62ac3c956

View File

@ -35,8 +35,7 @@ public abstract class TimeSeriesMethod {
* строится модель. Количество точек может быть изменено: сокращено при сжатии ряда, увеличено при интерполяции. * строится модель. Количество точек может быть изменено: сокращено при сжатии ряда, увеличено при интерполяции.
* Метод является шаблонным, выполняет операции валидации исходного ряда и потом его моделирование * Метод является шаблонным, выполняет операции валидации исходного ряда и потом его моделирование
* *
* @return модель временного ряда * @throws ModelingException генерируется, если есть проблемы моделирования при задании параметров
* @throws TimeSeriesValidateException
*/ */
protected void makeModel() throws ModelingException { protected void makeModel() throws ModelingException {
validateTimeSeries(); validateTimeSeries();
@ -47,7 +46,7 @@ public abstract class TimeSeriesMethod {
* Возвращает модельное представление валидного временного ряда: для тех же точек времени что и в параметре timeSeries * Возвращает модельное представление валидного временного ряда: для тех же точек времени что и в параметре timeSeries
* строится модель. Количество точек может быть изменено: сокращено при сжатии ряда, увеличено при интерполяции. * строится модель. Количество точек может быть изменено: сокращено при сжатии ряда, увеличено при интерполяции.
* *
* @return * @return модельное представление временного ряда
*/ */
protected abstract TimeSeries getModelOfValidTimeSeries() throws ModelingException; protected abstract TimeSeries getModelOfValidTimeSeries() throws ModelingException;
@ -69,7 +68,7 @@ public abstract class TimeSeriesMethod {
* Выполняет построение прогноза для уже сгенерированных будущих точек временного ряда. * Выполняет построение прогноза для уже сгенерированных будущих точек временного ряда.
* *
* @param forecast Заготовка прогноза временного ряда с пустыми значениями * @param forecast Заготовка прогноза временного ряда с пустыми значениями
* @return * @return временной ряд прогноза
*/ */
protected abstract TimeSeries makeForecast(TimeSeries forecast) throws ModelingException; protected abstract TimeSeries makeForecast(TimeSeries forecast) throws ModelingException;
@ -129,6 +128,16 @@ public abstract class TimeSeriesMethod {
return model; return model;
} }
public boolean canMakeForecast(int countPoints) {
try {
validateTimeSeries();
validateForecastParams(countPoints);
} catch (ModelingException ex) {
return false;
}
return true;
}
@JsonIgnore @JsonIgnore
public abstract List<MethodParameter> getAvailableParameters(); public abstract List<MethodParameter> getAvailableParameters();