class SeasonalBuffer {

    public double updateWhilePadding(MetricData metricData) {
        notNull(metricData, "metricData can't be null");
        checkValidTimestamp(metricData);
        padMissingDataPoints(metricData);
        double oldValue = getValueForCurrentIndex();
        updateBuffer(metricData);
        return oldValue;
    }

    public  SeasonalBuffer(int cycleLength, int interval, double missingValuePlaceholder);

}