package com.eactive.eai.transformer.message;

import com.eactive.eai.transformer.layout.LayoutTypeKey;
import com.eactive.eai.transformer.util.ByteUtil;


/**
 * <pre>
 * BYTE ARRAY(전문) 형식의 데이터를 변환하기 위한 메시지.
 * 전체전문의 Header부분만을 Parsing하고 남는 부분은 버린다.
 *
 * [제약 사항]
 * 고정 필드에 대해서만 처리 가능.
 * 정의한 길이보다 실제 데이터가 작은경우에는 에러처리함
 * [PATH 정의]
 * </pre>
 */
public class CommonBytesMessage extends BytesMessage {
	private static final long serialVersionUID = -6375186849821304718L;
	public static final String NAME = LayoutTypeKey.COMBYTES;

    public CommonBytesMessage() {
        super();
    }

    @Override
    protected void doSetData(Object data) {
        this.data = (byte[]) data;
        byte[] bytesData = ByteUtil.copy(this.data);
        
        try {
        	if(bytesData != null) { 
        		setDataBytes(bytesData);
        	}
        } catch(MessageSetDataOverflowException e) {
//          COMBYTES - ignore overflow exception
        }
    }    
    
    @Override
    public String toString() {        
        StringBuilder sb = new StringBuilder();
        sb.append("[COMBYTES message]");

        sb.append("\n" + super.toString());
        sb.append("\n");

        return sb.toString();
    }
}
