@Nullable
  public static Object extractValueFromNode(@Nullable Object node) {
    Object userObject = TreeUtil.getUserObject(node);
    Object element = null;
    if (userObject instanceof AbstractTreeNode<?> descriptor) {
      element = descriptor.getValue();
    }
    else if (userObject instanceof NodeDescriptor<?> descriptor) {
      element = descriptor.getElement();
      if (element instanceof AbstractTreeNode<?> treeNode) {
        element = treeNode.getValue();
      }
    }
    else if (userObject != null) {
      element = userObject;
    }
    return element;
  }
@Nullable
  public static Object extractValueFromNode(@Nullable Object node)