package uk.co.acuminous.julez.event.handler;
import java.util.Collection;
import java.util.Iterator;
import java.util.concurrent.ConcurrentLinkedQueue;
import uk.co.acuminous.julez.event.Event;
import uk.co.acuminous.julez.event.repository.BaseEventRepository;
import uk.co.acuminous.julez.event.repository.EventRepository;
public class InMemoryEventRepository extends BaseEventRepository implements EventRepository {
protected Collection<Event> events;
public InMemoryEventRepository() {
events = new ConcurrentLinkedQueue<Event>();
}
public InMemoryEventRepository(Collection<Event> events) {
this.events = events;
}
@Override
public void raise() {
for(Event event : events) {
handler.onEvent(event);
}
}
@Override
public void onEvent(Event event) {
events.add(event);
}
@Override public Iterator<Event> iterator() {
return events.iterator();
}
}