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

📄 xmlconfigfactory.java

📁 简易java框架开源论坛系统,简 易java框架开源论坛系统
💻 JAVA
字号:
package com.easyjf.bbs.business.config;

import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

import org.apache.commons.mail.SimpleEmail;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

import com.easyjf.bbs.business.Mail;
import com.easyjf.bbs.business.WebMessage;

/**
 * 
 * <p>
 * Title:XML格式配置文件信息处理
 * </p>
 * <p>
 * Description:读取XML格式的EasyBBS配置文件信息;
 * </p>
 * <p>
 */

public class XMLConfigFactory {
	private Document doc;

	private static final Logger logger = (Logger) Logger
			.getLogger(XMLConfigFactory.class.getName());

	public XMLConfigFactory() {
		synchronized (XMLConfigFactory.class) {
			InputStream in = null;
			try {
				System.out.println("从easyjf-bbsconfig.xml文件初始化数据源!");
				in = XMLConfigFactory.class
						.getResourceAsStream("/easyjf-bbsconfig.xml");
				SAXReader reader = new SAXReader();
				doc = reader.read(in);
				// System.out.println(doc.asXML());
			} catch (Exception e) {
				System.out.println("查找BBS配置文件文件错误!" + e);
			}

		}
	}

	public XMLConfigFactory(InputStream in) {
		try {
			SAXReader reader = new SAXReader();
			doc = reader.read(in);
			System.out.println(doc.asXML());
		} catch (Exception e) {
			logger.warn("配置文件错误!" + e);
		}

	}

	public void initAdmin(List admins) {
		if (doc == null)
			return;
		admins.clear();
		List nodes = doc.selectNodes("/easyjf-bbsconfig/admins/admin");
		for (int i = 0; i < nodes.size(); i++) {
			Element e = (Element) nodes.get(i);

			admins.add(e.attributeValue("name"));

		}

	}

	public void initSystemMessage(Map message) {
		if (doc == null)
			return;
		message.clear();
		List nodes = doc.selectNodes("/easyjf-bbsconfig/messages/message");
		for (int i = 0; i < nodes.size(); i++) {
			Element e = (Element) nodes.get(i);
			WebMessage m = new WebMessage();
			m.setTitle(e.attributeValue("title"));
			m.setMessage(e.attributeValue("content"));
			m.setFromname(e.attributeValue("from"));
			message.put(e.attributeValue("name"), m);

		}
	}

	public String initTickTime() {
		if (doc == null)
			return null;
		String time = null;
		Node node = doc.selectSingleNode("/easyjf-bbsconfig/others/delay");
		if (node != null)
			time = ((Element) node).getText();
		return time;
	}

	public String initHostName() {
		if (doc == null)
			return null;
		String hostName = null;
		Node node = doc.selectSingleNode("/easyjf-bbsconfig/others/host");
		if (node != null)
			hostName = ((Element) node).getText();
		return hostName;
	}

	public void initMail(Map mails) {
		if (doc == null)
			return;
		List nodes = doc.selectNodes("/easyjf-bbsconfig/mails/mail");
		//System.out.println("mail config step1");
		if (nodes != null) {
			//System.out.println("mail is not null");
			for (int i = 0; i < nodes.size(); i++) {
				Element e = (Element) nodes.get(i);
				//System.out.println("get element" + i);
				Mail mail = createMail(e);
				mails.put(new Integer(i), mail);
				//System.out.println("mail" + i + " config finished");

			}
		}
	}

	private Mail createMail(Element e) {
		//System.out.println("create mail");
		Mail mail = new Mail();
		mail.setCharset("utf-8");
		//System.out.println("mail " + " setcharset");
		try {
			mail.setMsg(e.attributeValue("content"));
			//System.out.println("mail " + " setcontent");
			mail.setFrom(e.attributeValue("from"));
			//System.out.println("mail " + " setfrom");
		} catch (Exception ex) {
			//System.out.println("配置文件错误!" + ex);
		}

		mail.setHost(e.attributeValue("host"));
		//System.out.println("mail " + " sethsotname");
		mail.setSubject(e.attributeValue("subject"));
		//System.out.println("mail " + " setsubject");
		return mail;
	}

	public Document parse(String fileName) throws DocumentException {
		SAXReader reader = new SAXReader();
		File file = new File(fileName);
		Document document = file.exists() ? reader.read(fileName) : null;
		return document;
	}

}

⌨️ 快捷键说明

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