//package com.ext.eai.common.stdmessage;
//
//import com.eactive.eai.common.property.PropManager;
//import com.eactive.eai.common.util.Logger;
//import com.eactive.eai.transformer.TransformService;
//
///** 
//* 1. 기능 : KB 표준전문을 파싱하고 KESA 전문과 매핑하는 기능을 제공
//* 2. 처리 개요 : KB 표준 XML/전문 파싱, KESA 전문과 변환  
//* 3. 주의사항 : KB 표준전문 변경에 따라 수정되어야 함
//*
//* @author  : dhlee
//* @version : v 1.0.0
//* @see : KBMessageKeys
//* @since   : 
//*  : 
//*/
//public class STDMessageUtil implements STDMessageKeys {
//	/**
//     * Default Logger
//     */
//    static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
//
//	/**
//	 * 
//	 */
//	public STDMessageUtil() {
//		super();
//	}
//	
//	public static boolean checkCard(String code) {
//		boolean isCard = false;
//		
//		if(code == null || code.length() < 2) {
//			return false;
//		}
//		
//		char c = code.charAt(1);
//		if(c >= '0' && c<='9') {
//			isCard = true;
//		}
//		return isCard;		
//	}
//	
//	// 2009.09.09 강길수 차장
//    // 입력매체부 변환을 위한 함수로 변환기능을 통해 한글변환처리를 위해 사용됨
//    public static byte[] transformMediaData(String telgmDmndDstcd, String chnlDstcd, byte[] mediaData, 
//    			String sendEaiSvcCd, String relayChnlCd, String inoPartlDstcd, String chnlDBzwkDstcd,
//    			String iscSendSysid) throws Exception {
//    	byte[] resMediaData = null;
//    	Object[] sources = new Object[1];    	
//    	boolean isReq = true;    	
//    	sources[0] = mediaData;    	
//    	String transformName = null;    	
//    	String propName = "";
//    	
//    	// 일반거래 : S01, S02, S03, S03A6, S04, S06 (ASCII -> EBCDIC)
//    	// ISC거래 : S0107, S0207, S0307, S03A607, S0407 (EBCDIC -> ASCII)
//    	if("S".equals(telgmDmndDstcd)) {
//    		isReq = true;
//    		propName = telgmDmndDstcd + chnlDstcd;
//    		
//    		// 인뱅 오픈API
//    		if("03".equals(chnlDstcd) && "A6".equals(chnlDBzwkDstcd)) {
//    			propName = propName + chnlDBzwkDstcd;
//    		}
//    		
//    		if(relayChnlCd.equals("07") && inoPartlDstcd.equals("2")){	// 은행카드 간 ISC 대응거래 처리 (ISC & 카드로 송신) 2018.07.31
//    			propName = propName + relayChnlCd;
//    		}
//    		else if(relayChnlCd.equals("07") && checkCard(iscSendSysid) ){	// 카드기동 ISC거래일 경우
//    			propName = propName + relayChnlCd + "C";
//    		}
//    	}
//    	// 일반거래 : R (EBCDIC -> ASCII)
//    	// ISC거래 : R07 (ASCII -> EBCDIC)
//    	else {
//    		isReq = false;
//    		propName = telgmDmndDstcd;
//    		if(relayChnlCd.equals("07") & inoPartlDstcd.equals("1")){	// 은행카드 간 ISC 대응거래 처리 (ISC & 은행으로 송신) 2018.07.31
//    			propName = propName + relayChnlCd;
//    		}
//    	}
//    	
//    	if(logger.isInfo()) {
//    		logger.info("KBMessageUtil]  telgmDmndDstcd ["+telgmDmndDstcd+"] chnlDstcd ["+chnlDstcd+
//    				"] relayChnlCd ["+relayChnlCd+"] iscSendSysid ["+iscSendSysid+"] propName ["+propName+"]");
//    	}
//    	
//    	PropManager propManager = PropManager.getInstance();
//		
//    	transformName = propManager.getProperty("KBMESSAGE_MEDIA_TRANSFORM", propName);
//		if(transformName != null) {    	
//			Object resObject = TransformService.transform("KBMessage", isReq, transformName, sources);
//			if(resObject instanceof byte[]) {
//				resMediaData = (byte[])resObject;
//			}
//			else if(resObject instanceof String) {
//				resMediaData = ((String)resObject).getBytes();
//			}
//			else {
//				logger.warn("KBMessageUtil] 변환결과가 전문이 아닙니다. 변환등록정보확인 필요 ["+transformName+"]");
//				throw new Exception("변환결과가 전문이 아닙니다. 변환등록정보확인 필요 ["+transformName+"]");
//			}
//		}
//		else {
//			logger.warn("KBMessageUtil] 프라퍼티에 매체부 변환이 등록되지 않았습니다. : 프라퍼티 그룹[KBMESSAGE_MEDIA_TRANSFORM] 프라퍼티 키 ["+propName+"]");
//			throw new Exception("프라퍼티에 매체부 변환이 등록되지 않았습니다. : 프라퍼티 그룹[KBMESSAGE_MEDIA_TRANSFORM] 프라퍼티 키 ["+propName+"]");
//		}
//		
//    	return resMediaData;
//    }
//}
