private void doAddChild(@NotNull DataNode<?> child) {
    if (children == null) {
      ArrayList<DataNode<?>> newChildren = new ArrayList<>();
      newChildren.add(child);
      initChildren(newChildren);
    }
    else {
      children.add(child);
    }
  }
private void doAddChild(@NotNull DataNode<?> child)