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

📄 defaultdatapropertyhandler.java

📁 intra_mart是日本NDD公司开发的著名企业应用解决方案中间件。集成了J2ee服务器
💻 JAVA
字号:
/*
 * DefaultDataPropertyHandler.java
 *
 * Created on 2001/10/29, 19:15
 */

package jp.co.intra_mart.framework.base.data;

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

import jp.co.intra_mart.framework.system.property.PropertyParam;

import java.util.MissingResourceException;

import jp.co.intra_mart.framework.system.property.PropertyHandlerException;

/**
 * 僨僼僅儖僩偺僨乕僞僾儘僷僥傿僴儞僪儔偱偡丅
 * <BR>僾儘僷僥傿僼傽僀儖偼傾僾儕働乕僔儑儞枅偵暘妱偝傟傑偡丅偙偺応崌偺僼傽僀儖柤偼乽<I>僾儗僼傿僢僋僗</I>_<I>傾僾儕働乕僔儑儞ID</I>.properties乿偱偡丅傑偨丄傾僾儕働乕僔儑儞偵埶懚偟側偄乽<I>僾儗僼傿僢僋僗</I>.properties乿偑偁傝傑偡丅
 * <BR>僾儘僷僥傿僼傽僀儖偺僾儗僼傿僢僋僗偼{@link jp.co.intra_mart.framework.system.property.PropertyManager#getPropertyHandlerParams(String)}偱僉乕偵{@link DataManager#DATA_PROPERTY_HANDLER_KEY}傪巜掕偟偨偲偒偵庢摼偝傟傞僷儔儊乕僞偺偆偪{@link #DEFAULT_BUNDLE_NAME}偱庢摼偝傟傞傕偺偲側傝傑偡丅
 * 巜掕偟側偐偭偨応崌偺僾儘僷僥傿僼傽僀儖偺僾儗僼傿僢僋僗偼{@link #DEFAULT_BUNDLE_NAME_PARAM}偱帵偝傟傞傕偺偱偡丅
 * <BR>僾儘僷僥傿偺専嶕弴偼丄傾僾儕働乕僔儑儞偛偲偺僾儘僷僥傿僼傽僀儖乽<I>僾儗僼傿僢僋僗</I>_<I>傾僾儕働乕僔儑儞ID</I>.properties乿偑桪愭偝傟傑偡丅奩摉偡傞僾儘僷僥傿偑尒偮偐傜側偄応崌丄堷偒懕偄偰乽<I>僾儗僼傿僢僋僗</I>.properties乿傪専嶕偟傑偡丅
 * <BR>僾儘僷僥傿偺愝掕撪梕偼埲壓偺偲偍傝偱偡丅
 * <TABLE border="1">
 *    <TR>
 *        <TH nowrap>僉乕</TH>
 *        <TH nowrap>撪梕</TH>
 *        <TH nowrap>嫟捠</TH>
 *        <TH nowrap>傾僾儕働乕僔儑儞枅</TH>
 *    </TR>
 *    <TR>
 *        <TD>dao.class.<I>僉乕</I>.<I>愙懕柤</I></TD>
 *        <TD><I>僉乕</I>偲<I>愙懕柤</I>偵懳墳偡傞DAO偺僋儔僗柤</TD>
 *        <TD align="center">亊</TD>
 *        <TD align="center">仜</TD>
 *    </TR>
 *    <TR>
 *        <TD>dao.class.<I>僉乕</I></TD>
 *        <TD><I>僉乕</I>偵懳墳偡傞僨僼僅儖僩偺DAO偺僋儔僗柤</TD>
 *        <TD align="center">亊</TD>
 *        <TD align="center">仜</TD>
 *    </TR>
 *    <TR>
 *        <TD>dao.connector.<I>僉乕</I>.<I>愙懕柤</I></TD>
 *        <TD><I>僉乕</I>偲<I>愙懕柤</I>偵懳墳偡傞DAO偺僨乕僞僐僱僋僞柤</TD>
 *        <TD align="center">亊</TD>
 *        <TD align="center">仜</TD>
 *    </TR>
 *    <TR>
 *        <TD>dao.connector.<I>僉乕</I></TD>
 *        <TD><I>僉乕</I>偵懳墳偡傞僨僼僅儖僩偺DAO偺僨乕僞僐僱僋僞柤</TD>
 *        <TD align="center">亊</TD>
 *        <TD align="center">仜</TD>
 *    </TR>
 *    <TR>
 *        <TD>connector.class.<I>僨乕僞僐僱僋僞柤</I></TD>
 *        <TD><I>僨乕僞僐僱僋僞柤</I>偵懳墳偡傞僨乕僞僐僱僋僞偺僋儔僗柤</TD>
 *        <TD align="center">仜</TD>
 *        <TD align="center">亊</TD>
 *    </TR>
 *    <TR>
 *        <TD>connector.resource.<I>僨乕僞僐僱僋僞柤</I></TD>
 *        <TD><I>僨乕僞僐僱僋僞柤</I>偵懳墳偡傞僨乕僞僐僱僋僞偺儕僜乕僗柤</TD>
 *        <TD align="center">仜</TD>
 *        <TD align="center">亊</TD>
 *    </TR>
 *    <TR>
 *        <TD>resource.param.<I>儕僜乕僗柤</I>.<I>僷儔儊乕僞柤</I></TD>
 *        <TD><I>儕僜乕僗柤</I>偵懳墳偡傞儕僜乕僗偺僷儔儊乕僞偺抣</TD>
 *        <TD align="center">仜</TD>
 *        <TD align="center">亊</TD>
 *    </TR>
 * </TABLE>
 *
 * @author INTRAMART
 * @version 1.0
 */
