package io.andrewohara.tinkertime.controllers.workflows.tasks; import io.andrewohara.common.workflows.tasks.WorkflowTask; import io.andrewohara.tinkertime.io.crawlers.Crawler; import io.andrewohara.tinkertime.models.mod.Mod; import java.io.IOException; import java.sql.SQLException; /** * Workflow Task that returns true if an update for a file is available. * * @author Andrew O'Hara */ public class CheckForUpdateTask extends WorkflowTask { private final Crawler<?> crawler; private final Mod mod; private final boolean markIfAvailable; public CheckForUpdateTask(Crawler<?> crawler, Mod mod, boolean markIfAvailable) { super("Comparing Versions"); this.crawler = crawler; this.mod = mod; this.markIfAvailable = markIfAvailable; } @Override public boolean execute() throws IOException, SQLException { boolean updateAvailable = crawler.isUpdateAvailable(mod); if (markIfAvailable && updateAvailable){ mod.setUpdateAvailable(updateAvailable); mod.commit(); } return updateAvailable; } @Override protected int findTargetProgress() throws IOException { return -1; } }