class DefaultContinuousAnimationPlan extends DefaultAnimationPlan implements ContinuousAnimationPlan {

    public DefaultContinuousAnimationPlan(List<? extends TimeSpan> sequence, Duration activeWindowDuration,
            Duration advanceDuration, EndBehavior endBehavior, TimeSpan limitWindow)
    {
        super(sequence, endBehavior);
        for (TimeSpan timeSpan : sequence)
        {
            if (!timeSpan.isBounded())
            {
                throw new IllegalArgumentException("Cannot create " + DefaultContinuousAnimationPlan.class.getSimpleName()
                        + " with an indefinite time span: " + timeSpan);
            }
        }
        myActiveWindowDuration = Utilities.checkNull(activeWindowDuration, "activeWindowDuration");
        myAdvanceDuration = Utilities.checkNull(advanceDuration, "advanceDuration");
        myLimitWindow = limitWindow == null ? TimeSpan.TIMELESS : limitWindow;
        setUsingProcessingTimeout(true);
    }

    public  DefaultContinuousAnimationPlan(List<? extends TimeSpan> sequence, Duration activeWindowDuration,
            Duration advanceDuration, EndBehavior endBehavior, TimeSpan limitWindow);

}