package com.bris.config;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
*
* <p>
* Description:
* </p>
*
* @Author changkongfei
* @Date [2011-8-19]
* @Version V1.0
* @修改记录 <pre>
* 版本号 修改人 修改时间 修改内容描述
* ----------------------------------------
* V1.0 常孔飞 2010-7-18
*
* </pre>
*/
public class ExcelConfigManager {
private String configName = "ExcelToPOJO.xml";
private SAXReader saxReader;
private Document doc;
private Element root;
/**
* 构造函数 初始化ExcelConfigManager,读取XML配置文件。
*/
public ExcelConfigManager() {
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(configName);
saxReader = new SAXReader();
try {
doc = saxReader.read(in);
} catch (DocumentException e) {
e.printStackTrace();
}
root = doc.getRootElement();
}
/**
* getModelElement 方法描述: 根据modelName取得该类的一个Element
* 逻辑描述: 从XMl配置文件的根节点root中遍历比较,取出和modelName相同的子节点
* @param modelName 传入的model名字
* @return 返回该类的一个Element
* @since Ver 1.00
*/
public Element getModelElement(String modelName) {
List list = root.elements();
Element model = null;
Element returnModel = null;
for (Iterator it = list.iterator(); it.hasNext();) {
model = (Element) it.next();
if (model.attributeValue("id").equals(modelName)) {
returnModel = model;
break;
}
}
return returnModel;
}
/**
* getModel 方法描述: 根据modelName取得该类配置的一个对象 逻辑描述:
* @param modelName 传入的model名字
* @param flag 暂时没用
* @return 返回一个配置的model对象
* @since Ver 1.00
*/
public ReturnConfig getModel(String modelName, String flag) {
Element model = this.getModelElement(modelName);
ReturnConfig result = new ReturnConfig();
if (model != null) {
result.setClassName(model
.attributeValue(XmlConfigConstant.MODEL_CLASS));
result.setPropertyMap(this.getPropertyMap(model));
}
return result;
}
/**
* getPropertyMap 方法描述: 取得model的属性列表 逻辑描述:
* @param model
* @return
* @since Ver 1.00
*/
public Map<String, PropertyElement> getPropertyMap(Element model) {
Map<String, PropertyElement> propertyMap = new HashMap<String, PropertyElement>();
List list = model.elements();
Element property = null;
for (Iterator it = list.iterator(); it.hasNext();) {
property = (Element) it.next();
PropertyElement modelProperty = new PropertyElement();
modelProperty.setName(property
.attributeValue(XmlConfigConstant.PROPERTY_NAME));
modelProperty.setCloumn(property
.attributeValue(XmlConfigConstant.PROPERTY_CLOUMN));
modelProperty
.setExcelTitleName(property
.attributeValue(XmlConfigConstant.PROPERTY_EXCEL_TITLE_NAME));
modelProperty.setDataType(property
.attributeValue(XmlConfigConstant.PROPERTY_DATA_TYPE));
propertyMap.put(modelProperty.getExcelTitleName(), modelProperty);
}
return propertyMap;
}
// public static void main(String[] args) {
// ExcelConfigManager test = new ExcelConfigManager();
// test.getModelElement("student");
// }
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
excelToPOJO.rar (27个子文件)
ExcelToPOJO.xml 499B
excelToPOJO
bin
com
bris
config
XmlConfigConstant.class 624B
ExcelConfigManager.class 4KB
ReturnConfig.class 876B
PropertyElement.class 1KB
model
Student.class 1KB
test
MyTask.class 749B
ExcelTest.class 1KB
A.class 1KB
MyTest.class 2KB
MD5Util.class 4KB
util
ExcelToPOJO.class 3KB
.settings
org.eclipse.jdt.core.prefs 629B
src
com
bris
config
ExcelConfigManager.java 3KB
XmlConfigConstant.java 818B
ReturnConfig.java 574B
PropertyElement.java 1KB
model
Student.java 1KB
test
A.java 1KB
ExcelTest.java 1KB
MyTask.java 311B
MyTest.java 1KB
MD5Util.java 2KB
util
ExcelToPOJO.java 3KB
.project 387B
.classpath 449B
student.xls 10KB
共 27 条
- 1
changfei008
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页