您的位置:首页 >> 编程开发 >> Java >> J2EE >> 正文
RSS
 

JdonJive论坛系统完整分析(5)

http://www.rdxx.com 05年07月23日 14:45 互连网 我要投稿

关键词: 论坛 , Jive , JDO , 系统

5  Jive的其他组件技术

Jive是一个比较丰富的知识宝藏,从中可以学习到很多新的实战技巧和具体功能实现方式。前面基本介绍了Jive中的一些主要架构技术,通过这些技术可以基本上掌握Jive论坛系统。

Jive中还有很多非常实用的组件技术和工具库,分析学习可重用技术,可以在自己具体的项目重复使用,大大提高了新系统的开发速度和效率。

5.1  Jive的树形结构

Jive的管理功能中提供了将Jive数据库数据导出到XML文件的管理工具,在这个工具功能实现中,使用了树形结构的遍历技术。

JiveForumThread中的第一个ForumMessage作为root ForumMessage,以这个ForumMessage为根节点,每个ForumThread中包含了一套树形结构。

TreeWalker是树形结构的一个抽象接口,代码如下:

public interface TreeWalker {

    //根节点

    public ForumMessage getRoot();

    //获得父节点

    public ForumMessage getParent(ForumMessage child)

            throws ForumMessageNotFoundException;

    //获得子节点

    public ForumMessage getChild(ForumMessage parent, int index)

            throws ForumMessageNotFoundException;

    //获得所有子节点

    public Iterator children(ForumMessage parent);

    //获得所有的子节点,包括子节点的子节点

    public Iterator recursiveChildren(ForumMessage parent);

    //获得一个节点的深度,相对根节点而言

    public int getMessageDepth(ForumMessage message);

   

    public int getChildCount(ForumMessage parent);

    public int getRecursiveChildCount(ForumMessage parent);

 

    /**

     * 返回相对父节点的子节点索引。例如

     * <pre>

     *   4

     *   |-- 2

     *   |-- |-- 1

     *   |-- |-- 6

     *   |-- |-- 8

     *   |-- 5

     * </pre>

     * getIndexOfChild(4, 2) 将返回0

     * getIndexOfChild(4, 5) 将返回1

     * getIndexOfChild(2, 1) 将返回0

     * getIndexOfChild(2, 6) 将返回1

     * getIndexOfChild(2, 8) 将返回2

     */

    public int getIndexOfChild(ForumMessage parent, ForumMessage child);

    //一个节点是否是叶,叶相对枝来说,叶没有子节点了

    public boolean isLeaf(ForumMessage node);

}

DbTreeWalker TreeWalker的一个实现,它是将一个ForumThread下所有帖子的ID从数据库中装入LongTree中。一句LongTree的树形结构遍历核心技术实现ForumThread中的帖子结构的遍历。

LongTree类似之前的Cache类,封装了树形结构遍历的核心算法,在LongTree中建立了3个数组long [] keyschar [] leftChildrenchar [] rightSiblings

上一页 下一页

 
 
标签: 论坛 , Jive , JDO , 系统 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站