package net.nightwhistler.pageturner.testutils;
import jedi.option.Option;
import net.nightwhistler.pageturner.scheduling.QueueableAsyncTask;
import net.nightwhistler.pageturner.scheduling.TaskQueue;
/**
* Created by alex on 10/25/14.
*/
public class SynchronousTaskQueue extends TaskQueue {
private TaskQueueListener listener;
@Override
public boolean isEmpty() {
return true;
}
@Override
public <A, B, C> void executeTask(QueueableAsyncTask<A, B, C> task, A... parameters) {
task.doOnPreExecute();
Option<C> result = task.doInBackground( parameters );
task.doOnPostExecute( result );
if ( listener != null ) {
listener.queueEmpty();
}
}
@Override
public <A, B, C> void jumpQueueExecuteTask(QueueableAsyncTask<A, B, C> task, A... parameters) {
executeTask( task, parameters );
}
@Override
public void clear() {
//no-op
}
@Override
public void setTaskQueueListener(TaskQueueListener listener) {
this.listener = listener;
}
@Override
public void taskCompleted(QueueableAsyncTask<?, ?, ?> task, boolean wasCancelled) {
//no op
}
}