diff --git a/src/java/lodge/reservationsystem/AccountReservationList.java b/src/java/lodge/reservationsystem/AccountReservationList.java index 8a46c93..5ba1694 100644 --- a/src/java/lodge/reservationsystem/AccountReservationList.java +++ b/src/java/lodge/reservationsystem/AccountReservationList.java @@ -11,19 +11,21 @@ public class AccountReservationList extends ArrayList { @Override public boolean add(final Reservation reservation) { boolean result = true; + Reservation rsrv = this.find(reservation.getReservation_number()); + if( rsrv != null ){ + result = false; + throw new DuplicateObjectException(String.format("Error Duplicate: Reservation %s", rsrv.getReservation_number())); + } try { result = reservation.checkValid(); - } catch (Exception e) { + } catch (ReservationException ex) { return false; } - for (Reservation rsrv : this) { - result = reservation.getReservation_number().compareTo(rsrv.getReservation_number()) == 0; - if (result) { - return false; - } + if(result){ + reservation.setReservation_number(AccountReservationList.reservationSerial(reservation)); + result = super.add(reservation); } - reservation.setReservation_number(AccountReservationList.reservationSerial(reservation)); - return super.add(reservation); + return result; } @Override diff --git a/src/java/lodge/reservationsystem/Reservation.java b/src/java/lodge/reservationsystem/Reservation.java index 8bbbae6..ce26a6f 100644 --- a/src/java/lodge/reservationsystem/Reservation.java +++ b/src/java/lodge/reservationsystem/Reservation.java @@ -212,7 +212,7 @@ public abstract class Reservation { throw new IllegalOperationException ("Invalid Change, reservation has completed."); } if (ZonedDateTime.now().compareTo(this.reservation_start_date) > -1) { - throw new IllegalOperationException ("Invalid Change, reservation started."); + throw new IllegalOperationException ("Invalid Change, reservation time started."); } }