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

📄 propertyconfigmodelproducer.java

📁 intra_mart是日本NDD公司开发的著名企业应用解决方案中间件。集成了J2ee服务器
💻 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 + -