package com.venky.swf.plugins.background.core.agent;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import com.venky.swf.plugins.background.core.Task;
import com.venky.swf.plugins.background.core.TaskManager;
public abstract class AgentSeederTask implements Task{
private static final long serialVersionUID = 3385669580336293058L;
@Override
public void execute() {
if (!Agent.instance().isRunning(getAgentName())){
return;
}
List<Task> tasks = getTasks();
if (tasks.isEmpty()) {
AgentFinishUpTask task = new AgentFinishUpTask();
task.setAgentName(getAgentName());
executeDelayed(task);
}else {
executeDelayed(tasks);
}
}
public void executeDelayed(Task task) {
executeDelayed(Arrays.asList(task));
}
public void executeDelayed(Collection<Task> tasks) {
TaskManager.instance().executeAsync(tasks,isAgentTaskQPersistent());
}
public abstract List<Task> getTasks();
public abstract String getAgentName();
protected abstract boolean isAgentTaskQPersistent();
}