📄 distributeseventpropertyhandler.java
字号:
DefaultEventPropertyHandler handler = (DefaultEventPropertyHandler) obj;
handler.init( params );
// Map偵曐帩偟傑偡丅
this.bundles.put(id, handler);
} else if ( obj instanceof TextFileEventPropertyHandler ) {
TextFileEventPropertyHandler handler = (TextFileEventPropertyHandler) obj;
handler.init( params );
// Map偵曐帩偟傑偡丅
this.bundles.put(id, handler);
} else if ( obj instanceof XmlEventPropertyHandler ) {
XmlEventPropertyHandler handler = (XmlEventPropertyHandler) obj;
handler.init( params );
// Map偵曐帩偟傑偡丅
this.bundles.put(id, handler);
}
}
/**
* ApplicationID偺儕僗僩傪庢摼偟傑偡
*
* @param params 弶婜僷儔儊乕僞
*/
private String[] getApplicationIdList(List keys) {
// applicationID偺儕僗僩傪庢摼偟傑偡
HashSet set = new HashSet();
for ( int i = 0; i < keys.size(); i++ ) {
String str = (String)keys.get(i);
String[] paramArray = str.split("[.]");
set.add( getApplications(paramArray) );
}
return (String[]) set.toArray(new String[0]);
}
/**
* ApplicationID偺儕僗僩傪庢摼偟傑偡
*
* @param params 弶婜僷儔儊乕僞
*/
private String getApplications(String[] paramArray) {
String aplid = new String();
int lastpos = 0;
int firstpos = 0;
if (paramArray[0].equals(PARAM_APPLICATION)){
firstpos = 1;
}
if (paramArray[paramArray.length - 1].equals(PARAM_APPLICATION_CLASS)){
lastpos = 1;
} else if (paramArray[paramArray.length - 2].equals(PARAM_APPLICATION_PARAM)
&& (paramArray[paramArray.length - 1].equals(PARAM_DYNAMIC)
|| paramArray[paramArray.length - 1].equals(PARAM_FILE_DIR)
|| paramArray[paramArray.length - 1].equals(PARAM_BUNDLE)) ){
lastpos = 2;
}
for ( int i = firstpos; i < paramArray.length - lastpos; i++ ) {
if ( i == firstpos ) {
aplid += paramArray[i];
} else {
aplid += "." + paramArray[i];
}
}
return aplid;
}
/**
* Handler僋儔僗柤傪庢摼偟傑偡丅
*
* @param applicationId
* @param list
* @param map
* @return
*/
private String getApplicationHandlerClass( String id, List list, Map map ) {
Iterator listite = list.iterator();
String name = new String();
// applicationId偑堦抳偡傞傕偺偩偗庢傝弌偟傑偡
while ( listite.hasNext() ) {
String key = ( String ) listite.next();
// "<applicationID>.class"偺抣傪庢摼偟傑偡丅
if ( key.indexOf( id + "." + PARAM_APPLICATION_CLASS ) != -1 ) {
name = (String) map.get(key);
}
}
return name;
}
/**
* Handler偵堷偒搉偡僷儔儊乕僞傪庢摼偟傑偡丅
*
* @param applicationId
* @param list
* @param map
* @return
*/
private PropertyParam[] getApplicationHandlerProperty( String applicationId, List list, Map map ) {
Iterator iterator = list.iterator();
List keys = new ArrayList();
Map properties = new HashMap();
while ( iterator.hasNext() ) {
String key = ( String ) iterator.next();
// "<applicationID>.param.dynamic"偺抣傪庢摼偟傑偡丅
if ( key.indexOf( applicationId + "." + PARAM_APPLICATION_PARAM + "." + PARAM_DYNAMIC ) != -1 ) {
keys.add(PARAM_DYNAMIC);
properties.put(PARAM_DYNAMIC, (String) map.get( key ));
// "<applicationID>.param.file_dir"偺抣傪庢摼偟傑偡丅
} else if ( key.indexOf( applicationId + "." + PARAM_APPLICATION_PARAM + "." + PARAM_FILE_DIR ) != -1 ) {
keys.add(PARAM_FILE_DIR);
properties.put(PARAM_FILE_DIR, (String) map.get( key ));
// "<applicationID>.param.bundle"偺抣傪庢摼偟傑偡丅
} else if ( key.indexOf( applicationId + "." + PARAM_APPLICATION_PARAM + "." + PARAM_BUNDLE ) != -1 ) {
keys.add(PARAM_BUNDLE);
properties.put(PARAM_BUNDLE, (String) map.get( key ));
}
}
// PropertyParam傪惗惉偟傑偡丅
PropertyParam[] param = new PropertyParam[keys.size()];
for (int i = 0; i < keys.size(); i++ ) {
param[i] = new PropertyParam();
param[i].setName( (String) keys.get(i) );
param[i].setValue( (String) properties.get( keys.get(i) ) );
}
return param;
}
/**
* 僾儘僷僥傿偺摦揑撉傒崬傒偑壜擻偐偳偆偐挷傋傑偡丅
* 偙偺僋儔僗偱偼偙偺儊僜僢僪偼忢偵false傪曉偟傑偡丅
*
* @return 忢偵false
* @throws EventPropertyException 僠僃僢僋帪偵椺奜偑敪惗
* @since 3.2
*/
public boolean isDynamic() throws EventPropertyException {
return false;
}
/**
* 僉乕偵奩摉偡傞僀儀儞僩偺僋儔僗柤傪庢摼偟傑偡丅
* 奩摉偡傞僀儀儞僩偑懚嵼偟側偄応崌丄null傪曉偟傑偡丅
*
* @param application 傾僾儕働乕僔儑儞
* @param key 僀儀儞僩偺僉乕
* @return 僀儀儞僩偺僋儔僗柤
* @throws EventPropertyException 僀儀儞僩偺僋儔僗柤偺庢摼偵幐攕
*/
public String getEventName(String application, String key)
throws EventPropertyException {
String ret = new String();
Object obj = getApplicationBundle( application );
if ( obj instanceof DefaultEventPropertyHandler ) {
DefaultEventPropertyHandler handler = (DefaultEventPropertyHandler) obj;
ret = handler.getEventName( application, key );
} else if ( obj instanceof TextFileEventPropertyHandler ) {
TextFileEventPropertyHandler handler = (TextFileEventPropertyHandler) obj;
ret = handler.getEventName( application, key );
} else if ( obj instanceof XmlEventPropertyHandler ) {
XmlEventPropertyHandler handler = (XmlEventPropertyHandler) obj;
ret = handler.getEventName( application, key );
}
return ret;
}
/**
* 僉乕偵奩摉偡傞僀儀儞僩儕僗僫僼傽僋僩儕偺僋儔僗柤傪庢摼偟傑偡丅
*
* @param application 傾僾儕働乕僔儑儞
* @param key 僀儀儞僩儕僗僫僼傽僋僩儕偺僉乕
* @return 僀儀儞僩儕僗僫僼傽僋僩儕偺僋儔僗柤
* @throws EventPropertyException 僀儀儞僩儕僗僫僼傽僋僩儕偺僋儔僗柤偺庢摼偵幐攕
*/
public String getEventListenerFactoryName(String application, String key)
throws EventPropertyException {
String ret = new String();
Object obj = getApplicationBundle( application );
if ( obj instanceof DefaultEventPropertyHandler ) {
DefaultEventPropertyHandler handler = (DefaultEventPropertyHandler) obj;
ret = handler.getEventListenerFactoryName( application, key );
} else if ( obj instanceof TextFileEventPropertyHandler ) {
TextFileEventPropertyHandler handler = (TextFileEventPropertyHandler) obj;
ret = handler.getEventListenerFactoryName( application, key );
} else if ( obj instanceof XmlEventPropertyHandler ) {
XmlEventPropertyHandler handler = (XmlEventPropertyHandler) obj;
ret = handler.getEventListenerFactoryName( application, key );
}
return ret;
}
/**
* 僉乕偵奩摉偡傞僀儀儞僩儕僗僫僼傽僋僩儕偺弶婜僷儔儊乕僞傪庢摼偟傑偡丅
*
* @param application 傾僾儕働乕僔儑儞
* @param key 僀儀儞僩偺僉乕
* @return 僀儀儞僩儕僗僫僼傽僋僩儕偺弶婜僷儔儊乕僞
* @throws EventPropertyException 僀儀儞僩儕僗僫僼傽僋僩儕偺弶婜僷儔儊乕僞偺庢摼偵幐攕
*/
public EventListenerFactoryParam[] getEventListenerFactoryParams(
String application,
String key)
throws EventPropertyException {
EventListenerFactoryParam[] ret =null;
Object obj = getApplicationBundle( application );
if ( obj instanceof DefaultEventPropertyHandler ) {
DefaultEventPropertyHandler handler = (DefaultEventPropertyHandler) obj;
ret = handler.getEventListenerFactoryParams( application, key );
} else if ( obj instanceof TextFileEventPropertyHandler ) {
TextFileEventPropertyHandler handler = (TextFileEventPropertyHandler) obj;
ret = handler.getEventListenerFactoryParams( application, key );
} else if ( obj instanceof XmlEventPropertyHandler ) {
XmlEventPropertyHandler handler = (XmlEventPropertyHandler) obj;
ret = handler.getEventListenerFactoryParams( application, key );
}
return ret;
}
/**
* 僉乕偵奩摉偡傞僀儀儞僩偺僀儀儞僩僩儕僈忣曬傪偡傋偰庢摼偟傑偡丅
* <CODE>application</CODE>偲<CODE>key</CODE>偱掕媊偝傟傞{@link EventTrigger}傪掕媊偝傟偨弴斣偱僜乕僩偟偨Collection偲偟偰庢摼偟傑偡丅
*
* @param application 傾僾儕働乕僔儑儞
* @param key 僀儀儞僩偺僉乕
* @return 僀儀儞僩僩儕僈忣曬偺僐儗僋僔儑儞
* @throws EventPropertyException 僀儀儞僩僩儕僈忣曬偺庢摼偵幐攕
* @see EventListener
*/
public Collection getEventTriggerInfos(String application, String key)
throws EventPropertyException {
Collection infos = null;
Object obj = getApplicationBundle( application );
if ( obj instanceof DefaultEventPropertyHandler ) {
DefaultEventPropertyHandler handler = (DefaultEventPropertyHandler) obj;
infos = handler.getEventTriggerInfos( application, key );
} else if ( obj instanceof TextFileEventPropertyHandler ) {
TextFileEventPropertyHandler handler = (TextFileEventPropertyHandler) obj;
infos = handler.getEventTriggerInfos( application, key );
} else if ( obj instanceof XmlEventPropertyHandler ) {
XmlEventPropertyHandler handler = (XmlEventPropertyHandler) obj;
infos = handler.getEventTriggerInfos( application, key );
}
return infos;
}
/**
* 僉乕偵奩摉偡傞僀儀儞僩偺僀儀儞僩僩儕僈忣曬傪偡傋偰庢摼偟傑偡丅
* 偙偙偱庢摼偝傟傞僀儀儞僩僩儕僈偼僀儀儞僩偺張棟屻偵幚峴偝傟傑偡丅
* <CODE>application</CODE>偲<CODE>key</CODE>偱掕媊偝傟傞{@link EventTrigger}傪掕媊偝傟偨弴斣偱僜乕僩偟偨Collection偲偟偰庢摼偟傑偡丅
*
* @param application 傾僾儕働乕僔儑儞
* @param key 僀儀儞僩偺僉乕
* @return 僀儀儞僩僩儕僈忣曬偺僐儗僋僔儑儞
* @throws EventPropertyException 僀儀儞僩僩儕僈忣曬偺庢摼偵幐攕
* @see EventListener
*/
public Collection getPostEventTriggerInfos(String application, String key)
throws EventPropertyException {
Collection infos = null;
Object obj = getApplicationBundle( application );
if ( obj instanceof DefaultEventPropertyHandler ) {
DefaultEventPropertyHandler handler = (DefaultEventPropertyHandler) obj;
infos = handler.getPostEventTriggerInfos( application, key );
} else if ( obj instanceof TextFileEventPropertyHandler ) {
TextFileEventPropertyHandler handler = (TextFileEventPropertyHandler) obj;
infos = handler.getPostEventTriggerInfos( application, key );
} else if ( obj instanceof XmlEventPropertyHandler ) {
XmlEventPropertyHandler handler = (XmlEventPropertyHandler) obj;
infos = handler.getPostEventTriggerInfos( application, key );
}
return infos;
}
/**
* 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.separator);
}
}
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 + -