📄 ajaxconfigmanager.java
字号:
package com.easyjf.web.ajax;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.dom4j.Document;
import org.dom4j.Element;
import com.easyjf.util.StringUtils;
import com.easyjf.web.config.ConfigManager;
/**
* Ajax配置信息管理器
* @author 大峡
*
*/
public class AjaxConfigManager implements ConfigManager {
private Set allowNames = new HashSet();// 合法的服务名集合
private Set denyNames = new HashSet();// 限制的服务名集合
private Map services = new HashMap(); // 服务定义集合
private Map convertBeans = new HashMap();// 转换Bean集合
private Map signatures = new HashMap();//
private static AjaxConfigManager singleton=new AjaxConfigManager();
public static AjaxConfigManager getInstance()
{
return singleton;
}
public void parseConfig(Document doc) {
Element serviceRoot = (Element) doc
.selectSingleNode("/easyjf-web/ajax/services");
if (serviceRoot != null) {
parseServices(serviceRoot);
}
List converts=doc.selectNodes("/easyjf-web/ajax/convert");
if(converts!=null)
{
parseConvert(converts);
}
}
public void parseServices(Element serviceRoot) {
String allowName = serviceRoot.attributeValue("allowName");
if (allowName != null) {
String[] names = allowName.split(",");
for (int i = 0; i < names.length; i++) {
allowNames.add(formatRegx(names[i]));
}
}
String denyName = serviceRoot.attributeValue("denyName");
if (denyName != null) {
String[] names = denyName.split(",");
for (int i = 0; i < names.length; i++) {
denyNames.add(formatRegx(names[i]));
}
}
List list = serviceRoot.elements("service");
if (list != null) {
for (int i = 0; i < list.size(); i++) {
Element service = (Element) list.get(i);
RemoteService remote = new RemoteService();
String name = service.attributeValue("name");
if (StringUtils.hasText(name)) {
remote.setName(name);
List includes = service.elements("include");
if (includes != null) {
for (int j = 0; j < includes.size(); j++) {
Element e = (Element) includes.get(j);
remote.addAllowName(formatRegx(e.attributeValue("method")));
}
}
List excludes = service.elements("exclude");
if (excludes != null) {
for (int j = 0; j < excludes.size(); j++) {
Element e = (Element) excludes.get(j);
remote.addDenyName(formatRegx(e.attributeValue("method")));
}
}
allowNames.add(formatRegx(remote.getName()));
services.put(remote.getName(), remote);
}
}
}
}
public void parseConvert(List list) {
for (int i = 0; i < list.size(); i++) {
Element convert = (Element) list.get(i);
String name = convert.attributeValue("name");
RemoteService remote = new RemoteService();
if (StringUtils.hasText(name)) {
remote.setName(name);
List includes = convert.elements("include");
if (includes != null) {
for (int j = 0; j < includes.size(); j++) {
Element e = (Element) includes.get(j);
remote.addAllowName(formatRegx(e.attributeValue("property")));
}
}
List excludes = convert.elements("exclude");
if (excludes != null) {
for (int j = 0; j < excludes.size(); j++) {
Element e = (Element) excludes.get(j);
remote.addDenyName(formatRegx(e.attributeValue("property")));
}
}
}
convertBeans.put(remote.getName(), remote);
}
}
private String formatRegx(String reg)
{
if(!StringUtils.hasText(reg))return "";
String name=reg;
if(name.charAt(0)=='*')name="."+name;
return name;
}
public Set getAllowNames() {
return allowNames;
}
public Map getConvertBeans() {
return convertBeans;
}
public Set getDenyNames() {
return denyNames;
}
public Map getServices() {
return services;
}
public Map getSignatures() {
return signatures;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -