package com.eactive.eai.batch.job.jobItem.nice;

import java.lang.String;

import com.eactive.eai.batch.rule.dirInfo.BatchJobInfoVO;
import com.eactive.eai.batch.rule.dirInfo.DirInfoManager;

import com.eactive.eai.batch.job.jobItem.DefaultTelegram;
import com.eactive.eai.batch.job.jobItem.TelegramService;

/**
 * TSEAIBR03 의 각 노드 정보에 지정되는 클래스 이다.
 * RECV 액션을 수행하는 노드에 대해, 해당 노드에서 수행할 전문수신작업의 수신길이를 결정하기 위해 사용된다.
 */
public class RECV_NICEC extends DefaultTelegram implements TelegramService
{

    /**
     * 생성자 : NICE 전문 길이 결정용 텔레그램 클래스 이다.
     */
    public RECV_NICEC() {
    }

    public boolean doExecute() {

        return true;
    }

    //---------------- 특정 필드값을 구하는 부분
    // 전문종별코드 필드값 리턴
    public String getTelegramType()
    {
		return super.getFieldValueString(4);
    }

    //응답코드 필드값 리턴
    public String getResCode()
    {
		return super.getFieldValueString(5);
    }

    /**
     *  20060417 add by khs : 원치 않는 전문종별 도착시, 소켓에 있는 garvage 데이터를 없애기 위해 사용한다.
     *
     *  return value :      <0 계산 할 수 없거나 장애이다.
     *                      >0 해당 데이터를 소켓에서 더 읽어들인다.
     */
    public int getRemainDataLength()
    {
        try {
        	int recCnt = Integer.parseInt( super.getFieldValueString(0) );
        	String bizCode = super.getFieldValueString(0).substring(3);
        	String processCode = batchDoc.getBatchMsg().getHeader().getProcessCode();
        	BatchJobInfoVO jvo = DirInfoManager.getInstance().getFileInfoByDstcd(processCode, bizCode);
        	int recLen = (int)jvo.getFileRecSize();
            return (recCnt * recLen );
            
        } catch (Exception ex) {
            this.batchDoc.getBatchMsg().getBody().setErrorMsg(ex.toString());
            return -1;
        }
    }
}
