package io.andrewohara.tinkertime.controllers.workflows; import io.andrewohara.common.workflows.tasks.WorkflowBuilder; import io.andrewohara.tinkertime.controllers.ModUpdateCoordinator; import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor; import com.google.inject.Inject; public class TaskLauncher { private final ThreadPoolExecutor downloadExecutor; private final Executor fileExecutor; private final ModUpdateCoordinator modUpdateCoordinator; @Inject TaskLauncher(ThreadPoolExecutor downloadExecutor, Executor fileExecutor, ModUpdateCoordinator modUpdateCoordinator){ this.downloadExecutor = downloadExecutor; this.fileExecutor = fileExecutor; this.modUpdateCoordinator = modUpdateCoordinator; } public void submitDownloadWorkflow(WorkflowBuilder builder){ builder.addListener(modUpdateCoordinator); builder.execute(downloadExecutor); } public void submitFileWorkflow(WorkflowBuilder builder){ builder.addListener(modUpdateCoordinator); builder.execute(fileExecutor); } }