Files
elink-online-common/src/main/java/com/eactive/eai/inbound/action/RestDataAdapterGroupParseRequestAction.java
T
Rinjae aacc1a389e init
2025-09-05 18:57:45 +09:00

79 lines
2.9 KiB
Java

package com.eactive.eai.inbound.action;
import com.eactive.eai.adapter.AdapterGroupVO;
import com.eactive.eai.adapter.AdapterManager;
import com.eactive.eai.common.exception.ExceptionUtil;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.common.util.MessageKeyExtractor;
/**
* 1. 기능 : Rest Url 추출 용
* 2. 처리 개요 :
* - 어뎁터의 업무그룹코드를 키값앞에 추가한다.
* - MessageKeyExtractor를 통해 Adapter별 추출 Rule에 따라 메시지를 구분할 수 있는 키값을 추출한다.
* 3. 주의사항
*
* @author :
* @version : v 1.0.0
* @see :
* @since :
*/
public class RestDataAdapterGroupParseRequestAction extends RequestActionSupport
{
/**
* 1. 기능 : Inbound Adapter를 통해 전달받은 비표준메시지에서 표준메시지를 생성하기 위한 키값을 추출
* 2. 처리 개요 :
* - MessageKeyExtractor를 통해 Adapter별 추출 Rule에 따라 메시지를 구분할 수 있는 키값을 추출한다.
* 3. 주의사항
*
* @param message Object 타입의 요청메시지
* @return String 비표준메시지의 메시지키값
* @exception
**/
public String[] perform(Object message) throws ActionException
{
String[] key = null;
AdapterManager adapterManager = AdapterManager.getInstance();
AdapterGroupVO adptGrpVO = adapterManager.getAdapterGroupVO(adapterGroupName);
String adptGrpName = adptGrpVO.getName();
if (adptGrpName != null && adptGrpName.length() >= 4) {
String chnl = adptGrpName.substring(1, 4);
if (adptGrpName.indexOf("{") >= 0 && adptGrpName.indexOf("}") >= 0
&& adptGrpName.indexOf("{") < adptGrpName.indexOf("}")) {
int start = adptGrpName.indexOf("{") + 1;
int end = adptGrpName.indexOf("}");
String inst = adptGrpName.substring(start, end);
adptGrpName = chnl + inst;
} else {
adptGrpName = chnl;
}
}
if(message instanceof byte[]) {
try {
key = MessageKeyExtractor.getMessageKeyValueForRest(this.adapterGroupName, message, prop, "data", true);
} catch(Exception e) {
throw new ActionException(ExceptionUtil.getErrorCode(e, "RECEAIIRA001"));
}
if (logger.isDebug()) logger.debug(adapterName+"] received data >> ["+ new String((byte[])message)+"]");
} else {
try {
key = MessageKeyExtractor.getMessageKeyValueForRest(this.adapterGroupName, message, prop, "data", true);
} catch(Exception e) {
throw new ActionException(ExceptionUtil.getErrorCode(e, "RECEAIIRA001"));
}
if (logger.isDebug()) logger.debug(adapterName+"] received data >> ["+ message+"]");
}
for(int i=0; i<key.length; i++) {
key[i] = adptGrpName.trim() + key[i];
}
return key;
}
}