/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.utilerias;

import java.math.BigDecimal;
import java.util.Date;


/**
 * Classe que ajuda na verificação se os dados se sobrepõe
 * @author gleimar
 */
public class TraslaparUtil {
     /**
     * Verifica se o intervalo de datas dtStartCompare e dtEndCompare estão dentro do intervalo dtStart dtEnd
     * 
     * @param dtStart 
     * @param dtEnd
     * @param dtStartCompare
     * @param dtEndCompare
     * @return 
     */
    public static boolean intersectDate(Date dtStart, Date dtEnd, Date dtStartCompare, Date dtEndCompare) {
        if (((DateUtil.compareDate(dtStart, dtStartCompare) >= 0) && (DateUtil.compareDate(dtEnd, dtEndCompare) <= 0))
                || ((DateUtil.compareDate(dtEnd, dtStartCompare) >= 0) && (DateUtil.compareDate(dtEnd, dtEndCompare) <= 0))
                || ((DateUtil.compareDate(dtStart, dtStartCompare) >= 0) && (DateUtil.compareDate(dtStart, dtEndCompare) <= 0))
                || ((DateUtil.compareDate(dtStart, dtStartCompare) <= 0) && (DateUtil.compareDate(dtEnd, dtEndCompare) >= 0))) {

            return true;
        }

        return false;
    }
    
     /**
     * 
     * @param numStart
     * @param numEnd
     * @param numStartCompare
     * @param numEndCompare
     * @return 
     */
    public static boolean intersectNum(Long numStart, Long numEnd, Long numStartCompare, Long numEndCompare) {
        if (((numStart.compareTo(numStartCompare) >= 0) && (numEnd.compareTo(numEndCompare) <= 0))
                || ((numEnd.compareTo(numStartCompare) >= 0) && (numEnd.compareTo(numEndCompare) <= 0))
                || ((numStart.compareTo(numStartCompare) >= 0) && (numStart.compareTo(numEndCompare) <= 0))
                || ((numStart.compareTo(numStartCompare) <= 0) && (numEnd.compareTo(numEndCompare) >= 0))) {

            return true;
        }

        return false;
    }
    public static boolean intersectNum(BigDecimal numStart, BigDecimal numEnd, BigDecimal numStartCompare, BigDecimal numEndCompare) {
    	if (((numStart.compareTo(numStartCompare) >= 0) && (numEnd.compareTo(numEndCompare) <= 0))
                || ((numEnd.compareTo(numStartCompare) >= 0) && (numEnd.compareTo(numEndCompare) <= 0))
                || ((numStart.compareTo(numStartCompare) >= 0) && (numStart.compareTo(numEndCompare) <= 0))
                || ((numStart.compareTo(numStartCompare) <= 0) && (numEnd.compareTo(numEndCompare) >= 0))) {

            return true;
        }

        return false;
    }
    public static boolean intersectNum(Integer numStart, Integer numEnd, Integer numStartCompare, Integer numEndCompare) {
    	return intersectNum(numStart.longValue(), numEnd.longValue(), numStartCompare.longValue(), numEndCompare.longValue());
    }
}
