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

📄 ajaxconfigmanager.java

📁 一个简单的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.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 + -