📄 reportconfigmanager.java
字号:
/*
* Created on 2006-6-2
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package net.excel.report.config;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.excel.report.Logger;
import org.dom4j.Element;
/**
* 报表配置信息管理对象,该类管理整个配置文件的所有配置信息,包括数据源配置信息,报表定义配置信息等等。
* 外部需要查询任何用户定义的配置信息都通过该对象来取得。
* @author juny
*/
public class ReportConfigManager {
private static Logger log = Logger.getLogger(ReportConfigManager.class);
/*private static ReportConfigManager config = null;
public static ReportConfigManager getConfigManager(String configFileName){
if(null == config){
config = new ReportConfigManager(configFileName);
}
return config;
}*/
/**
* 构造一个报表配置信息管理对象。
*/
public ReportConfigManager(String configFileName){
dataSources = new HashMap();
reports = new HashMap();
List errors = new ArrayList();
try{
org.dom4j.Document doc = XMLHelper.createSAXReader(configFileName, errors).read( new File(configFileName) );
if(errors.size() > 0){
//reprot error infomation.
log.error("Couldn't load xml file!" + errors.toString());
return;
}
Element hmNode = doc.getRootElement();
Iterator root = hmNode.elementIterator();
String name = "";
while (root.hasNext()){
Element node = (Element)root.next();
name = node.attributeValue("name");
if(node.getName().equals(DataSourceConfig.DATASOURCE)){
DataSourceConfig source = new DataSourceConfig(name);
source.bindDataSource(node);
dataSources.put(name, source);
}else if(node.getName().equals(ReportConfig.REPORT)){
ReportConfig report = new ReportConfig(this);
report.bindReport(node);
reports.put(name, report);
}
}
}catch(Exception e){
log.error(e.getMessage());
}
}
/**
* 根据传入的数据源名称获得该数据源对应的数据源配置信息对象。
* @param dataSourceName 数据源名称
* @return 数据源配置信息对象
*/
public DataSourceConfig getDataSource(String dataSourceName){
return (DataSourceConfig)dataSources.get(dataSourceName);
}
/**
* 根据传入的报表名称获得该报表对应的配置信息对象。
* @param reportName 报表名称
* @return 非空 报表配置对象 <br>
* 否则 返回null
*/
public ReportConfig getReport(String reportName){
return (ReportConfig)reports.get(reportName);
}
/**
* 设置报表模板文件的存放路径。
* @param path
*/
public void setTempletFilePath(String path){
log.info("Templete file path: " + path);
this.templetFilePath = path;
}
/**
* 取得报表模板文件路径信息
* @return
*/
public String getTempletFilePath(){
return this.templetFilePath;
}
public String toString(){
StringBuffer ret = new StringBuffer();
ret.append(" -----------Report system ----------------\n");
ret.append(" dataSource: \n");
ret.append(dataSources.toString());
ret.append(" \n report: \n");
ret.append(reports.toString());
ret.append(" -------------end---------------------------");
return ret.toString();
}
private Map dataSources = null;
private Map reports = null;
private String templetFilePath = "";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -