void unregisterEntry(ListIterator<PathElement> iterator, ConcreteNotificationHandlerRegistration.NotificationHandlerEntry entry) {
        if (!iterator.hasNext()) {
            // leaf node, unregister the entry here
            entries.remove(entry);
            return;
        }

        PathElement element = iterator.next();
        final NotificationHandlerNodeSubregistry subregistry = children.get(element.getKey());
        if (subregistry == null) {
            return;
        }
        subregistry.unregisterEntry(iterator, element.getValue(), entry);

    }
void unregisterEntry ( ListIterator < PathElement > iterator , ConcreteNotificationHandlerRegistration . NotificationHandlerEntry entry ) { if ( ! iterator . hasNext ( ) ) { entries . remove ( entry ) ; return ; } PathElement element = iterator . next ( ) ; final NotificationHandlerNodeSubregistry subregistry = children . get ( element . getKey ( ) ) ; if ( subregistry == null ) { return ; } subregistry . unregisterEntry ( iterator , element . getValue ( ) , entry ) ; }
Unregister the entry from here (if the registry is the leaf node) or continue to traverse the tree