/*
 *  @author Ranides Atterwim <ranides@gmail.com>
 *  @copyright Ranides Atterwim
 *  @license WTFPL
 *  @url http://ranides.net/projects/assira
 */

package net.ranides.assira.time;

/**
 *
 * @author ranides
 * @todo (migration) assira
 */
public abstract class AutoTimerFrame<T> extends AutoTimerTask<T> {

    @Override
    public AutoTimerFrame<T> cancel() {
        if(handle != null) {
            handle.cancel();
            canceled(this.param);
            handle = null;
        }
        return this;
    }

    public abstract void started(T param);
    public abstract void finished(T param);
    public abstract void canceled(T param);

}
