package com.eactive.eai.common.web;
//package com.eactive.eai.common.web;  
//
//import com.eactive.eai.transformer.function.Function;
//import com.eactive.eai.transformer.function.FunctionDefinition;
//import com.eactive.eai.transformer.function.ParameterDefinition;
//import com.eactive.eai.transformer.layout.Types;
//import com.eactive.eai.common.exception.ExceptionUtil;
//import java.io.DataInputStream;
//import java.io.DataOutputStream;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileOutputStream;
//import java.io.InputStream;
//import java.io.OutputStream;
//import java.sql.Connection;
//import java.sql.PreparedStatement;
//import java.sql.Statement;
//import java.util.ArrayList;
//import java.util.Iterator;
//import java.util.List;
//import com.eactive.eai.transformer.tools.loader.AbstractExcelLoader;
//import com.eactive.eai.transformer.tools.loader.ExcelLoader;
//import com.eactive.eai.transformer.tools.util.ConstantUtil;
//import com.eactive.eai.transformer.tools.util.ExcelSheet;
//
//import com.eactive.eai.common.dao.Keys;
//
///** 
//* 1. 기능 : 정형화된 EXCEL 문서를 통해 DB의 메시지 테이블에 insert하는 sql문을 생성한다.
//* 2. 처리 개요 :  XLS메시지 테이블에 insert하는 sql문을 생성한다.
//*   			
//* 3. 주의사항 
//*
//* @author  :  
//* @version : v 1.0.0
//* @see : AbstractExcelLoader.java
//* @since   : 
//*  : 
//*/
//
//public class ErrorCodeLoader extends AbstractExcelLoader
//{ 
//    private static final int DATA_ROW_OFFSET = 4;
//    
//    private static final int COL_MSGKEY = 6;
//    private static final int COL_MSGTXT = 7;
//
//    private static final String QUERY_PREFIX = "INSERT INTO " + Keys.TABLE_OWNER + "TSMSGM001 (MSGKEY, MSGTXT) VALUES ";
//    
//    private static final String FILE_NAME = "insertQuery.sql";
//    
//    
//    public ErrorCodeLoader() {
//        super(ErrorCodeLoader.class.getName().substring(ErrorCodeLoader.class.getName().lastIndexOf('.') + 1));
//    }
//	
//   /** 
//    * 1. 기능 : AbstractExcelLoader에 선언된 메소드 정의 
//    * 2. 처리 개요 : AbstractExcelLoader에 선언된 메소드 정의
//    * 3. 주의사항 
//    *
//    * @return   Obejct
//    * @exception 
//    **/
//    public Object parseExcelSheet(ExcelSheet[] sheets)
//    {
//        return "";
//    }
//   
//   /** 
//    * 1. 기능 : ExcelSheet를 파싱하여 sql화일 을 생성
//    * 2. 처리 개요 : parseExcelSheet를 통해 ExcelSheet를 파싱하여 sql화일을 생성한다.
//    * 3. 주의사항 
//    *
//    * @return   void
//    * @exception 
//    **/ 
//    public void loadExcelSheet(ExcelSheet[] sheets)
//    {
//        
//        ExcelSheet sheet = sheets[0];
//        String directory = null;
//        try {
//            directory = sheet.getCellString(2,3);
//        } catch(Exception e) {
//            e.printStackTrace();
//            throw new RuntimeException("ErrorCodeLoader] loadExcelSheet>>"+e.getMessage());   
//        }
//        System.out.println("directory : "+ directory);
//
//        DataOutputStream out = getOutputFile(FILE_NAME, directory);
//        StringBuffer sb = new StringBuffer();
//        
//        for (int currentRow = DATA_ROW_OFFSET; sheet.existRow(currentRow); ++currentRow) {
//            try {
//                
//                String msgKey = sheet.getCellString(currentRow, COL_MSGKEY);
//                String msgTxt = sheet.getCellString(currentRow, COL_MSGTXT);
//                    
//                if (msgKey.trim().length() > 0 && msgTxt.trim().length() > 0) {
//                    sb.append(QUERY_PREFIX);   
//                    sb.append("( " + quote(msgKey) + " , " + quote(msgTxt) + "); \n");
//                    
//                    System.out.println("Query : " + sb.toString());
//                    
//                   
//                }
//                else {
//                    break;
//                }
//
//            } catch (Exception e) {
//                println("[ERROR] !!!!! " + e.getMessage() + " - ROW: " + currentRow);
//                e.printStackTrace();
//                
//            }
//        }
//        
//         if(out != null){
//            try{
//                out.write(sb.toString().getBytes());
//            }catch (Exception e){
//                e.printStackTrace();   
//            }
//            
//        }
//        else {
//            System.out.println("out is null");
//        }
//                
//    }
//   
//   /** 
//    * 1. 기능 : 생성할 화일의 DataOutputStream을 생성
//    * 2. 처리 개요 : ExcelSheet에 정의된 화일명과 위치를 통해 생성할 화일의 DataOutputStream을 생성하여 리턴한다.
//    * 3. 주의사항 
//    *
//    * @return   DataOutputStream
//    * @exception 
//    **/
//    
//    public DataOutputStream getOutputFile(String name, String dir) {
//
//        String outFile = "";
//        File out = new File(dir);
//        
//        if(!out.exists()){
//            if(!out.mkdir())
//                System.out.println(outFile+" Faild make directory");
//        }
//        outFile = dir+"/"+name;
//        
//        DataOutputStream outs = null;
//
//		try {
//			outs = new DataOutputStream( new FileOutputStream(outFile, false));
//            
//            if(outs != null)
//                System.out.println("ErrorCodeLoader ] File Name - " + outFile +" created.");
//            else
//                System.out.println("ErrorCodeLoader ] File Name - " + outFile +" can't create.");
//
//  	      } catch(Exception _ex) { 
//	        _ex.printStackTrace();
//	   }
//       return outs;
//
//	}
//
//     /** 
//    * 1. 기능 : 문자열을 받아서 단일 따옴표로 감싸 반환한다.
//    * 2. 처리 개요 : 문자열을 받아서 단일 따옴표로 감싸 반환한다.  
//    *   이때 문자열 중 단일 따움표(')가 있으면 이중 단일 따옴표('')로 변환한다.
//    * 3. 주의사항 
//    *
//    * @param    String str
//    * @return   String 단일 따옴표로 감싼 문자열
//    **/
//    private String quote(String str){
//       
//		StringBuffer sqlStr = new StringBuffer();
//
//		if(str == null) {
//			return "";
//		}
//		else {
//			sqlStr.append("'");
//			for(int i = 0; i < str.length(); i++) {
//				if(str.charAt(i) == '\'') {
//					sqlStr.append("''");
//				}
//				else {
//					sqlStr.append(str.charAt(i));
//				}
//
//			}
//			sqlStr.append("'");
//			return sqlStr.toString();
//		}
//    }
//    
//    public void clearData(ExcelSheet[] sheets) {
//    }
//    
//    public static void main(String[] argv) {
//        
//        InputStream in = null;
//        ErrorCodeLoader loader = new ErrorCodeLoader();
//        
//        try {
//            
////            in = ErrorCodeLoader.class.getClassLoader().getResourceAsStream(argv[0]);
//            in = new DataInputStream(new  FileInputStream(argv[0]));
//            ExcelSheet[] sheets = ExcelSheet.getExcelSheets(in);
//            
////            ExcelLoader loader = (ExcelLoader)Class.forName("ErrorCodeLoader.class").newInstance();
//  
//            loader.loadExcelSheet(sheets);
//            
//        } catch (Exception e) {
//            e.printStackTrace();
//        } finally {
//            if (in != null) try { in.close(); } catch (Exception e) {};
//        }
//        
//    }
//        
//} 
