package org.batfish.coordinator.queues;
import java.util.LinkedList;
import java.util.UUID;
import org.batfish.coordinator.QueuedWork;
// we don't synchronize on this queue
// all synchronization is in inside WorkQueueMgr
public class MemoryQueue extends LinkedList<QueuedWork> implements WorkQueue {
private static final long serialVersionUID = -6556862067531610584L;
@Override
public boolean delete(QueuedWork qWork) {
return remove(qWork);
}
@Override
public QueuedWork deque() {
if (size() == 0) {
return null;
}
return pop();
}
@Override
public boolean enque(QueuedWork work) {
return add(work);
}
@Override
public long getLength() {
return size();
}
@Override
public QueuedWork getWork(UUID workItemId) {
for (QueuedWork work : this) {
if (work.getWorkItem().getId().equals(workItemId)) {
return work;
}
}
return null;
}
}