package org.jbehave.eclipse.util;
import java.util.concurrent.ConcurrentLinkedQueue;
public abstract class Visitor<T,R> {
private boolean isDone;
private ConcurrentLinkedQueue<R> elements = New.concurrentLinkedQueue();
public abstract void visit(T value);
public boolean isDone () {
return isDone;
}
public void done () {
this.isDone = true;
}
public void add(R found) {
this.elements.add(found);
}
public R getFirst() {
if(elements.isEmpty())
return null;
return elements.peek();
}
public ConcurrentLinkedQueue<R> getElementsFound() {
return elements;
}
}