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 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<MethodParameter> getAvailableParameters();