public void process(WatchedEvent watchedEvent) { try { Closure callback = null; switch (watchedEvent.getType()) { case NodeChildrenChanged: if (null != onNodeChildrenChanged) { callback = onNodeChildrenChanged; } else { callback = onEvent; } break; case NodeCreated: if (null != onNodeCreated) { callback = onNodeCreated; } else { callback = onEvent; } break; case NodeDeleted: if (null != onNodeDeleted) { callback = onNodeDeleted; } else { callback = onEvent; } break; case NodeDataChanged: if (null != onDataChanged) { callback = onDataChanged; } else { callback = onEvent; } break; case None: if (null != onEvent) { callback = onEvent; } } if (null != callback) { callback.call(watchedEvent); } else { log.warn("No callbacks defined to accept event: " + watchedEvent); } } catch (Throwable t) { log.debug(t.getMessage()); } }