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

📄 zonebuilder.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 java.util.ArrayList;import java.util.List;/** * @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 ZoneBuilder extends Builder{    private ZoneModel _zone;    // 当前的zone    private AuthZone _authenticator;   // 包含最终对于当前用户的相对权限        public ZoneBuilder() {}        public ZoneBuilder(ZoneModel zone, AuthZone authenticator) {        _zone = zone;        _authenticator = authenticator;    }        /**      * 获取当前builder里的zone, 如果用户无权限,则返回null     * @return zone or null     */    public ZoneModel getZone() {        return _authenticator.isVisible() ? _zone : null;    }    /**     * 获取其下的所有对当前用户可见的讨论区列表,该方法首先判断zone对     * 用户是否是可见的,如果不可见则直接返回null, 否则再检查其内的讨论区     * @return forums or null 所有对当前用户可见的讨论区列表     */    public List<ForumModel> getForums() {        if (_zone == null) return null;        if (!_authenticator.isVisible()) return null;        return getForums(getBBSApplication().getForumsGroup().get(_zone.getNum()));    }        /**     * 获取zone下的topic信息,按topic主键t_num的desc排序,只获取当前用户有权访问的信息,     * 举例,如果用户在该zone下的某一forum中不存在权限,则不会获取该forum下的主题信息     * @param start 起始行     * @param size 获取的最高数量     * @param topics 该zone下的一部分topics信息     */    public List<TopicModel> getTopics(int start, int size) {        List<TopicModel> topics = null;        // 选获取对用户可见的forum的id数组        List<ForumModel> forums = getForums();        if (forums != null && !forums.isEmpty()) {            int[] fid = new int[forums.size()];            for (int i = 0; i < forums.size(); i++) {                fid[i] = forums.get(i).getNum();            }            topics = TopicAction.getTopicByForums(fid, start, size);        }        return topics;    }        /**     * 通过给定的讨论区列表,获取其中对当前用户可见的部分。     * @param forums 所给定的讨论区列表     * @return forums or null对当前用户可见的列表     */    private List<ForumModel> getForums(List<ForumModel> forums) {        if (forums == null || forums.isEmpty()) return null;        List<ForumModel> ffs = new ArrayList<ForumModel>(forums.size());        for (ForumModel forum : forums) {            ForumBuilder fBuilder = ForumFactory.newBuilder(forum.getNum());            if (fBuilder.getForum() != null) {                ffs.add(forum);            }        }        return ffs;    }}

⌨️ 快捷键说明

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