package com.eactive.eai.adapter.wca; 

import com.eactive.eai.adapter.wca.cfg.SNAAdapter;
import com.eactive.eai.adapter.wca.cfg.SNAAdapterManager;
import com.eactive.eai.common.testcall.TestCallException;
import com.eactive.eai.common.testcall.TestCallSupport;
import com.eactive.eai.common.util.Logger;

/** 
* 1. 기능 : SNAAdapter 동작 여부 판단
* 2. 처리 개요 : 
*      - 어댑터 그룹에 속한 세션 상태를 반환
* 3. 주의사항 
*
* @author  : 
* @version : v 1.0.0
* @see     : 
* @since   : 
*/
public class SNAAdapterTestCall extends TestCallSupport
{ 
    /**
     * SNAAdapter 트레이스를 위한 logger 
     */
    Logger trc_logger = Logger.getLogger(Logger.LOGGER_ADAPTER);
    
    /** 
    * 1. 기능 : 어댑터 시작 메소드
    * 2. 처리 개요 : 
    *     - 어댑터 그룹에 해당하는 세션이 하나이상이면 true, 아니면 flase 반환 
    * 3. 주의사항 
    *    
    * @exception    TestCallException  
    **/
    public boolean isAlive() throws TestCallException {
        int nConnected  = 0 ;
        String adapterGroupName = this.adapterInfo.getAdapterGroupName();
        
        if (trc_logger.isDebug()) { trc_logger.debug("SNAAdapterTestCall] ## adapterGroupName = " + adapterGroupName); }       
        SNAAdapter	snaAdapter = SNAAdapterManager.getInstance().selectSnaAdapter(adapterGroupName);
        if (snaAdapter == null) {
        	nConnected = 0;
        	return false;
        }
        
        if (nConnected > 0) { 
        	return true;
        }
        
        return false;
    }
}
