📄 propertyconfigmodelproducer.java
字号:
/*
* ServiceConfigModelProducer.java
*
* Created on 2004/01/12, 14:15
*/
package jp.co.intra_mart.framework.system.property;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.ParserConfigurationException;
import jp.co.intra_mart.framework.util.XMLDocumentProducer;
import jp.co.intra_mart.framework.util.XMLNode;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
/**
* 僾儘僷僥傿僐儞僼傿僌儌僨儖傪嶌惉偡傞僋儔僗偱偡丅
*
* @author INTRAMART
* @version 1.0
*/
class PropertyConfigModelProducer {
/**
* PropertyConfigModel傪庢摼偟傑偡丅
* @param fileName XML儕僜乕僗柤
* @return ServiceConfigModel
* @throws IllegalArgumentException
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
*/
protected PropertyConfigModel createPropertyConfigModel(String fileName)
throws
IllegalArgumentException,
ParserConfigurationException,
SAXException,
IOException,
Exception {
PropertyConfigModel model = null;
XMLDocumentProducer producer = new XMLDocumentProducer();
Document doc = producer.getDocument(fileName);
Node node = producer.getRoot(doc);
XMLNode root = new XMLNode(node);
model = getPropertyConfigModel(root);
return model;
}
/**
* PropertyConfigModel傪庢摼偟傑偡丅
* @param rootNode
* @return PropertyConfigModel
*/
private PropertyConfigModel getPropertyConfigModel(XMLNode node) {
PropertyConfigModel model = new PropertyConfigModel();
Map map = new HashMap();
map.put(PropertyConfigModel.SERVICE_ID, getPropertyModel(node, PropertyConfigModel.SERVICE_ID));
map.put(PropertyConfigModel.EVENT_ID, getPropertyModel(node, PropertyConfigModel.EVENT_ID));
map.put(PropertyConfigModel.DATA_ID, getPropertyModel(node, PropertyConfigModel.DATA_ID));
map.put(PropertyConfigModel.SESSION_ID, getPropertyModel(node, PropertyConfigModel.SESSION_ID));
map.put(PropertyConfigModel.MESSAGE_ID, getPropertyModel(node, PropertyConfigModel.MESSAGE_ID));
map.put(PropertyConfigModel.I18NMESSAGE_ID, getPropertyModel(node, PropertyConfigModel.I18NMESSAGE_ID));
map.put(PropertyConfigModel.LOG_ID, getPropertyModel(node, PropertyConfigModel.LOG_ID));
model.setProperties(map);
return model;
}
/**
* 僾儘僷僥傿儌僨儖傪庢摼偟傑偡
*
* @param node 僲乕僪
* @param propId 僲乕僪
* @return 僾儘僷僥傿儌僨儖
*/
private PropertyModel getPropertyModel(XMLNode node, String propId) {
PropertyModel model = new PropertyModel();
XMLNode subNode = node.lookup(propId);
if (subNode != null) {
String handler = subNode.getString(PropertyConfigModel.HANDLER_ID);
model.setPropertyHandlerName(handler);
List list = getInitParamProperties(subNode);
PropertyHandlerParam[] param = new PropertyHandlerParam[list.size()];
for ( int i = 0; i < list.size(); i++ ) {
param[i] = (PropertyHandlerParam) list.get(i);
}
model.setPropertyHandlerParams(param);
}
return model;
}
/**
* 弶婜壔僷儔儊乕僞偺僾儘僷僥傿傪庢摼偟傑偡丅
* @param node
* @return
*/
private List getInitParamProperties(XMLNode node) {
XMLNode[] paramNode = node.select(PropertyModel.INIT_ID);
List list = new ArrayList();
for ( int i = 0; i < paramNode.length; i++ ) {
PropertyHandlerParam param = new PropertyHandlerParam();
param.setName( paramNode[i].getString(PropertyModel.PARAM_NAME_ID) );
param.setValue( paramNode[i].getString(PropertyModel.PARAM_VALUE_ID) );
list.add(param);
}
return list;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -