package com.eactive.eai.adapter; 

import java.util.Properties;

/** 
 * 1. 기능 : EAI 엔진에서 어댑터을 common하게 접근하기 위한 Interface
 * 2. 처리 개요 : 
 *     - execute hookup method를 실행한다.
 *     - 실재 어댑터를 통해 통신 한다.
 * 3. 주의사항 
 *
 * @author  : 
 * @version : v 1.0.0
 * @see : 관련 기능을 참조
 * @since   : 
 */
public interface WLIAdapter 
{ 
    /** 
    * 1. 기능 :  execute hookup method를 실행한다.
    * 2. 처리 개요 : 
    *     - execute hookup method를 실행한다.
    * 3. 주의사항 
    *
    * @param    prop    어댑터 Property
    * @param    message 전문 메시지
    **/
    //public Object callService(Properties prop, Object message) throws Exception;
    
    /** 
    * 1. 기능 :  execute hookup method를 실행한다.
    * 2. 처리 개요 : 
    *     - execute hookup method를 실행한다.
    * 3. 주의사항 
    *
    * @param    adapterGroupName    어댑터 그룹명
    * @param    prop    어댑터 Property
    * @param    message 전문 메시지
    **/
    public Object callService(String adapterGroupName, Properties prop, Object message) throws Exception;
    
    /** 
    * 1. 기능 :  실재 어댑터를 통해 통신하는 로직을 구현한다.
    * 2. 처리 개요 : 
    *     - 실재 어댑터를 통해 통신하는 로직을 구현한다.
    * 3. 주의사항 
    *
    * @param    prop    어댑터 Property
    * @param    message 전문 메시지
    **/
    public Object execute(Properties prop, Object message) throws Exception;
} 
