@Override
public void addEventListener(EventListener listener, int eventTypes, String absPath,
boolean isDeep, String[] uuids, String[] nodeTypeName, boolean noLocal)
throws RepositoryException {
FilterBuilder filterBuilder = new FilterBuilder();
filterBuilder
.basePath(namePathMapper.getOakPath(absPath))
.includeSessionLocal(!noLocal)
.includeClusterExternal(!(listener instanceof ExcludeExternal))
.condition(filterBuilder.all(
filterBuilder.path(isDeep ? STAR_STAR : STAR),
filterBuilder.eventType(eventTypes),
filterBuilder.uuid(Selectors.PARENT, uuids),
filterBuilder.nodeType(Selectors.PARENT, validateNodeTypeNames(nodeTypeName))));
ListenerTracker tracker = new ListenerTracker(
listener, eventTypes, absPath, isDeep, uuids, nodeTypeName, noLocal) {
@Override
protected void warn(String message) {
LOG.warn(DEPRECATED, message, initStackTrace);
}
@Override
protected void beforeEventDelivery() {
sessionDelegate.refreshAtNextAccess();
}
};
addEventListener(listener, tracker, filterBuilder.build());
}