📄 textfileeventpropertyhandler.java
字号:
/*
* TextFileEventPropertyHandler.java
*
* Created on 2002/07/08, 14:27
*/
package jp.co.intra_mart.framework.base.event;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.Collection;
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 DefaultEventPropertyHandler}偱帵偝傟傞傕偺偲摨偠偱偡丅<BR>
* 僼傽僀儖偑懚嵼偡傞僨傿儗僋僩儕柤偼{@link #PARAM_FILE_DIR}偱帵偝傟傞僷儔儊乕僞柤偱巜掕偟傑偡丅<BR>
* {@link #PARAM_DYNAMIC}偱帵偝傟傞僷儔儊乕僞偵true傪巜掕偟偨応崌
* 傾僾儕働乕僔儑儞幚峴帪偵傕僾儘僷僥傿偺曄峏傪摦揑偵斀塮偝偣傞偙偲偑壜擻偲側傝傑偡偑丄
* 僷儔儊乕僞偺庢摼帪偵枅夞僼傽僀儖憖嶌傪峴偆偨傔僷僼僅乕儅儞僗偵埆塭嬁傪梌偊傞壜擻惈偑偁傝傑偡丅
* 偙偺僆僾僔儑儞偼丄奐敪帪傗僨僶僢僌帪偺傛偆偵僷儔儊乕僞傪昿斏偵曄峏偡傞昁梫偑偁傞応崌偺傒true偲偟丄
* 捠忢偼false偵愝掕偟偰偍偄偰偔偩偝偄丅
*
* @author INTRAMART
* @since 3.2
*/
public class TextFileEventPropertyHandler implements EventPropertyHandler {
/**
* 僾儘僷僥傿僼傽僀儖偺僼傽僀儖僷僗偺僷儔儊乕僞柤
*/
public static final String PARAM_FILE_DIR = "file_dir";
/**
* 僾儘僷僥傿僼傽僀儖偺嵞撉傒崬傒壜擻偺僷儔儊乕僞柤
*/
public static final String PARAM_DYNAMIC = "dynamic";
/**
* 僀儀儞僩儕僜乕僗忣曬偑愝掕偝傟偰偄傞儕僜乕僗僶儞僪儖偺僾儗僼傿僢僋僗
*/
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;
/**
* 僀儀儞僩僩儕僈忣曬偺儅僢僾
*
* @uml.property name="eventTriggers"
* @uml.associationEnd
* @uml.property name="eventTriggers" multiplicity="(0 1)" qualifier="application:java.lang.String
* infos:java.util.Collection"
*/
private Map eventTriggers;
/**
* 屻張棟梡僀儀儞僩僩儕僈忣曬偺儅僢僾
*
* @since 4.3
*
* @uml.property name="postEventTriggers"
* @uml.associationEnd
* @uml.property name="postEventTriggers" multiplicity="(0 1)" qualifier="application:java.lang.String
* infos:java.util.Collection"
*/
private Map postEventTriggers;
/**
* 僒乕價僗僾儘僷僥傿偺僼傽僀儖偑偁傞僨傿儗僋僩儕
*/
private String propertyFileDir;
/**
* 嵞愝掕壜擻僼儔僌
*/
private boolean dynamic;
/**
* TextFileEventPropertyHandler傪怴婯偵惗惉偟傑偡丅
*/
public TextFileEventPropertyHandler() {
setBundlePrefix(null);
setApplicationBundles(new HashMap());
setEventTriggers(new HashMap());
setPostEventTriggers(new HashMap());
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 applicationBundles 傾僾儕働乕僔儑儞偛偲偺儕僜乕僗僶儞僪儖偺廤崌
*/
private void setApplicationBundles(Map applicationBundles) {
this.bundles = applicationBundles;
}
/**
* 傾僾儕働乕僔儑儞偛偲偺儕僜乕僗僶儞僪儖偺廤崌傪庢摼偟傑偡丅
*
* @return 傾僾儕働乕僔儑儞偛偲偺儕僜乕僗僶儞僪儖偺廤崌
*/
private Map getApplicationBundles() {
return this.bundles;
}
/**
* 傾僾儕働乕僔儑儞ID偱巜掕偝傟偨儕僜乕僗僶儞僪儖傪庢摼偟傑偡丅
*
* @param application 傾僾儕働乕僔儑儞ID
* @return 傾僾儕働乕僔儑儞ID偵奩摉偡傞儕僜乕僗僶儞僪儖
* @throws EventPropertyException 儕僜乕僗僶儞僪儖偺庢摼帪偵椺奜偑敪惗
*/
private ResourceBundle getResourceBundle(String application)
throws EventPropertyException {
ResourceBundle result;
if (isDynamic()) {
result = createResourceBundle(application);
} else {
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 EventPropertyException 儕僜乕僗僶儞僪儖偺庢摼帪偵椺奜偑敪惗
*/
private ResourceBundle createResourceBundle(String application)
throws EventPropertyException {
try {
String path = getPropertyPackage( application );
String applicationId = getApplicationID( application );
return createPropertyResourceBundle(
getPropertyFileDir()
+ File.separator
+ path
+ getBundlePrefix()
+ "_"
+ applicationId
+ ".properties");
} catch (Exception e) {
throw new EventPropertyException(e.getMessage(), e);
}
}
/**
* 僷僗偱巜掕偝傟偨儕僜乕僗僶儞僪儖傪惗惉偟傑偡丅
*
* @param path 巜掕偡傞僼傽僀儖偺僷僗
* @return 僼傽僀儖偺僷僗偵奩摉偡傞儕僜乕僗僶儞僪儖
* @throws PropertyHandlerException 儕僜乕僗僶儞僪儖偺庢摼帪偵椺奜偑敪惗
* @since 3.2
*/
private PropertyResourceBundle createPropertyResourceBundle(String path)
throws PropertyHandlerException {
FileInputStream fis = null;
BufferedInputStream bis = null;
PropertyResourceBundle resultBundle = null;
// 僼傽僀儖偺僆乕僾儞
try {
fis = new FileInputStream(path);
} catch (IOException e) {
throw new PropertyHandlerException(e.getMessage(), e);
}
// 僶僢僼傽偺僆乕僾儞
bis = new BufferedInputStream(fis);
// 僶儞僪儖偺庢摼
try {
resultBundle = new PropertyResourceBundle(bis);
} catch (IOException e) {
throw new PropertyHandlerException(e.getMessage(), e);
} finally {
try {
bis.close();
} catch (IOException ex) {
}
}
return resultBundle;
}
/**
* 僀儀儞僩僩儕僈忣曬偺儅僢僾傪愝掕偟傑偡丅
*
* @param eventTriggers 僀儀儞僩僩儕僈忣曬偺儅僢僾
*
* @uml.property name="eventTriggers"
*/
private void setEventTriggers(Map eventTriggers) {
this.eventTriggers = eventTriggers;
}
/**
* 僀儀儞僩僩儕僈忣曬偺儅僢僾傪庢摼偟傑偡丅
*
* @return 僀儀儞僩僩儕僈忣曬偺儅僢僾
*
* @uml.property name="eventTriggers"
*/
private Map getEventTriggers() {
return this.eventTriggers;
}
/**
* 屻張棟梡偺僀儀儞僩僩儕僈忣曬偺儅僢僾傪愝掕偟傑偡丅
*
* @param eventTriggers 僀儀儞僩僩儕僈忣曬偺儅僢僾
* @since 4.3
*
* @uml.property name="postEventTriggers"
*/
private void setPostEventTriggers(Map eventTriggers) {
this.postEventTriggers = eventTriggers;
}
/**
* 屻張棟梡偺僀儀儞僩僩儕僈忣曬偺儅僢僾傪庢摼偟傑偡丅
*
* @return 僀儀儞僩僩儕僈忣曬偺儅僢僾
* @since 4.3
*
* @uml.property name="postEventTriggers"
*/
private Map getPostEventTriggers() {
return this.postEventTriggers;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -