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

📄 ajaxconfigmanager.java

📁 EasyJWeb是基于java技术
💻 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.util.XmlElementUtil;
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) {
		if(doc==null)return;
		Element root=XmlElementUtil.findElement("ajax", doc.getRootElement()); 
		Element serviceRoot =XmlElementUtil.findElement("services",root); 
		if (serviceRoot != null) {
			parseServices(serviceRoot);
		}
		
		List converts=XmlElementUtil.findElements("convert",root); 
		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 =XmlElementUtil.findElements("service",  serviceRoot); 
		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 = XmlElementUtil.findElements("include",  service); 
					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 = XmlElementUtil.findElements("exclude",  service); 
					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 = XmlElementUtil.findElements("include",  convert); 
				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 =XmlElementUtil.findElements("exclude",  convert); 
				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 + -