public class DefaultDataPropertyHandler implements DataPropertyHandler {

    /**
     * 僨僼僅儖僩偺儕僜乕僗僶儞僪儖柤偺僾儗僼傿僢僋僗
     */
    public static final String DEFAULT_BUNDLE_NAME = "DataConfig";

    /**
     * 儕僜乕僗僶儞僪儖柤偺僷儔儊乕僞柤
     */
    public static final String DEFAULT_BUNDLE_NAME_PARAM = "bundle";

    /**
     * 僨乕僞儕僜乕僗忣曬偑愝掕偝傟偰偄傞儕僜乕僗僶儞僪儖偺僾儗僼傿僢僋僗
     */
    private String bundlePrefix;

	/**
	 * 傾僾儕働乕僔儑儞偛偲偺僨乕僞儕僜乕僗忣曬偑愝掕偝傟偰偄傞儕僜乕僗僶儞僪儖
	 * 
	 * @uml.property name="bundles"
	 * @uml.associationEnd 
	 * @uml.property name="bundles" multiplicity="(0 1)" qualifier="application:java.lang.String
	 * result:java.util.ResourceBundle"
	 */
	private Map bundles;


    /**
     * 嫟捠偺僨乕僞儕僜乕僗忣曬偑愝掕偝傟偰偄傞儕僜乕僗僶儞僪儖
     */
    private ResourceBundle commonBundle;

    /**
     * DefaultDataPropertyHandler傪怴婯偵惗惉偟傑偡丅
     */
    public DefaultDataPropertyHandler() {
        setBundlePrefix(null);
        setApplicationBundles(new HashMap());
        setCommonBundle(null);
    }

	/**
	 * 儕僜乕僗僶儞僪儖偺僾儗僼傿僢僋僗傪愝掕偟傑偡丅
	 * 
	 * @param bundlePrefix 儕僜乕僗僶儞僪儖偺僾儗僼傿僢僋僗
	 * @since 3.2
	 * 
	 * @uml.property name="bundlePrefix"
	 */
	private void setBundlePrefix(String bundlePrefix) {
		this.bundlePrefix = bundlePrefix;
	}

	/**
	 * 儕僜乕僗僶儞僪儖偺僾儗僼傿僢僋僗傪庢摼偟傑偡丅
	 * 
	 * @return 儕僜乕僗僶儞僪儖偺僾儗僼傿僢僋僗
	 * @since 3.2
	 * 
	 * @uml.property name="bundlePrefix"
	 */
	private String getBundlePrefix() {
		return this.bundlePrefix;
	}


    /**
     * 傾僾儕働乕僔儑儞偛偲偺儕僜乕僗僶儞僪儖偺廤崌傪愝掕偟傑偡丅
     *
     * @param applicationBundles 傾僾儕働乕僔儑儞偛偲偺儕僜乕僗僶儞僪儖偺廤崌
     * @since 3.2
     */
    private void setApplicationBundles(Map applicationBundles) {
        this.bundles = applicationBundles;
    }

    /**
     * 傾僾儕働乕僔儑儞偛偲偺儕僜乕僗僶儞僪儖偺廤崌傪庢摼偟傑偡丅
     *
     * @return 傾僾儕働乕僔儑儞偛偲偺儕僜乕僗僶儞僪儖偺廤崌
     * @since 3.2
     */
    private Map getApplicationBundles() {
        return this.bundles;
    }

	/**
	 * 嫟捠偺儕僜乕僗僶儞僪儖傪愝掕偟傑偡丅
	 * 
	 * @param commonBundle 嫟捠偺儕僜乕僗僶儞僪儖
	 * @since 3.2
	 * 
	 * @uml.property name="commonBundle"
	 */
	private void setCommonBundle(ResourceBundle commonBundle) {
		this.commonBundle = commonBundle;
	}

