kd.bos.entity.tree

## 类 TreeNode

- java.lang.Object
- - kd.bos.entity.tree.TreeNode

- 所有已实现的接口:
    java.io.Serializable

      @KSObject
      public class TreeNode
      extends java.lang.Object
      implements java.io.Serializable

  另请参阅:
    序列化表格

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static java.lang.String` | `LNUMBERDLM`

  - ### 构造器概要

    构造器
    构造器和说明
    `TreeNode()`
    `TreeNode(java.lang.String parentId, java.lang.String id, java.lang.String text)` 构造叶子节点
    `TreeNode(java.lang.String parentId, java.lang.String id, java.lang.String text, boolean isParent)` 构造节点
    `TreeNode(java.lang.String parentId, java.lang.String id, java.lang.String text, boolean isParent, java.lang.Object data)` 构造带数据的节点
    `TreeNode(java.lang.String parentId, java.lang.String id, java.lang.String text, java.lang.Object data)` 构造附加数据的叶子节点

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `TreeNode` | `addChild(int i, TreeNode node)` 特定位置添加单个子节点
    `TreeNode` | `addChild(TreeNode node)` 添加单个子节点
    `TreeNode` | `addChildren(java.util.List<TreeNode> nodes)` 添加多个子节点
    `TreeNode` | `deleteChildNode(java.lang.String id)` 递归删除子节点
    `java.util.List<java.lang.String>` | `getChildPath(java.lang.String id)` 获取子节点路径
    `java.util.List<TreeNode>` | `getChildPathNodes(java.lang.String id)` 获取子节点路径
    `java.util.List<TreeNode>` | `getChildren()`
    `java.lang.String` | `getColor()`
    `java.lang.Object` | `getData()` 附加数据
    `java.lang.String` | `getId()` 编码/唯一标示
    `boolean` | `getIsOpened()`
    `java.util.List<java.util.Map<java.lang.String,java.lang.String>>` | `getLabelPara()`
    `java.lang.String` | `getLongNumber()` 获取或返回长编码
    `int` | `getNodeLevel(java.lang.String id, int startLevel)` 获取节点的层级，没有找到返回-1
    `java.lang.String` | `getParentid()` 所在父节点编码/唯一标识
    `java.lang.String` | `getText()` 显示内容
    `TreeNode` | `getTreeNode(java.lang.String id, int maxLevel)` 递归查找id所在节点
    `TreeNode` | `getTreeNodeByText(java.lang.String text, int maxLevel)` 递归查找text所在节点
    `java.util.List<TreeNode>` | `getTreeNodeListById(java.util.List<TreeNode> treeNodes, java.lang.String id, int maxLevel)` 递归查找模糊匹配id所有节点
    `java.util.List<TreeNode>` | `getTreeNodeListByText(java.util.List<TreeNode> treeNodes, java.lang.String text, int maxLevel)` 递归查找text所在节点
    `java.lang.String` | `getType()`
    `boolean` | `isExpend()`
    `void` | `iterate(int maxLevel, java.util.function.Consumer<TreeNode> callback)` 遍历所有节点
    `static TreeNode` | `Parse(java.lang.String rootParentId, java.util.Map<java.lang.String,java.lang.Object> map, java.lang.String idKey, java.lang.String textKey, java.lang.String itemsKey)` Map 转 TreeNode
    `void` | `setChildren(java.util.List<TreeNode> arrayList)`
    `void` | `setColor(java.lang.String color)`
    `void` | `setData(java.lang.Object data)`
    `void` | `setExpend(boolean isExpend)`
    `void` | `setId(java.lang.String value)`
    `void` | `setIsOpened(boolean isOpened)`
    `void` | `setLabelPara(java.util.List<TreeNodeLabel> labelPara)`
    `void` | `setLongNumber(java.lang.String longNumber)`
    `void` | `setParentid(java.lang.String value)`
    `void` | `setText(java.lang.String value)`
    `void` | `setType(java.lang.String type)`
    `java.lang.String` | `toString()`

    - ### 从类继承的方法 java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### 字段详细资料

    - #### LNUMBERDLM

          public static final java.lang.String LNUMBERDLM

      另请参阅:
        常量字段值

  - ### 构造器详细资料

    - #### TreeNode

          public TreeNode()

    - #### TreeNode

          public TreeNode(java.lang.String parentId,
                          java.lang.String id,
                          java.lang.String text)

      构造叶子节点
      参数:
        `parentId` -
        `id` -
        `text` -

    - #### TreeNode

          public TreeNode(java.lang.String parentId,
                          java.lang.String id,
                          java.lang.String text,
                          java.lang.Object data)

      构造附加数据的叶子节点
      参数:
        `parentId` -
        `id` -
        `text` -
        `data` -

    - #### TreeNode

          public TreeNode(java.lang.String parentId,
                          java.lang.String id,
                          java.lang.String text,
                          boolean isParent)

      构造节点
      参数:
        `parentId` -
        `id` -
        `text` -
        `isParent` - true 非叶子节点，false 叶子节点

    - #### TreeNode

          public TreeNode(java.lang.String parentId,
                          java.lang.String id,
                          java.lang.String text,
                          boolean isParent,
                          java.lang.Object data)

      构造带数据的节点
      参数:
        `parentId` -
        `id` -
        `text` -
        `isParent` -
        `data` -

  - ### 方法详细资料

    - #### getLabelPara

          public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getLabelPara()

    - #### setLabelPara

          public void setLabelPara(java.util.List<TreeNodeLabel> labelPara)

    - #### getId

          @KSMethod
          public final java.lang.String getId()

      编码/唯一标示

    - #### setId

          @KSMethod
          public final void setId(java.lang.String value)

    - #### getText

          @KSMethod
          public final java.lang.String getText()

      显示内容

    - #### setText

          @KSMethod
          public final void setText(java.lang.String value)

    - #### getParentid

          @KSMethod
          public final java.lang.String getParentid()

      所在父节点编码/唯一标识

    - #### setParentid

          @KSMethod
          public final void setParentid(java.lang.String value)

    - #### getChildren

          @KSMethod
          public java.util.List<TreeNode> getChildren()

    - #### setChildren

          @KSMethod
          public void setChildren(java.util.List<TreeNode> arrayList)

    - #### getData

          @KSMethod
          public java.lang.Object getData()

      附加数据
      返回:
        the data

    - #### setData

          @KSMethod
          public void setData(java.lang.Object data)

      参数:
        `data` - the data to set

    - #### getType

          @KSMethod
          public java.lang.String getType()

      返回:
        the type

    - #### setType

          @KSMethod
          public void setType(java.lang.String type)

      参数:
        `type` - the type to set

    - #### isExpend

          @KSMethod
          public boolean isExpend()

    - #### setExpend

          @KSMethod
          public void setExpend(boolean isExpend)

    - #### getIsOpened

          @KSMethod
          public boolean getIsOpened()

      返回:
        the isOpened

    - #### setIsOpened

          @KSMethod
          public void setIsOpened(boolean isOpened)

      参数:
        `isOpened` - the isOpened to set

    - #### getColor

          @KSMethod
          public java.lang.String getColor()

    - #### setColor

          @KSMethod
          public void setColor(java.lang.String color)

    - #### getLongNumber

          @KSMethod
          public java.lang.String getLongNumber()

      获取或返回长编码
      返回:
        返回长编码

    - #### setLongNumber

          @KSMethod
          public void setLongNumber(java.lang.String longNumber)

    - #### addChild

          @KSMethod
          public TreeNode addChild(TreeNode node)

      添加单个子节点
      参数:
        `node` -
      返回:
        返回当前节点，方便链式操作

    - #### addChild

          @KSMethod
          public TreeNode addChild(int i,
                                              TreeNode node)

      特定位置添加单个子节点
      参数:
        `node` -
      返回:
        返回当前节点，方便链式操作

    - #### addChildren

          @KSMethod
          public TreeNode addChildren(java.util.List<TreeNode> nodes)

      添加多个子节点
      参数:
        `nodes` -
      返回:
        返回当前节点，方便链式操作

    - #### getTreeNode

          @KSMethod
          public TreeNode getTreeNode(java.lang.String id,
                                                 int maxLevel)

      递归查找id所在节点
      参数:
        `id` -
        `maxLevel` - 最大遍历深度（子节点算第一层）
      返回:

    - #### getTreeNodeListById

          @KSMethod
          public java.util.List<TreeNode> getTreeNodeListById(java.util.List<TreeNode> treeNodes,
                                                                         java.lang.String id,
                                                                         int maxLevel)

      递归查找模糊匹配id所有节点
      参数:
        `id` -
        `maxLevel` - 最大遍历深度（子节点算第一层）
      返回:

    - #### getTreeNodeByText

          @KSMethod
          public TreeNode getTreeNodeByText(java.lang.String text,
                                                       int maxLevel)

      递归查找text所在节点
      参数:
        `text` -
        `maxLevel` - 最大遍历深度（子节点算第一层）
      返回:

    - #### getTreeNodeListByText

          @KSMethod
          public java.util.List<TreeNode> getTreeNodeListByText(java.util.List<TreeNode> treeNodes,
                                                                           java.lang.String text,
                                                                           int maxLevel)

      递归查找text所在节点
      参数:
        `treeNodes` -
        `text` -
        `maxLevel` - 最大遍历深度（子节点算第一层）
      返回:
        返回符合条件的树节点集合

    - #### getNodeLevel

          @KSMethod
          public int getNodeLevel(java.lang.String id,
                                             int startLevel)

      获取节点的层级，没有找到返回-1
      参数:
        `id` -
        `startLevel` -
      返回:

    - #### getChildPath

          @KSMethod
          public java.util.List<java.lang.String> getChildPath(java.lang.String id)

      获取子节点路径
      参数:
        `id` -
      返回:

    - #### getChildPathNodes

          @KSMethod
          public java.util.List<TreeNode> getChildPathNodes(java.lang.String id)

      获取子节点路径
      参数:
        `id` -
      返回:

    - #### iterate

          public void iterate(int maxLevel,
                              java.util.function.Consumer<TreeNode> callback)

      遍历所有节点
      参数:
        `maxLevel` - 最大遍历深度（子节点算第一层）
        `callback` - 回调函数，可以传个lambda表达式

    - #### deleteChildNode

          @KSMethod
          public TreeNode deleteChildNode(java.lang.String id)

      递归删除子节点
      参数:
        `id` -
      返回:
        删除节点的上一级节点

    - #### Parse

          @KSMethod
          public static TreeNode Parse(java.lang.String rootParentId,
                                                  java.util.Map<java.lang.String,java.lang.Object> map,
                                                  java.lang.String idKey,
                                                  java.lang.String textKey,
                                                  java.lang.String itemsKey)

      Map 转 TreeNode
      参数:
        `rootParentId` -
        `map` -
        `idKey` -
        `textKey` -
        `itemsKey` -
      返回:

    - #### toString

          public java.lang.String toString()

      覆盖:
        `toString` 在类中 `java.lang.Object`