DateDTO.java

package com.tradecloud.dto.letterofcredit.integration;

import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement()
public class DateDTO implements Serializable {

    private int year;
    private int month;
    private int day;

    public DateDTO(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        this.setYear(calendar.get(Calendar.YEAR));
        this.setMonth(calendar.get(Calendar.MONTH) + 1);
        this.setDay(calendar.get(Calendar.DAY_OF_MONTH));

    }

    public DateDTO() {
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        if (month < 1 || month > 12) {
            throw new IllegalArgumentException("");
        }
        this.month = month;
    }

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }

    public Date toDate() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(year, month - 1, day);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTime();
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {

        if (obj == null) {
            return false;
        }
        if (!(obj instanceof DateDTO)) {
            return false;
        }

        DateDTO other = (DateDTO) obj;

        return other.getDay() == getDay()
                && other.getMonth() == getMonth()
                && other.getYear() == getYear();

    }

    @Override
    public String toString() {
        return Integer.toString(getYear()) + "-"
                + Integer.toString(getMonth()) + "-"
                + Integer.toString(getDay());
    }
}