类 TreeUtil


  • public final class TreeUtil
    extends java.lang.Object
    Tree树的操作集合 概念定义:
    Ancestor:处于父路径上的所有节点;
    Parent:处于父路径上的最近父节点,即上级节点
    Node:当前节点 Family:当前节点及所辖子节点
    Son:所辖子节点
    版本:
    2.0 2010-04-15
    作者:
    帮帮组
    • 方法概要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 说明
      static TreeNode deleteNode​(TreeNode tree, TreeNode node)
      从整棵树中根据Id找到一个树节点并删除之。
      static TreeNode filterWithAncestor​(TreeNode tree, java.util.Collection<? extends java.lang.Object> ids)
      从一棵树中剔除允许范围列表之外的所有节点,保留允许范围内节点(及子节点)及其父节点。
      static TreeNode filterWithAncestor​(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 TreeNode findNode​(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 TreeNode insertNode​(TreeNode tree, TreeNode node)
      把一个树节点根据Id-ParentId关系插入到一棵树中
      static boolean isMarked​(TreeNode node)
      检查一个节点是否已经被标记
      static TreeNode[] toTrees​(java.util.List<TreeNode> nodes)
      把一组节点列表梳理成树
      static TreeNode updateNode​(TreeNode tree, TreeNode node)
      从整棵树中根据Id找到一个树节点并更新之。
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 方法详细资料

      • 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: 没有标记