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

📄 textfiledatapropertyhandler.java

📁 intra_mart是日本NDD公司开发的著名企业应用解决方案中间件。集成了J2ee服务器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * TextFileDataPropertyHandler.java
 *
 * Created on 2002/07/08, 15:28
 */

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

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

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

import java.io.IOException;
import java.util.MissingResourceException;

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

/**
 * 巜掕偝傟偨僼傽僀儖偐傜僾儘僷僥傿忣曬傪庢摼偡傞僒乕價僗僾儘僷僥傿僴儞僪儔偱偡丅
 * 僼傽僀儖偺彂幃偼{@link DefaultDataPropertyHandler}偱帵偝傟傞傕偺偲摨偠偱偡丅<BR>
 * 僼傽僀儖偑懚嵼偡傞僨傿儗僋僩儕柤偼{@link #PARAM_FILE_DIR}偱帵偝傟傞僷儔儊乕僞柤偱巜掕偟傑偡丅<BR>
 * {@link #PARAM_DYNAMIC}偱帵偝傟傞僷儔儊乕僞偵true傪巜掕偟偨応崌
 * 傾僾儕働乕僔儑儞幚峴帪偵傕僾儘僷僥傿偺曄峏傪摦揑偵斀塮偝偣傞偙偲偑壜擻偲側傝傑偡偑丄
 * 僷儔儊乕僞偺庢摼帪偵枅夞僼傽僀儖憖嶌傪峴偆偨傔僷僼僅乕儅儞僗偵埆塭嬁傪梌偊傞壜擻惈偑偁傝傑偡丅
 * 偙偺僆僾僔儑儞偼丄奐敪帪傗僨僶僢僌帪偺傛偆偵僷儔儊乕僞傪昿斏偵曄峏偡傞昁梫偑偁傞応崌偺傒true偲偟丄
 * 捠忢偼false偵愝掕偟偰偍偄偰偔偩偝偄丅
 *
 * @author INTRAMART
 * @since 3.2
 */
public class TextFileDataPropertyHandler implements DataPropertyHandler {

    /**
     * 僾儘僷僥傿僼傽僀儖偺僼傽僀儖僷僗偺僷儔儊乕僞柤
     */
    public static final String PARAM_FILE_DIR = "file_dir";

    /**
     * 僾儘僷僥傿僼傽僀儖偺嵞撉傒崬傒壜擻偺僷儔儊乕僞柤
     */
    public static final String PARAM_DYNAMIC = "dynamic";

    /**
     * 僒乕價僗僾儘僷僥傿偺僼傽僀儖偑偁傞僨傿儗僋僩儕
     */    
    private String propertyFileDir;

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

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

	/**
	 * 傾僾儕働乕僔儑儞偛偲偺僒乕價僗儕僜乕僗忣曬偑愝掕偝傟偰偄傞儕僜乕僗僶儞僪儖
	 * 
	 * @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 boolean dynamic;

    /**
     * TextFileDataPropertyHandler傪怴婯偵惗惉偟傑偡丅
     */
    public TextFileDataPropertyHandler() {
        setApplicationBundles(new HashMap());
        setCommonBundle(null);
        setPropertyFileDir(null);
        setDynamic(false);
    }

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

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

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

	/**
	 * 嫟捠偺儕僜乕僗僶儞僪儖傪庢摼偟傑偡丅
	 * 
	 * @return 嫟捠偺儕僜乕僗僶儞僪儖
	 * @throws DataPropertyException 嫟捠偺儕僜乕僗僶儞僪儖庢摼帪偵椺奜偑敪惗
	 * 
	 * @uml.property name="commonBundle"
	 */
	private ResourceBundle getCommonBundle() throws DataPropertyException {
		if (isDynamic()) {
			try {
				return createCommonBundle();
			} catch (Exception e) {
				throw new DataPropertyException(e.getMessage(), e);
			}
		} else {
			return this.commonBundle;
		}
	}


    /**
     * 嫟捠偺儕僜乕僗僶儞僪儖傪惗惉偟傑偡丅
     *
     * @return 嫟捠偺儕僜乕僗僶儞僪儖
     * @throws 嫟捠偺儕僜乕僗僶儞僪儖偺惗惉偵幐攕
     */
    private PropertyResourceBundle createCommonBundle() throws PropertyHandlerException {
        try {
            return createPropertyResourceBundle(getPropertyFileDir() + File.separator + getBundlePrefix() + ".properties");
        } catch (PropertyHandlerException e) {
            throw e;
        } catch (Exception e) {
            throw new PropertyHandlerException(e.getMessage(), e);
        }
    }

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

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

    /** 傾僾儕働乕僔儑儞ID偱巜掕偝傟偨儕僜乕僗僶儞僪儖傪庢摼偟傑偡丅
     *
     * @param application 傾僾儕働乕僔儑儞ID
     * @return 傾僾儕働乕僔儑儞ID偵奩摉偡傞儕僜乕僗僶儞僪儖
     * @throws DataPropertyException 儕僜乕僗僶儞僪儖偺庢摼帪偵椺奜偑敪惗
     */
    private ResourceBundle getResourceBundle(String application) throws DataPropertyException {
        if (isDynamic()) {
            return createResourceBundle(application);
        } else {
            ResourceBundle result = null;
            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 createPropertyResourceBundle(getPropertyFileDir() + File.separator + getPropertyPackage( application ) + getBundlePrefix() + "_" + getApplicationID( application ) + ".properties");
        } catch (Exception e) {
            throw new DataPropertyException(e.getMessage(), e);
        }
    }

    /**
     * 僷僗偱巜掕偝傟偨儕僜乕僗僶儞僪儖傪惗惉偟傑偡丅
     *
     * @param path 巜掕偡傞僼傽僀儖偺僷僗
     * @return 僼傽僀儖偺僷僗偵奩摉偡傞儕僜乕僗僶儞僪儖
     * @throws PropertyHandlerException 儕僜乕僗僶儞僪儖偺庢摼帪偵椺奜偑敪惗
     * @since 3.2
     */
    private PropertyResourceBundle createPropertyResourceBundle(String path) throws PropertyHandlerException {
        FileInputStream fis = null;
        BufferedInputStream bis = null;

⌨️ 快捷键说明

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