类 TreeUtil
- java.lang.Object
-
- team.bangbang.common.utility.TreeUtil
-
public final class TreeUtil extends java.lang.ObjectTree树的操作集合 概念定义:
Ancestor:处于父路径上的所有节点;
Parent:处于父路径上的最近父节点,即上级节点
Node:当前节点 Family:当前节点及所辖子节点
Son:所辖子节点- 版本:
- 2.0 2010-04-15
- 作者:
- 帮帮组
-
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static TreeNodedeleteNode(TreeNode tree, TreeNode node)从整棵树中根据Id找到一个树节点并删除之。static TreeNodefilterWithAncestor(TreeNode tree, java.util.Collection<? extends java.lang.Object> ids)从一棵树中剔除允许范围列表之外的所有节点,保留允许范围内节点(及子节点)及其父节点。static TreeNodefilterWithAncestor(TreeNode tree, java.util.Collection<? extends java.lang.Object> ids, boolean retainSon)从一棵树中剔除允许范围列表之外的所有节点,保留允许范围内节点(可以指定是否含子节点)及其父节点。static TreeNode[]filterWithoutAncestor(TreeNode tree, java.util.Collection<? extends java.lang.Object> ids)从一棵树中剔除允许范围列表之外的所有节点,仅保留允许范围内节点及其子节点。static TreeNodefindNode(TreeNode tree, java.lang.Object objId)从源树中找到匹配指定编号的节点static java.util.Collection<java.lang.Object>getSelfAndSonIds(TreeNode tree)获得指定节点及所有子节点的编号集合static java.util.Collection<java.lang.Object>getSelfAndSonIds(TreeNode tree, java.util.Collection<java.lang.Object> ids)在一棵树下找出目标编号范围内的节点,获得这些节点及其子节点的编号集合static TreeNodeinsertNode(TreeNode tree, TreeNode node)把一个树节点根据Id-ParentId关系插入到一棵树中static booleanisMarked(TreeNode node)检查一个节点是否已经被标记static TreeNode[]toTrees(java.util.List<TreeNode> nodes)把一组节点列表梳理成树static TreeNodeupdateNode(TreeNode tree, TreeNode node)从整棵树中根据Id找到一个树节点并更新之。
-
-
-
方法详细资料
-
toTrees
public static TreeNode[] toTrees(java.util.List<TreeNode> nodes)
把一组节点列表梳理成树- 参数:
nodes- 节点列表,元素为TreeNode类型- 返回:
- 树
-
findNode
public static TreeNode findNode(TreeNode tree, java.lang.Object objId)
从源树中找到匹配指定编号的节点- 参数:
tree- 源树objId- 指定的节点编号- 返回:
- 匹配指定编号的节点
-
getSelfAndSonIds
public static java.util.Collection<java.lang.Object> getSelfAndSonIds(TreeNode tree)
获得指定节点及所有子节点的编号集合- 参数:
tree- 指定节点- 返回:
- 当前节点及所有子节点的编号集合
-
getSelfAndSonIds
public static java.util.Collection<java.lang.Object> getSelfAndSonIds(TreeNode tree, java.util.Collection<java.lang.Object> ids)
在一棵树下找出目标编号范围内的节点,获得这些节点及其子节点的编号集合- 参数:
tree- 一棵树ids- 目标编号范围内的节点- 返回:
- 目标节点及其子节点的编号集合
-
insertNode
public static TreeNode insertNode(TreeNode tree, TreeNode node)
把一个树节点根据Id-ParentId关系插入到一棵树中- 参数:
tree- 目标树node- 等待放入目标树的节点- 返回:
- 节点插入操作后的树
-
updateNode
public static TreeNode updateNode(TreeNode tree, TreeNode node)
从整棵树中根据Id找到一个树节点并更新之。 更新会影响子节点的有效标识,但不会影响子节点的状态标识。- 参数:
tree- 目标树node- 等待更新到目标树中的节点- 返回:
- 节点更新操作后的树
-
deleteNode
public static TreeNode deleteNode(TreeNode tree, TreeNode node)
从整棵树中根据Id找到一个树节点并删除之。- 参数:
tree- 目标树node- 等待从目标树中删除的节点- 返回:
- 节点删除操作后的树
-
filterWithoutAncestor
public static TreeNode[] filterWithoutAncestor(TreeNode tree, java.util.Collection<? extends java.lang.Object> ids)
从一棵树中剔除允许范围列表之外的所有节点,仅保留允许范围内节点及其子节点。 注意保留允许范围内节点及其子节点,不包括允许节点的祖先节点。- 参数:
tree- 需要过滤的树ids- 允许的节点Id集合- 返回:
- 剔除操作完成之后的树数组,因为Without Ancestor,所以此时有可能是多棵树。
-
filterWithAncestor
public static TreeNode filterWithAncestor(TreeNode tree, java.util.Collection<? extends java.lang.Object> ids)
从一棵树中剔除允许范围列表之外的所有节点,保留允许范围内节点(及子节点)及其父节点。 注意此方法返回结果包括允许节点的所有父路径上的节点,可以用于构造登录后的功能菜单。- 参数:
tree- 需要过滤的树ids- 允许的节点Id集合- 返回:
- 剔除操作完成之后的树,因为With Ancestor,所以此时仍然是一棵树。
-
filterWithAncestor
public static TreeNode filterWithAncestor(TreeNode tree, java.util.Collection<? extends java.lang.Object> ids, boolean retainSon)
从一棵树中剔除允许范围列表之外的所有节点,保留允许范围内节点(可以指定是否含子节点)及其父节点。 注意此方法返回结果包括允许节点的所有父路径上的节点。- 参数:
tree- 需要过滤的树ids- 允许的节点Id集合retainSon- 是否保留子节点- 返回:
- 剔除操作完成之后的树,因为With Ancestor,所以此时仍然是一棵树。
-
isMarked
public static boolean isMarked(TreeNode node)
检查一个节点是否已经被标记- 参数:
node- 待检查的节点- 返回:
- true: 被标记 false: 没有标记
-
-