package com.venky.swf.plugins.background.core;
import java.util.concurrent.atomic.AtomicInteger;
public class TaskHolder implements Task, Comparable<TaskHolder>{
/**
*
*/
private static final long serialVersionUID = 5587808806039003066L;
private Task task = null;
private Priority priority = null;
public Priority getPriority() {
return priority;
}
private int id = -1;
private static AtomicInteger fakeIdGenerator = new AtomicInteger();
public TaskHolder(Task task, Priority priority){
this.task = task;
this.priority = priority;
this.id = fakeIdGenerator.incrementAndGet();
}
@Override
public void execute() {
task.execute();
}
@Override
public int compareTo(TaskHolder o) {
int ret = getPriority().compareTo(o.getPriority());
if (ret == 0) {
ret = Integer.compare(id, o.id);
}
return ret;
}
}