List<Event> events = new ArrayList<Event>();
for (LogEvent logEvent : logEvents) {
Event event = new Event(logEvent.getType());
switch (logEvent.getType()) {
case LogEvent.INSERTED:
ObjectLogEvent objectEvent = (ObjectLogEvent) logEvent;
event.setString("Object inserted (" + objectEvent.getFactId() + "): " + objectEvent.getObjectToString());
if (!beforeEvents.isEmpty()) {
beforeEvents.peek().addSubEvent(event);
} else {
events.add(event);
}
objectMap.put( objectEvent.getFactId(), event );
break;
case LogEvent.UPDATED:
objectEvent = (ObjectLogEvent) logEvent;
event.setString("Object updated (" + objectEvent.getFactId() + "): " + objectEvent.getObjectToString());
if (!beforeEvents.isEmpty()) {
beforeEvents.peek().addSubEvent(event);
} else {
events.add(event);
}
objectMap.put( objectEvent.getFactId(), event );
break;
case LogEvent.RETRACTED:
objectEvent = (ObjectLogEvent) logEvent;
event.setString("Object removed (" + objectEvent.getFactId() + "): " + objectEvent.getObjectToString());
if (!beforeEvents.isEmpty()) {
beforeEvents.peek().addSubEvent(event);
} else {
events.add(event);
}
objectMap.put( objectEvent.getFactId(), event );
break;
case LogEvent.ACTIVATION_CREATED:
ActivationLogEvent activationEvent = (ActivationLogEvent) logEvent;
event.setString("Activation created: Rule " + activationEvent.getRule() + " " + activationEvent.getDeclarations());
Event mostRecentObjEvent = null;