All Downloads are FREE. Search and download functionalities are using the official Maven repository.

woko.async.JobWithProgressBase Maven / Gradle / Ivy

The newest version!
package woko.async;

import woko.util.WLogger;

import java.util.List;

public abstract class JobWithProgressBase extends JobBase {

    private static final WLogger logger = WLogger.getLogger(JobWithProgressBase.class);

    private boolean killRequired = false;
    private boolean killed = false;

    @Override
    protected void doExecute(List listeners) {
        while (hasNextStep()) {
            if (killRequired) {
                logger.info("Kill required for " + this);
                killed = true;
                break;
            } else {
                doExecuteNextStep();
                notifyListenersProgress(listeners);
            }
        }
    }

    @Override
    protected boolean isKilled() {
        return killed;
    }

    @Override
    public void kill() {
        logger.info("Killing " + this);
        killRequired = true;
    }

    protected boolean isKillRequired() {
        return killRequired;
    }

    protected abstract void doExecuteNextStep();

    protected abstract boolean hasNextStep();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy