// Path: src/io/andrewohara/tinkertime/controllers/ModUpdateCoordinator.java
// @Singleton
// public class ModUpdateCoordinator extends TaskCallback implements ModUpdateHandler {
// 
// 	private final ConfigData config;
// 
// 	private ModUpdateHandler modSelector, installationView;
// 	private ModListCellRenderer modListCellRenderer;
// 
// 	@Inject
// 	protected ModUpdateCoordinator(ConfigData config){
// 		this.config = config;
// 	}
// 
// 	public void setListeners(ModSelectorPanelController modSelector, ModListCellRenderer modListCellRender, SelectedInstallationView installationView){
// 		this.modSelector = modSelector;
// 		this.modListCellRenderer = modListCellRender;
// 		this.installationView = installationView;
// 	}
// 
// 	@Override
// 	public void changeInstallation(Installation newInstallation){
// 		try {
// 			config.setSelectedInstallation(newInstallation);
// 			modSelector.changeInstallation(newInstallation);
// 			installationView.changeInstallation(newInstallation);
// 		} catch (SQLException e){
// 			throw new RuntimeException(e);
// 		}
// 	}
// 
// 	@Override
// 	protected void processTaskEvent(TaskEvent event) {
// 		modListCellRenderer.handleTaskEvent(event);
// 	}
// }


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;
package io.andrewohara.tinkertime.controllers.workflows;




public class TaskLauncher {

	private final ThreadPoolExecutor downloadExecutor;
	private final Executor fileExecutor;
// Path: src/io/andrewohara/tinkertime/controllers/ModUpdateCoordinator.java
// @Singleton
// public class ModUpdateCoordinator extends TaskCallback implements ModUpdateHandler {
// 
// 	private final ConfigData config;
// 
// 	private ModUpdateHandler modSelector, installationView;
// 	private ModListCellRenderer modListCellRenderer;
// 
// 	@Inject
// 	protected ModUpdateCoordinator(ConfigData config){
// 		this.config = config;
// 	}
// 
// 	public void setListeners(ModSelectorPanelController modSelector, ModListCellRenderer modListCellRender, SelectedInstallationView installationView){
// 		this.modSelector = modSelector;
// 		this.modListCellRenderer = modListCellRender;
// 		this.installationView = installationView;
// 	}
// 
// 	@Override
// 	public void changeInstallation(Installation newInstallation){
// 		try {
// 			config.setSelectedInstallation(newInstallation);
// 			modSelector.changeInstallation(newInstallation);
// 			installationView.changeInstallation(newInstallation);
// 		} catch (SQLException e){
// 			throw new RuntimeException(e);
// 		}
// 	}
// 
// 	@Override
// 	protected void processTaskEvent(TaskEvent event) {
// 		modListCellRenderer.handleTaskEvent(event);
// 	}
// }


// Path: src/io/andrewohara/tinkertime/controllers/workflows/TaskLauncher.java
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;

package io.andrewohara.tinkertime.controllers.workflows;




public class TaskLauncher {

	private final ThreadPoolExecutor downloadExecutor;
	private final Executor fileExecutor;
	private final ModUpdateCoordinator modUpdateCoordinator;