void addSubElement(@NotNull CachingChildrenTreeNode node) {
    JBIterable<AbstractTreeNode<?>> parents = JBIterable.generate(this, o -> o.getParent());
    if (parents.map(o -> o.getValue()).contains(node.getValue())) {
      return;
    }
    ensureChildrenAreInitialized();
    myChildren.add(node);
    node.setParent(this);
  }
void addSubElement(@NotNull CachingChildrenTreeNode node)