package org.icij.extract.tasks;
import org.icij.extract.queue.DocumentQueue;
import org.icij.extract.queue.DocumentQueueFactory;
import org.icij.task.DefaultTask;
import org.icij.task.annotation.Option;
import org.icij.task.annotation.OptionsClass;
import org.icij.task.annotation.Task;
/**
* CLI class for wiping a {@link DocumentQueue} from the backend.
*
* @author Matthew Caruana Galizia <mcaruana@icij.org>
* @since 1.0.0-beta
*/
@Task("Wipe a queue. The name option is respected.")
@OptionsClass(DocumentQueueFactory.class)
public class WipeQueueTask extends DefaultTask<Integer> {
@Override
public Integer run() throws Exception {
final int cleared;
try (final DocumentQueue queue = new DocumentQueueFactory(options).createShared()) {
cleared = queue.size();
queue.clear();
} catch (Exception e) {
throw new RuntimeException("Exception while wiping queue.", e);
}
return cleared;
}
}