class IMSTimePoint implements Comparable<IMSTimePoint> {

    @Override
    public boolean equals(Object obj)
    {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        IMSTimePoint other = (IMSTimePoint) obj;
        if (date == null)
        {
            if (other.date != null)
                return false;
        }
        else if (!date.equals(other.date))
            return false;
        if (Integer.valueOf(hourIndex) == null)
        {
            if (Integer.valueOf(((IMSTimePoint) obj).hourIndex) != null)
                return false;
        }
        else if (!Integer.valueOf(hourIndex).equals(Integer.valueOf(((IMSTimePoint) obj).hourIndex)))
            return false;
        return true;
    }

    public  IMSTimePoint(long epochTime);

}