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

📄 leaf.java

📁 cwbbs 云网论坛源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.redmoon.forum.plugin.witkey;import java.io.*;import java.sql.*;import java.util.*;import cn.js.fan.base.*;import cn.js.fan.cache.jcs.*;import cn.js.fan.db.*;import cn.js.fan.security.*;import cn.js.fan.util.*;import cn.js.fan.web.*;import org.apache.log4j.*;public class Leaf implements Serializable, ITagSupport {    public static final String TYPE_NONE_OPTION_VALUE = "not";    public static String CODE_ROOT = "root";    final String tableName = "plugin_witkey_catalog";    String connname = "";    transient RMCache rmCache = RMCache.getInstance();    transient Logger logger = Logger.getLogger(Leaf.class.getName());    int docId;    public static final int TYPE_LIST = 1;    public static final int TYPE_NONE = 0;    private String code = "", name = "", description = "", parent_code = "-1",            root_code = "";    java.util.Date add_date;    private int orders = 1, layer = 1, child_count = 0, islocked = 0;    final String LOAD = "select code,name,description,parent_code,root_code,orders,layer,child_count,add_date,islocked,type,isHome,doc_id,template_id from " + tableName + " where code=?";    boolean isHome = false;    final String dirCache = "WITKEY_CATALOG";    public String get(String field) {        if (field.equals("code"))            return getCode();        else if (field.equals("name"))            return getName();        else if (field.equals("desc"))            return getDescription();        else if (field.equals("parent_code"))            return getParentCode();        else if (field.equals("root_code"))            return getRootCode();        else if (field.equals("layer"))            return "" + getLayer();        else            return "";    }    public Leaf() {        connname = Global.defaultDB;        if (connname.equals(""))            logger.info("Leaf:DB is empty!");    }    public Leaf(String code) {        connname = Global.defaultDB;        if (connname.equals(""))            logger.info("Leaf:DB is empty!");        this.code = code;        loadFromDb();    }    public void renew() {        if (logger == null) {            logger = Logger.getLogger(Leaf.class.getName());        }        if (rmCache == null) {            rmCache = RMCache.getInstance();        }    }    public void loadFromDb() {        ResultSet rs = null;        Conn conn = new Conn(connname);        try {            PreparedStatement ps = conn.prepareStatement(LOAD);            ps.setString(1, code);            rs = conn.executePreQuery();            if (rs != null && rs.next()) {                this.code = rs.getString(1);                name = rs.getString(2);                description = rs.getString(3);                parent_code = rs.getString(4);                root_code = rs.getString(5);                orders = rs.getInt(6);                layer = rs.getInt(7);                child_count = rs.getInt(8);                try {                    add_date = DateUtil.parse(rs.getString(9));                }                catch (Exception e) {                }                islocked = rs.getInt(10);                type = rs.getInt(11);                isHome = rs.getInt(12) > 0 ? true : false;                docId = rs.getInt(13);                templateId = rs.getInt(14);                loaded = true;            }        } catch (SQLException e) {            logger.error("loadFromDb: " + e.getMessage());        } finally {            if (conn != null) {                conn.close();                conn = null;            }        }    }    public int getDocID() {        return docId;    }    public void setDocID(int d) {        this.docId = d;    }    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }    public String getName() {        return name;    }    public void setRootCode(String c) {        this.root_code = c;    }    public void setType(int t) {        this.type = t;    }    public void setName(String n) {        this.name = n;    }    public void setDescription(String desc) {        this.description = desc;    }    public int getOrders() {        return orders;    }    public boolean getIsHome() {        return isHome;    }    public void setParentCode(String p) {        this.parent_code = p;    }    public String getParentCode() {        return this.parent_code;    }    public void setIsHome(boolean b) {        this.isHome = b;    }    public void setTemplateId(int templateId) {        this.templateId = templateId;    }    public String getRootCode() {        return root_code;    }    public int getLayer() {        return layer;    }    public void setLayer(int layer) {        this.layer = layer;    }    public String getDescription() {        return description;    }    public int getType() {        return type;    }    public int getTemplateId() {        return templateId;    }    public boolean isLoaded() {        return loaded;    }    public int getChildCount() {        return child_count;    }    public Vector getChildren() {        Vector v = new Vector();        String sql = "select code from " + tableName + " where parent_code=? order by orders asc";        Conn conn = new Conn(connname);        ResultSet rs = null;        try {            PreparedStatement pstmt = conn.prepareStatement(sql);            pstmt.setString(1, code);            rs = conn.executePreQuery();            if (rs != null) {                while (rs.next()) {                    String c = rs.getString(1);                                        v.addElement(getLeaf(c));                }            }        } catch (SQLException e) {            logger.error("getChildren: " + e.getMessage());        } finally {            if (conn != null) {                conn.close();                conn = null;            }        }        return v;    }        public Vector getAllChild(Vector vt, Leaf leaf) throws ErrMsgException {        Vector children = leaf.getChildren();        if (children.isEmpty())            return children;        vt.addAll(children);        Iterator ir = children.iterator();        while (ir.hasNext()) {            Leaf lf = (Leaf) ir.next();            getAllChild(vt, lf);        }                return vt;    }    public String toString() {        return "Leaf is " + name;    }    private int type;    public synchronized boolean update() {        String sql = "update " + tableName + " set name=" + StrUtil.sqlstr(name) +                     ",description=" + StrUtil.sqlstr(description) +                     ",type=" + type + ",isHome=" + (isHome ? "1" : "0") + ",doc_id=" + docId + ",template_id=" + templateId +                     ",orders=" + orders + ",layer=" + layer + ",child_count=" + child_count +                     " where code=" + StrUtil.sqlstr(code);                RMConn conn = new RMConn(connname);        int r = 0;        try {            r = conn.executeUpdate(sql);            try {                if (r == 1) {                    removeFromCache(code);                                                            LeafChildrenCacheMgr.remove(parent_code);                }            } catch (Exception e) {                logger.error("update: " + e.getMessage());            }        } catch (SQLException e) {            logger.error("update: " + e.getMessage());        }        boolean re = r == 1 ? true : false;        if (re) {            removeFromCache(code);        }        return re;    }        public synchronized boolean update(String newParentCode) throws ErrMsgException {        if (newParentCode.equals(parent_code))            return false;        if (newParentCode.equals(code))            throw new ErrMsgException("不能将本节点设为父节点!");                Leaf lfparent = getLeaf(newParentCode);

⌨️ 快捷键说明

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