@Override
        public void run() {
            for (ListenerHolder holder : listenerHolders) {
                final NamingListener listener = holder.listener;
                switch (event.getType()) {
                    case NamingEvent.OBJECT_ADDED:
                        if (listener instanceof NamespaceChangeListener)
                            ((NamespaceChangeListener) listener).objectAdded(event);
                        break;
                    case NamingEvent.OBJECT_REMOVED:
                        if (listener instanceof NamespaceChangeListener)
                            ((NamespaceChangeListener) listener).objectRemoved(event);
                        break;
                    case NamingEvent.OBJECT_RENAMED:
                        if (listener instanceof NamespaceChangeListener)
                            ((NamespaceChangeListener) listener).objectRenamed(event);
                        break;
                    case NamingEvent.OBJECT_CHANGED:
                        if (listener instanceof ObjectChangeListener)
                            ((ObjectChangeListener) listener).objectChanged(event);
                        break;
                }
            }
        }