package org.objectstyle.wolips.eomodeler.core.model.history;
import java.util.LinkedList;
import java.util.List;
public class ModelEvents {
private List<IModelEvent> _events;
public ModelEvents() {
_events = new LinkedList<IModelEvent>();
}
public synchronized void addEvent(IModelEvent newEvent) {
boolean done = false;
boolean shouldAdd = true;
for (int i = _events.size() - 1; !done && i >= 0; i--) {
IModelEvent existingEvent = _events.get(i);
if (newEvent.isEncompassedBy(existingEvent)) {
done = true;
shouldAdd = false;
}
if (existingEvent.isReplacedBy(newEvent)) {
_events.remove(i);
}
}
if (shouldAdd) {
_events.add(newEvent);
}
}
public synchronized List<IModelEvent> getEvents() {
return new LinkedList<IModelEvent>(_events);
}
}