#' @title Shape Forecaster #' #' @description Generic class to represent a shape forecaster #' #' @field params List of computed parameters, potentially useful for some DeltaForecasters #' @field data Dataset, object of class Data ShapeForecaster = setRefClass( Class = "ShapeForecaster", fields = list( params = "list", data = "Data" ), methods = list( initialize = function(...) { "Initialize (generic) ShapeForecaster object" callSuper(...) if (!hasArg(data)) stop("ShapeForecaster must be initialized with a Data object") params <<- list() }, predict = function(today, memory, horizon, ...) { "Obtain a new forecasted time-serie (+ side-effect: compute parameters)" #empty default implementation: to implement in inherited classes }, getParameters = function() { params } ) )