⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forumbuilder.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的,如有技术问题请与本人联系! */package biz.tbuy.bbs;import biz.tbuy.bbs.bean.BaseBean;import biz.tbuy.common.Utils;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b> * <a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b> * <a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> */public class ForumBuilder extends BaseBean{    private ForumModel _forum;  // 当前讨论区    private AuthForum _authenticator;   // 包含最终对于当前用户的相对权限        public ForumBuilder(ForumModel forum, AuthForum authenticator) {        _forum = forum;        _authenticator = authenticator;    }        /**      * 获取该builder下的forum,如果讨论区不可访问则返回null;     * @return forum or null     */    public ForumModel getForum() {        return _authenticator.isVisible() ? _forum : null;    }        /**     * 获取当前用户相对于该forum的所有权限     * @return authenticator     */    public Authenticator getAuthenticator() {        return _authenticator;    }    /**     * 获取当前builder下的所有主题信息的数量     * @return total     */    public int getTotalTopics() {        if (!isView()) return 0;   // 检查权限        return TopicAction.getTotalTopicsByForumId(_forum.getNum());    }    /**      * 获取<b>一定量</b>的当前builder下的主题信息列表及其相应的最后回复信息,     * 该方法主要用于分页查询,返回类型为List并包含Map. for example:<br>     * topicsObj(0).get("topic") 获得主题TopicModel;<br>     * topicsObj(0).get("lastReply") 获得最后的回复 ReplyModel;<br>     * @param startRow  获取的起始行     * @param pageSize  获取的数量     * @return topicsObj     */    public List<Map> getTopicsObjectForPage(int startRow, int pageSize) {        if (!isView()) return null;   // 检查相应权限        List<Map> list = new ArrayList<Map>();        List<TopicModel> topics = TopicAction.getTopicsForPageByForumId(                startRow, pageSize, _forum.getNum());        for (TopicModel topic : topics) {            ReplyModel reply = ReplyAction.getLastReplyByTopicId(topic.getNum());            Map<String, Object> myMap = new HashMap<String, Object>(2);            myMap.put("topic", topic);            myMap.put("lastReply", reply);            list.add(myMap);        }        return list;    }        /**     * 接收一个来自于其他讨论区的topic,主要用于主题信息的移动     * @param topic 准备接收的topic     * @return true or false     */    public boolean receiveTopic(TopicModel topic) {        if (!isPost()) return false;    // 检查相应权限        topic.setByForum(_forum.getNum());        return TopicAction.updateTopic(topic);    }        // ------------------------------------------------------------ check authenticator        // 检查该专区是否可发表新的主题    private boolean isPost() {        if (!_authenticator.isPost()) {            Utils.addErrorMessage(getBundle(), "对不起,你所选择的讨论区当前不允许发表主题");            return false;        } else {            return true;        }    }    // 检查该专区是否可见    private boolean isView() {        if (!_authenticator.isVisible()) {            Utils.addErrorMessage(getBundle(), "对不起,讨论区不可见!");            return false;        } else {            return true;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -