package proj3; public class CalendarEvent { private static int nextId = 1; private Date date; private Time startTime; private int duration; private String what; private String where; private String description; private int id; private boolean valid; public CalendarEvent(int year, int month, int day, int hour, int minute, int duration, String what) { date = new Date(year, month, day); startTime = new Time(hour, minute); this.duration = duration; this.setWhat(what); id = nextId++; Time endTime = startTime.add(duration); valid = date.isValid() && endTime.isValid(); } public Date getDate() { return date; } public Time getStartTime() { return startTime; } public int getDuration() { return duration; } public int getId() { return id; } public boolean isValid() { return valid; } public void setWhat(String what) { this.what = what; } public String getWhat() { return what; } public void setWhere(String where) { this.where = where; } public String getWhere() { return where; } public void setDescription(String description) { this.description = description; } public String getDescription() { return description; } public int compareTo(Object other) { CalendarEvent otherEvent = (CalendarEvent) other; int val; val = date.compareTo(otherEvent.date); if (val != 0) return val; return startTime.compareTo(otherEvent.startTime); } public String toString() { String invalidString = ""; if (!valid) invalidString = ", invalid"; return what + " on " + date + " at " + startTime + " for " + duration + " minutes" + invalidString; } }