	/**
	 * 嫟捠偺儕僜乕僗僶儞僪儖傪庢摼偟傑偡丅
	 * 
	 * @return 嫟捠偺儕僜乕僗僶儞僪儖
	 * @throws DataPropertyException 嫟捠偺儕僜乕僗僶儞僪儖庢摼帪偵椺奜偑敪惗
	 * @since 3.2
	 * 
	 * @uml.property name="commonBundle"
	 */
	private ResourceBundle getCommonBundle() throws DataPropertyException {
		return this.commonBundle;
	}

    /**
     * 傾僾儕働乕僔儑儞ID偱巜掕偝傟偨儕僜乕僗僶儞僪儖傪庢摼偟傑偡丅
     *
     * @param application 傾僾儕働乕僔儑儞ID
     * @return 傾僾儕働乕僔儑儞ID偵奩摉偡傞儕僜乕僗僶儞僪儖
     * @throws DataPropertyException 儕僜乕僗僶儞僪儖偺庢摼帪偵椺奜偑敪惗
     * @since 3.2
     */
    private ResourceBundle getResourceBundle(String application)
        throws DataPropertyException {
        ResourceBundle result;

        synchronized (this.bundles) {
            result = (ResourceBundle)getApplicationBundles().get(application);
            if (result == null) {
                result = createResourceBundle(application);
                getApplicationBundles().put(application, result);
            }
        }

        return result;
    }

    /**
     * 傾僾儕働乕僔儑儞ID偱巜掕偝傟偨儕僜乕僗僶儞僪儖傪惗惉偟傑偡丅
     *
     * @param application 傾僾儕働乕僔儑儞ID
     * @return 傾僾儕働乕僔儑儞ID偵奩摉偡傞儕僜乕僗僶儞僪儖
     * @throws DataPropertyException 儕僜乕僗僶儞僪儖偺庢摼帪偵椺奜偑敪惗
     * @since 3.2
     */
    private ResourceBundle createResourceBundle(String application)
        throws DataPropertyException {
        try {
            return ResourceBundle.getBundle(
                getPropertyPackage( application ) + getBundlePrefix() + "_" + this.getApplicationID( application ));
        } catch (MissingResourceException e) {
            throw new DataPropertyException(e.getMessage(), e);
        }
    }

    /**
     * 僾儘僷僥傿僴儞僪儔傪弶婜壔偟傑偡丅
     *
     * @param params 弶婜僷儔儊乕僞
     * @throws PropertyHandlerException 僾儘僷僥傿僴儞僪儔偺弶婜壔帪偵椺奜偑敪惗
     */
    public void init(PropertyParam[] params) throws PropertyHandlerException {
        String bundleName = null;

        if (params != null) {
            for (int i = 0; i < params.length; i++) {
                if (params[i].getName().equals(DEFAULT_BUNDLE_NAME_PARAM)) {
                    bundleName = params[i].getValue();
                }
            }
        }
        if (bundleName == null) {
            bundleName = DEFAULT_BUNDLE_NAME;
        }

        setBundlePrefix(bundleName);

        try {
            setCommonBundle(ResourceBundle.getBundle(bundleName));
        } catch (MissingResourceException e) {
            throw new PropertyHandlerException(e.getMessage(), e);
        }
    }

    /**
     * 僾儘僷僥傿偺摦揑撉傒崬傒偑壜擻偐偳偆偐挷傋傑偡丅
     * 偙偺僋儔僗偱偼偙偺儊僜僢僪偼忢偵false傪曉偟傑偡丅
     *
     * @return 忢偵false
     * @throws DataPropertyException 僠僃僢僋帪偵椺奜偑敪惗
     * @since 3.2
     */
    public boolean isDynamic() throws DataPropertyException {
        return false;
    }

    /**
     * DAO偺僋儔僗柤傪庢摼偟傑偡丅
     * <CODE>application</CODE>丄<CODE>key</CODE>偲<CODE>connect</CODE>偱巜掕偝傟偨DAO偺僋儔僗柤傪庢摼偟傑偡丅
     *
     * @param application 傾僾儕働乕僔儑儞ID
     * @param key DAO偺僉乕
     * @param connect 愙懕忣曬
     * @return DAO偺僋儔僗柤
     * @throws DataPropertyException DAO偺僋儔僗柤偺庢摼偵幐攕
     */
    public String getDAOName(String application, String key, String connect)
        throws DataPropertyException {
        return ResourceBundleDataPropertyHandlerUtil.getDAOName(
            getResourceBundle(application),
            application,
            key,
            connect);
    }

