menucreator.java
来自「java实现的可配置的工作流引擎,采用jsp+javabean实现」· Java 代码 · 共 94 行
JAVA
94 行
package com.hongsoft.res.menu;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import com.hongsoft.agile.Global;
import com.hongsoft.res.formbean.UserSessionBean;
import com.hongsoft.res.util.PrivMap;
import com.hongsoft.res.util.UserSessionUtil;
public class MenuCreator {
private static MenuCreator instance;
private static final Object lock = new Object();
private static final String className = "com.hongsoft.res.menu.MenuCreator";
// private static Document document;
private MenuCreator() {
}
public static MenuCreator getInstance() {
if (instance == null) {
synchronized (lock) {
if (instance == null) {
try {
Class c = Class.forName(className);
instance = (MenuCreator) c.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
return instance;
}
/**
* 按UserSessionBean中的权限获取XML对象
*
* @return jdom的Document对象
*/
public Document getXmlDocument(UserSessionBean userSessionBean) {
Document doc = getXmlDocument();
Element tree = doc.getRootElement();
List branchList = tree.getChildren("branch");
for (int j = 0; j < branchList.size(); j++) {
Element branchElement = (Element) branchList.get(j);
if ("res".equals(branchElement.getAttributeValue("id"))) { // 系统管理
Element systemManagement = branchElement;
if (!thereIsPriv(userSessionBean, PrivMap.RES_MANAGEMENT))
tree.removeContent(systemManagement);
}
}
return doc;
}
/**
* 判断userSessionBean中的权限中有无privType类型的权限
*
* @param userSessionBean
* @param privType
* @return
*/
public boolean thereIsPriv(UserSessionBean userSessionBean, int privTypeID) {
return UserSessionUtil.thereIsPriv(userSessionBean, privTypeID);
}
/**
* 获取最大的XML对象
*
* @return jdom的Document对象
*/
public Document getXmlDocument() {
Document doc = null;
try {
SAXBuilder builder = new SAXBuilder();
doc = builder.build(Global.getMenuXmlLocation());
} catch (JDOMException ex) {
}
return doc;
}
public static void main(String args[]) {
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?