package de.flower.rmt.model.db.type; import de.flower.common.util.Check; import org.joda.time.DateTime; import org.joda.time.LocalDate; import org.joda.time.LocalTime; import java.util.Date; /** * Extended datetime with separate getter/setter for date and time part to be used with property models * in wicket forms that use two components to edit the dateTime (a datepicker and a time-dropdown). * * @author flowerrrr */ @Deprecated // not used public class SplitDateTime { private DateTime dateTime; public SplitDateTime() { } public SplitDateTime(final Object timestamp) { this.dateTime = new DateTime(timestamp); } public DateTime getDateTime() { return dateTime; } public void setDateTime(final DateTime dateTime) { this.dateTime = dateTime; } public Date toDate() { return dateTime.toDate(); } public Date getDate() { return (dateTime == null) ? null : dateTime.toDate(); } public void setDate(Date date) { Check.notNull(date); // normalize to midnight updateDateTime(new LocalDate(date).toDate()); } public LocalTime getTime() { return (dateTime == null) ? null : dateTime.toLocalTime(); } public void setTime(LocalTime time) { Check.notNull(time); updateDateTime(time); } private void updateDateTime(Date date) { LocalTime time = getTime(); if (time == null) { dateTime = new DateTime(date); } else { dateTime = new DateTime(date).withFields(time); } } private void updateDateTime(LocalTime time) { if (dateTime == null) { dateTime = new DateTime(0).withFields(time); } else { dateTime = dateTime.withFields(time); } } @Override public String toString() { return "SplitDateTime{" + "dateTime=" + dateTime + ",date=" + getDate() + ",time=" + getTime() + '}'; } @Override public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; final SplitDateTime that = (SplitDateTime) o; if (dateTime != null ? !dateTime.equals(that.dateTime) : that.dateTime != null) return false; return true; } @Override public int hashCode() { return dateTime != null ? dateTime.hashCode() : 0; } }