    /**
     * DAO偵懳偡傞僨乕僞僐僱僋僞柤傪庢摼偟傑偡丅
     * <CODE>application</CODE>丄<CODE>key</CODE>偲<CODE>connect</CODE>偱巜掕偝傟偨DAO偺僨乕僞僐僱僋僞柤傪庢摼偟傑偡丅
     * 懳墳偡傞僨乕僞僐僱僋僞柤偑巜掕偝傟偰偄側偄応崌丄null偑曉傝傑偡丅
     *
     * @param application 傾僾儕働乕僔儑儞ID
     * @param key DAO偺僉乕
     * @param connect 愙懕忣曬
     * @return 僨乕僞僐僱僋僞偺柤慜
     * @throws DataPropertyException 僨乕僞僐僱僋僞柤偺庢摼帪偵椺奜偑敪惗
     */
    public String getConnectorName(
        String application,
        String key,
        String connect)
        throws DataPropertyException {
        return ResourceBundleDataPropertyHandlerUtil.getConnectorName(
            getResourceBundle(application),
            application,
            key,
            connect);
    }

    /**
     * 僨乕僞僐僱僋僞偺僋儔僗柤傪庢摼偟傑偡丅
     * <CODE>application</CODE>丄<CODE>key</CODE>偲<CODE>connect</CODE>偱巜掕偝傟偨僨乕僞僐僱僋僞偺僋儔僗柤傪庢摼偟傑偡丅
     *
     * @param connectorName 僨乕僞僐僱僋僞柤
     * @return 僨乕僞僐僱僋僞偺僋儔僗柤
     * @throws DataPropertyException 僨乕僞僐僱僋僞偺僋儔僗柤偺庢摼偵幐攕
     */
    public String getConnectorClassName(String connectorName)
        throws DataPropertyException {
        return ResourceBundleDataPropertyHandlerUtil.getConnectorClassName(
            getCommonBundle(),
            connectorName);
    }

    /**
     * 僨乕僞僐僱僋僞偺儕僜乕僗柤傪庢摼偟傑偡丅
     * <CODE>application</CODE>丄<CODE>key</CODE>偲<CODE>connect</CODE>偱巜掕偝傟偨僨乕僞僐僱僋僞偺儕僜乕僗柤傪庢摼偟傑偡丅
     * 懳墳偡傞儕僜乕僗柤偑側偄応崌丄null傪曉偟傑偡丅
     *
     * @param connectorName 僨乕僞僐僱僋僞柤
     * @return 僨乕僞僐僱僋僞偺儕僜乕僗柤
     * @throws DataPropertyException 僨乕僞僐僱僋僞偺儕僜乕僗柤偺庢摼帪偵椺奜偑敪惗
     */
    public String getConnectorResource(String connectorName)
        throws DataPropertyException {
        return ResourceBundleDataPropertyHandlerUtil.getConnectorResource(
            getCommonBundle(),
            connectorName);
    }

    /**
     * 儕僜乕僗偺僷儔儊乕僞傪庢摼偟傑偡丅
     * name偱巜掕偝傟偨儕僜乕僗偺僷儔儊乕僞傪庢摼偟傑偡丅
     *
     * @param name 儕僜乕僗柤
     * @return 儕僜乕僗偺僷儔儊乕僞
     * @throws DataPropertyException 儕僜乕僗偺僷儔儊乕僞偺庢摼帪偵椺奜偑敪惗
     */
    public ResourceParam[] getResourceParams(String name)
        throws DataPropertyException {
        return ResourceBundleDataPropertyHandlerUtil.getResourceParams(
            getCommonBundle(),
            name);
    }
    
    /**
	 * properties僼傽僀儖偑懚嵼偡傞僷僢働乕僕傪庢摼偟傑偡丅
	 * 僷僢働乕僕壔偝傟偰偄側偄応崌偼嬻暥帤傪曉媝偟傑偡丅
	 *  
	 * @param application
	 * @return 僷僢働乕僕
     * @since 2004.09.13
	 */
    private String getPropertyPackage( String application ) {
        String[] paramAry = application.split("[.]");
		StringBuffer buf = new StringBuffer();
		if ( paramAry.length > 1 ) {
			for ( int i = 0; i < paramAry.length - 1; i++ ) {
			    buf.append(paramAry[i]);
			    buf.append(File.separatorChar);
			}
		}
        return buf.toString();
	}

    /**
	 * 傾僾儕働乕僔儑儞ID傪庢摼偟傑偡丅
	 * 
	 * @param application
	 * @return 傾僾儕働乕僔儑儞ID
     * @since 2004.09.13
	 */
    private String getApplicationID( String application ) {
        String[] paramAry = application.split("[.]");
	    String id = paramAry[paramAry.length - 1];
        return id;
	}

}

⌨️ 快捷键说明

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