Class TreeBuilder<E>

java.lang.Object
org.miaixz.bus.core.tree.TreeBuilder<E>
Type Parameters:
E - ID类型
All Implemented Interfaces:
Serializable, Builder<MapTree<E>>

public class TreeBuilder<E> extends Object implements Builder<MapTree<E>>
树构建器
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • TreeBuilder

      public TreeBuilder(E rootId, NodeConfig config)
      构造
      Parameters:
      rootId - 根节点ID
      config - 配置
  • Method Details

    • of

      public static <T> TreeBuilder<T> of(T rootId)
      创建Tree构建器
      Type Parameters:
      T - ID类型
      Parameters:
      rootId - 根节点ID
      Returns:
      TreeBuilder
    • of

      public static <T> TreeBuilder<T> of(T rootId, NodeConfig config)
      创建Tree构建器
      Type Parameters:
      T - ID类型
      Parameters:
      rootId - 根节点ID
      config - 配置
      Returns:
      TreeBuilder
    • setId

      public TreeBuilder<E> setId(E id)
      设置ID
      Parameters:
      id - ID
      Returns:
      this
    • setParentId

      public TreeBuilder<E> setParentId(E parentId)
      设置父节点ID
      Parameters:
      parentId - 父节点ID
      Returns:
      this
    • setName

      public TreeBuilder<E> setName(CharSequence name)
      设置节点标签名称
      Parameters:
      name - 节点标签名称
      Returns:
      this
    • setWeight

      public TreeBuilder<E> setWeight(Comparable<?> weight)
      设置权重
      Parameters:
      weight - 权重
      Returns:
      this
    • putExtra

      public TreeBuilder<E> putExtra(String key, Object value)
      扩展属性
      Parameters:
      key - 键
      value - 扩展值
      Returns:
      this
    • append

      public TreeBuilder<E> append(Map<E,MapTree<E>> map)
      增加节点列表,增加的节点是不带子节点的
      Parameters:
      map - 节点列表
      Returns:
      this
    • append

      public TreeBuilder<E> append(Iterable<MapTree<E>> trees)
      增加节点列表,增加的节点是不带子节点的
      Parameters:
      trees - 节点列表
      Returns:
      this
    • append

      public <T> TreeBuilder<E> append(List<T> list, NodeParser<T,E> nodeParser)
      增加节点列表,增加的节点是不带子节点的
      Type Parameters:
      T - Bean类型
      Parameters:
      list - Bean列表
      nodeParser - 节点转换器,用于定义一个Bean如何转换为Tree节点
      Returns:
      this
    • reset

      public TreeBuilder<E> reset()
      重置Builder,实现复用
      Returns:
      this
    • build

      public MapTree<E> build()
      Description copied from interface: Builder
      构建
      Specified by:
      build in interface Builder<E>
      Returns:
      被构建的对象
    • buildList

      public List<MapTree<E>> buildList()
      构建树列表,没有顶层节点,例如:
       -用户管理
        -用户管理
          +用户添加
       - 部门管理
        -部门管理
          +部门添加
       
      Returns:
      树列表