@Override
    public void removeChildren(@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);
        }
      }
    }
@Override
    public void removeChildren(@Nullable Predicate<? super Disposable> condition, @NotNull Consumer<? super ObjectNode> deletedNodeConsumer)