package com.eactive.eai.message.service;

import java.io.Serializable;
import java.util.HashMap;

import com.eactive.eai.message.StandardMessage;

public interface InterfaceMapper extends Serializable {
	// define mapping
	String REQ_SYS_CODE       = "REQ_SYS_CODE";
	String CHANNEL_TYPE_CD    = "CHANNEL_TYPE_CD";
	String CHANNEL_DETAIL_CD  = "CHANNEL_DETAIL_CD";
	String SEND_TIME          = "SEND_TIME";
	String GUID               = "GUID";
	String SYSTEM_TYPE        = "SYSTEM_TYPE";
	String RECV_TIME          = "RECV_TIME";
	String RETURN_VALUE       = "RETURN_VALUE";
	String GUID_ORG           = "GUID_ORG";
	String GUID_SEQ           = "GUID_SEQ";
	String SERVICE_ID         = "SERVICE_ID";
	String RETURN_SERVICE_ID  = "RETURN_SERVICE_ID";
	String INTERFACE_ID       = "INTERFACE_ID";
	String SESSION_ID         = "SESSION_ID";
	String SEND_RECV_DIVISION = "SEND_RECV_DIVISION";
	String IN_EX_DIVISION     = "IN_EX_DIVISION";
	String OPERATION_ENV      = "OPERATION_ENV";
	String FIRST_REQ_IP       = "FIRST_REQ_IP";
	String RECOVER_YN         = "RECOVER_YN";
	String INST_CODE          = "INST_CODE";
	String TIMEOUT            = "TIMEOUT";
	String ERROR_CODE         = "ERROR_CODE";
	String ERROR_MSG          = "ERROR_MSG";
	String USER_ID            = "USER_ID";
	String RESPONSE_TYPE      = "RESPONSE_TYPE";
	String SYNC_ASYNC_TYPE    = "SYNC_ASYNC_TYPE";
	
	String BIZ_DATA           = "BIZ_DATA";
	
	public void initPathMap(HashMap<String, String> map);
	
	public String getPath(String key);
	//------------------------------------------------------------
	// 표준전문과 Mapping 되는 항목을 모두 정의해야 함.
	//------------------------------------------------------------
	public String getEaiSvcCode(StandardMessage standardMessage);
	public String nextGuidSeq(StandardMessage standardMessage);
	
	public String getReqSysCode       (StandardMessage standardMessage); 
	public String getChannelTypeCd    (StandardMessage standardMessage);
	public String getChannelDetailCd  (StandardMessage standardMessage);
	public String getSendTime         (StandardMessage standardMessage);
	public String getGuid             (StandardMessage standardMessage);
	public String getSystemType       (StandardMessage standardMessage);
	public String getRecvTime         (StandardMessage standardMessage);
	public String getReturnValue      (StandardMessage standardMessage);
	public String getOrgGuid          (StandardMessage standardMessage);
	public String getGuidSeq          (StandardMessage standardMessage);
	public String getServiceId        (StandardMessage standardMessage);
	public String getReturnServiceId  (StandardMessage standardMessage);
	public String getInterfaceId      (StandardMessage standardMessage);
	public String getSessionId        (StandardMessage standardMessage);
	public String getSendRecvDivision (StandardMessage standardMessage);
	public String getInExDivision     (StandardMessage standardMessage);
	public String getOperationEnv     (StandardMessage standardMessage);
	public String getFirstReqIp       (StandardMessage standardMessage);
	public String getRecoverYn        (StandardMessage standardMessage);
	public String getInstCode         (StandardMessage standardMessage);
	public String getTimeout          (StandardMessage standardMessage);
	public String getErrorCode        (StandardMessage standardMessage);
	public String getErrorMsg         (StandardMessage standardMessage);
	public String getUserId           (StandardMessage standardMessage);
	public String getResponseType     (StandardMessage standardMessage);
	public String getSyncAsyncType    (StandardMessage standardMessage);
	
	public void setReqSysCode       (StandardMessage standardMessage, String reqSysCode      );
	public void setChannelTypeCd    (StandardMessage standardMessage, String channelTypeCd   );
	public void setChannelDetailCd  (StandardMessage standardMessage, String channelDetailCd );
	public void setSendTime         (StandardMessage standardMessage, String sendTime        );
	public void setGuid             (StandardMessage standardMessage, String guid            );
	public void setSystemType       (StandardMessage standardMessage, String systemType      );
	public void setRecvTime         (StandardMessage standardMessage, String recvTime        );
	public void setReturnValue      (StandardMessage standardMessage, String returnValue     );
	public void setOrgGuid          (StandardMessage standardMessage, String guidOrg         );
	public void setGuidSeq          (StandardMessage standardMessage, String guidSeq         );
	public void setServiceId        (StandardMessage standardMessage, String serviceId       );
	public void setReturnServiceId  (StandardMessage standardMessage, String returnServiceId );
	public void setInterfaceId      (StandardMessage standardMessage, String interfaceId     );
	public void setSessionId        (StandardMessage standardMessage, String sessionId       );
	public void setSendRecvDivision (StandardMessage standardMessage, String sendRecvDivision);
	public void setInExDivision     (StandardMessage standardMessage, String inExDivision    );
	public void setOperationEnv     (StandardMessage standardMessage, String operationEnv    );
	public void setFirstReqIp       (StandardMessage standardMessage, String firstReqIp      );
	public void setRecoverYn        (StandardMessage standardMessage, String recoverYn       );
	public void setInstCode         (StandardMessage standardMessage, String instCode        );
	public void setTimeout          (StandardMessage standardMessage, String timeout         );
	public void setErrorCode        (StandardMessage standardMessage, String errorCode       );
	public void setErrorMsg         (StandardMessage standardMessage, String errorMsg        );
	public void setUserId           (StandardMessage standardMessage, String userId          );
	public void setResponseType     (StandardMessage standardMessage, String responseType    );
	public void setSyncAsyncType    (StandardMessage standardMessage, String syncAsyncType   );
	
}
