package com.eactive.eai.batch.eventscheduler.management;

import java.util.TimerTask;
import com.eactive.eai.batch.eventscheduler.holiday.HolidayManager;
import com.eactive.eai.common.util.DatetimeUtil;
import com.eactive.eai.common.util.Logger;

public class HolidayChecker  extends TimerTask{
	
    /** 
     * EAI FRAMEWORK DEFAULT FILE LOGGER
     */
	static Logger logger = Logger.getLogger(Logger.LOGGER_SCHEDULER);
	    
    
    /** 
     * 일일 초기화를 위해 현재 날짜와 비교하기 위한 이전날짜
     */
    private String prevYear;
    

    /** 
    * 1. 기능 : Default 생성자
    * 2. 처리 개요 : 
    * 3. 주의사항 
    **/   
    public HolidayChecker() {

            prevYear =  DatetimeUtil.getCurrentDate().substring(0,4);
logger.debug("HolidayChecker ] run .. currentYear - ["+prevYear+"]/["+DatetimeUtil.getCurrentDate()+"]");             
    }
    
    
    
    
    /** 
    * 1. 기능 : 정해진시간에 초기화 수행
    * 2. 처리 개요 : 
    *     - DatetimeUtil로부터 현재 일자를 얻어 비교하여 일자가 변경된 경우 reset
    *     - 최근시간(10분 또는 1시간) 마다 reset
    * 3. 주의사항 
    **/   
    public void run()
    {
        

        String currentYear = DatetimeUtil.getCurrentDate().substring(0,4);
logger.debug("HolidayChecker ] run .. currentYear - ["+currentYear+"]/["+DatetimeUtil.getCurrentDate()+"]");        
        if (!(currentYear.equals(prevYear))){
        	
        	HolidayManager hmanager = HolidayManager.getInstance();
        	
        	try{
        		hmanager.makeCalendar();
        	}catch (Exception e){
        		logger.error("HolidayChecker ] HolidayCalendar를 재구성하는데 에러가 발생했습니다. - "+e.getMessage());
        	}
        	
        	prevYear = currentYear;
        }
        
      }
}
