package com.google.code.joto.eventrecorder; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * default implementation of RecordEventListener for redispatching to a RecordEventVisitor */ public class DefaultVisitorRecordEventListener implements RecordEventListener { private static Logger log = LoggerFactory.getLogger(DefaultVisitorRecordEventListener.class); private RecordEventChangeVisitor target; //------------------------------------------------------------------------- public DefaultVisitorRecordEventListener(RecordEventChangeVisitor target) { this.target = target; } //------------------------------------------------------------------------- public void onEvent(RecordEventStoreChange event) { onEventStoreEvent(event); } public void onEvents(List<RecordEventStoreChange> events) { for(RecordEventStoreChange event : events) { onEventStoreEvent(event); } } protected void onEventStoreEvent(RecordEventStoreChange event) { try { event.accept(target); } catch(Exception ex) { // ignore, no rethrow! log.warn("Failed to handle RecordEvent...ignore!", ex); } } }