/* * (non-Javadoc) * * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((appt == null) ? 0 : appt.getKey()); result = prime * result + ((getInstanceTime() == null) ? 0 : getInstanceTime().hashCode()); return result; }
/** if the reminder instance is a todo, then mark it as done/complete */ @Override public void do_todo(boolean delete) { if (appt != null) try { AppointmentModel.getReference().do_todo(appt.getKey(), delete); } catch (Exception e) { Errmsg.getErrorHandler().errmsg(e); } }
/* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ApptReminderInstance other = (ApptReminderInstance) obj; if (appt == null) { if (other.appt != null) return false; } else if (appt.getKey() != other.appt.getKey()) { return false; } if (getInstanceTime() == null) { if (other.getInstanceTime() != null) return false; } else if (!getInstanceTime().equals(other.getInstanceTime())) return false; return true; }
/** * reload the model entity from the db and check if it has changed. * * @return true if the entity has changed in a way that affects reminders */ @Override public boolean reloadAndCheckForChanges() { try { Appointment origAppt = appt; appt = AppointmentModel.getReference().getAppt(appt.getKey()); if (appt == null) { return true; } if (!appt.getDate().equals(origAppt.getDate())) { // date changed - delete. new instance will be added on // periodic update return true; } // delete it if the text changed - will be added back in // periodic check for // popups if (!appt.getText().equals(origAppt.getText())) { return true; } if (isTodo()) { // skip if inst time changed for untimed todos Date nt = appt.getNextTodo(); if (nt == null) nt = appt.getDate(); if (!getInstanceTime().equals(nt)) { return true; } } } catch (Exception e) { // appt cannot be read, must have been deleted // this is an expected case when appointments are deleted appt = null; return true; } return false; }