void (@Nullable Predicate<? super Disposable> condition, @NotNull Consumer<? super ObjectNode> deletedNodeConsumer) { Iterator<Map.Entry<Disposable, ObjectNode>> iterator = myChildren.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<Disposable, ObjectNode> entry = iterator.next(); if (condition == null || condition.test(entry.getKey())) { ObjectNode value = entry.getValue(); iterator.remove(); deletedNodeConsumer.accept(value); } } }