class MysqlEventSource implements EventSource {

    @Override
    public List<Event<Map<String, Object>>> getNewEvents() throws DataAccessException {
        if (!isConnected()) {
            throw new IllegalStateException("Calling getNewEvents without first connecting");
        }
        return mapMysqlEventsToGenericEvents(eventRepo.getNewEventsForListener(listener, connection));
    }

    public  MysqlEventSource(ConnectionProvider connectionProvider, String tableName);
    @VisibleForTesting  MysqlEventSource(ConnectionProvider connectionProvider, String tableName, MysqlConfigurator configurator);

}