package com.steerinfo.ems.Utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TimegranidUtils {
	
	/**
	 * 根据最小时间粒度获取可计算的时间粒度
	 * @param mintimegranid 最小时间粒度
	 * @return
	 */
	public static List<String> getTimegranidList(String mintimegranid) {
        List<String> list = new ArrayList<String>();
        if("YEAR".equalsIgnoreCase(mintimegranid)){
            list.add("YEAR");
        } else if("MONTH".equalsIgnoreCase(mintimegranid)){
        	list.add("YEAR");
        	list.add("MONTH");
        } else if("DAY".equalsIgnoreCase(mintimegranid)){
        	list.add("YEAR");
        	list.add("MONTH");
        	list.add("DAY");
        } else if("SHIFT".equalsIgnoreCase(mintimegranid)){
        	list.add("YEAR");
        	list.add("MONTH");
        	list.add("DAY");
        	list.add("SHIFT");
        }
        return list;
    }
	
	/**
	 * 时间粒度 是否大于 被比较的时间粒度(YEAR最大，SHIFT最小)
	 * @param timegranid 时间粒度
	 * @param comptimegranid 被比较的时间粒度
	 * @return
	 */
	public static boolean isBigTimegranid(String timegranid, String comptimegranid) {
		Map<String, Integer> m = new HashMap<String, Integer>();
		m.put("SHIFT", 1);
		m.put("DAY", 2);
		m.put("MONTH", 3);
		m.put("YEAR", 4);
		return m.get(timegranid) > m.get(comptimegranid);
	}
}
