//package com.eactive.eai.batch.common;
//
//import com.eactive.eai.common.dao.DAOFactory;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.util.ArrayList;
//
//public class BatchDirMakeUtil
//{
//
//	//파일로거
//	private static Logger logger = LoggerFactory.getLogger(ElinkLogger.LOGGER_DEFAULT);
//
//	private static String[] batchDirs;
//
//	private static void setBatchDirs() throws Exception {
//        BatchDirDAO dao = (BatchDirDAO)DAOFactory.newInstance().create(BatchDirDAO.class);
//		ArrayList<String> aList = dao.getBatchDirList();
//		batchDirs = new String[aList.size()];
//		aList.toArray(batchDirs);
//	}
//
//	private static void makeDirBatch(String dirSuffix, boolean makeParent) throws Exception {
//		int successCnt = 0;
//		for (int i=0; i<batchDirs.length; i++) {
//			if ( FileUtil.mkdir(batchDirs[i] +"/"+ dirSuffix, makeParent) ) successCnt++;
//		}
//		if (successCnt < batchDirs.length) throw new Exception("★★★★★ 배치 송수신 디렉토리 생성 실패 !! ★★★★★ ( 총 "+ batchDirs.length +" 개 중 "+ successCnt +" 개 생성됨 )");
//	}
//
//	private static void removeDirBatch(String dirSuffix, boolean removeChild) throws Exception {
//		int successCnt = 0;
//		for (int i=0; i<batchDirs.length; i++) {
//			if ( FileUtil.rmdir(batchDirs[i] +"/"+ dirSuffix, removeChild) ) successCnt++;
//		}
//		if (successCnt < batchDirs.length) throw new Exception("★★★★★ 배치 송수신 디렉토리 삭제 실패 !! ★★★★★ ( 총 "+ batchDirs.length +" 개 중 "+ successCnt +" 개 삭제됨 )");
//	}
//
//	private static void renameDirBatch(String fromDirSuffix, String toDirSuffix, boolean makeDestDir) throws Exception {
//		int successCnt = 0;
//		for (int i=0; i<batchDirs.length; i++) {
//			if ( FileUtil.move(batchDirs[i] +"/"+ fromDirSuffix, batchDirs[i] +"/"+ toDirSuffix, makeDestDir) ) successCnt++;
//		}
//		if (successCnt < batchDirs.length) throw new Exception("★★★★★ 배치 송수신 디렉토리명 변경 실패 !! ★★★★★ ( 총 "+ batchDirs.length +" 개 중 "+ successCnt +" 개 변경됨 )");
//	}
//
//	//==================================================================================================================
//	public static void makeDirProcess(String processName, String processCode) throws Exception {
//		logger.debug("■ 업무구분 디렉토리 생성 Start......");
//		setBatchDirs();
//		makeDirBatch(processName +"_"+ processCode, true);  //true : 상위 디렉토리 미존재시 자동 생성함
//	}
//
//	public static void removeDirProcess(String processName, String processCode) throws Exception {
//		logger.debug("■ 업무구분 디렉토리 삭제 Start......");
//		setBatchDirs();
//		removeDirBatch(processName +"_"+ processCode, false);  //false : 하위 디렉토리 및 내용이 있으면 삭제 안함
//	}
//
//	public static void renameDirProcess(String fromProcessName, String fromProcessCode, String toProcessName, String toProcessCode) throws Exception {
//		logger.debug("■ 업무구분 디렉토리명 변경 Start......");
//		setBatchDirs();
//		renameDirBatch(fromProcessName +"_"+ fromProcessCode, toProcessName +"_"+ toProcessCode, false);  //false: 목적 경로 미존재시 생성 안함
//	}
//
//
//	//==================================================================================================================
//	public static void makeDirOrgan(String processName, String processCode, String organName, String organCode) throws Exception {
//		logger.debug("■ 대외기관 디렉토리 생성 Start......");
//		setBatchDirs();
//		makeDirBatch(processName +"_"+ processCode +"/"+ organName +"_"+ organCode, true);  //true : 상위 디렉토리 미존재시 자동 생성함
//
//		//생성된 대외기관 디렉토리 밑에 해당 업무의 전체 거래구분그룹 디렉토리도 함께 생성
//        BatchDirDAO dao = (BatchDirDAO)DAOFactory.newInstance().create(BatchDirDAO.class);
//        ArrayList<String[]> bizGroupList = dao.getBizGroupList(processCode);
//
//		for (int i=0; i<bizGroupList.size(); i++) {
//			String[] bizGroupInfo = (String[])bizGroupList.get(i);  //0:거래구분그룹명, 1:거래구분그룹코드
//			makeDirBatch(processName +"_"+ processCode +"/"+ organName +"_"+ organCode +"/"+ bizGroupInfo[0] +"_"+ bizGroupInfo[1], true);  //true : 상위 디렉토리 미존재시 자동 생성함
//		}
//	}
//
//	public static void removeDirOrgan(String processName, String processCode, String organName, String organCode) throws Exception {
//		logger.debug("■ 대외기관 디렉토리 삭제 Start......");
//		setBatchDirs();
//		removeDirBatch(processName +"_"+ processCode +"/"+ organName +"_"+ organCode, false);  //false : 하위 디렉토리 및 내용이 있으면 삭제 안함
//	}
//
//	public static void renameDirOrgan(String processName, String processCode, String fromOrganName, String fromOrganCode, String toOrganName, String toOrganCode) throws Exception {
//		logger.debug("■ 대외기관 디렉토리명 변경 Start......");
//		setBatchDirs();
//		renameDirBatch(processName +"_"+ processCode +"/"+ fromOrganName +"_"+ fromOrganCode,
//		               processName +"_"+ processCode +"/"+ toOrganName   +"_"+ toOrganCode, false);  //false: 목적 경로 미존재시 생성 안함
//	}
//
//	//==================================================================================================================
//	public static void makeDirBizGroup(String processName, String processCode, String bizGroupName, String bizGroupCode) throws Exception {
//		logger.debug("■ 거래구분그룹 디렉토리 생성 Start......");
// 		setBatchDirs();
//
//		//해당 업무의 모든 대외기관 디렉토리 밑에 거래구분그룹 디렉토리 생성
//		BatchDirDAO dao = (BatchDirDAO)DAOFactory.newInstance().create(BatchDirDAO.class);
//		ArrayList<String[]> organList = dao.getOrganList(processCode);
//
//		for (int i=0; i<organList.size(); i++) {
//			String[] organInfo = (String[])organList.get(i);  //0:대외기관명, 1:대외기관코드
//			makeDirBatch(processName +"_"+ processCode +"/"+ organInfo[0] +"_"+ organInfo[1] +"/"+ bizGroupName +"_"+ bizGroupCode, true);  //true : 상위 디렉토리 미존재시 자동 생성함
//		}
//	}
//
//	public static void removeDirBizGroup(String processName, String processCode, String bizGroupName, String bizGroupCode) throws Exception {
//		logger.debug("■ 거래구분그룹 디렉토리 삭제 Start......");
//		setBatchDirs();
//
//		//해당 업무의 모든 대외기관 디렉토리 밑에 있는 거래구분그룹 디렉토리 삭제
//		BatchDirDAO dao = (BatchDirDAO)DAOFactory.newInstance().create(BatchDirDAO.class);
//		ArrayList<String[]> organList = dao.getOrganList(processCode);
//
//		for (int i=0; i<organList.size(); i++) {
//			String[] organInfo = (String[])organList.get(i);  //0:대외기관명, 1:대외기관코드
//			removeDirBatch(processName +"_"+ processCode +"/"+ organInfo[0] +"_"+ organInfo[1] +"/"+ bizGroupName +"_"+ bizGroupCode, false);  //false : 하위 디렉토리 및 내용이 있으면 삭제 안함
//		}
//	}
//
//	public static void renameDirBizGroup(String processName, String processCode, String fromBizGroupName, String fromBizGroupCode, String toBizGroupName, String toBizGroupCode) throws Exception {
//		logger.debug("■ 거래구분그룹 디렉토리명 변경 Start......");
//		setBatchDirs();
//
//		//해당 업무의 모든 대외기관 디렉토리 밑에 있는 거래구분그룹 디렉토리명 변경
//		BatchDirDAO dao = (BatchDirDAO)DAOFactory.newInstance().create(BatchDirDAO.class);
//		ArrayList<String[]> organList = dao.getOrganList(processCode);
//
//		for (int i=0; i<organList.size(); i++) {
//			String[] organInfo = (String[])organList.get(i);  //0:대외기관명, 1:대외기관코드
//			renameDirBatch(processName +"_"+ processCode +"/"+ organInfo[0] +"_"+ organInfo[1] +"/"+ fromBizGroupName +"_"+ fromBizGroupCode,
//			               processName +"_"+ processCode +"/"+ organInfo[0] +"_"+ organInfo[1] +"/"+ toBizGroupName   +"_"+ toBizGroupCode, false);  //false: 목적 경로 미존재시 생성 안함
//		}
//	}
//}
