import java.time.LocalDate; import java.time.LocalTime; import static java.util.Objects.requireNonNull; public final class Appointment { private Type type; private LocalDate date; private LocalTime time; private String notes; public Appointment(Type type, LocalDate date, LocalTime time, String notes) { this.type = requireNonNull(type, "Type must not be null"); this.date = requireNonNull(date, "date must not be null"); this.time = requireNonNull(time, "time must not be null"); this.notes = requireNonNull(notes, "note must not be null"); } public Type getType() { return type; } public LocalDate getDate() { return date; } public LocalTime getTime() { return time; } public String getNotes() { return notes; } public void setType(Type type) { this.type = requireNonNull(type, "Type must not be null"); } public void setDate(LocalDate date) { this.date = requireNonNull(date, "date must not be null"); } public void setTime(LocalTime time) { this.time = requireNonNull(time, "time must not be null"); } public void setNotes(String notes) { this.notes = requireNonNull(notes, "note must not be null"); } @Override public String toString() { return "Appointment{" + "type=" + type + ", date=" + date + ", time=" + time + ", notes='" + notes + '\'' + '}'; } public enum Type { VET_VISIT, VACCINATION, GROOMING } }