clean up.
This commit is contained in:
@@ -12,6 +12,7 @@ import lodge.reservationsystem.HotelReservation;
|
|||||||
import lodge.reservationsystem.HouseReservation;
|
import lodge.reservationsystem.HouseReservation;
|
||||||
import lodge.reservationsystem.Reservation;
|
import lodge.reservationsystem.Reservation;
|
||||||
import lodge.reservationsystem.ReservationStatusEnum;
|
import lodge.reservationsystem.ReservationStatusEnum;
|
||||||
|
import lodge.reservationsystem.DuplicateObjectException;
|
||||||
|
|
||||||
public final class TestReservations {
|
public final class TestReservations {
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
@@ -91,12 +92,12 @@ public final class TestReservations {
|
|||||||
Reservation rsrv = account.getReservation_list().getLast();
|
Reservation rsrv = account.getReservation_list().getLast();
|
||||||
|
|
||||||
// 6. Complete reservation that is associated with an account
|
// 6. Complete reservation that is associated with an account
|
||||||
rsrv = mgr.retreiveReservation(cabin.getReservation_number());
|
rsrv = mgr.retreiveReservation(rsrv.getReservation_number());
|
||||||
rsrv.Change(rsrv, ReservationStatusEnum.Completed);
|
rsrv.Change(rsrv, ReservationStatusEnum.Completed);
|
||||||
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
||||||
|
|
||||||
// 7. Cancel reservation that is associated with an account
|
// 7. Cancel reservation that is associated with an account
|
||||||
rsrv = mgr.retreiveReservation(cabin.getReservation_number());
|
rsrv = mgr.retreiveReservation(rsrv.getReservation_number());
|
||||||
rsrv.Change(rsrv, ReservationStatusEnum.Canceled);
|
rsrv.Change(rsrv, ReservationStatusEnum.Canceled);
|
||||||
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ public final class AccomodationManager {
|
|||||||
|
|
||||||
private final AccountList account_list = new AccountList();
|
private final AccountList account_list = new AccountList();
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
AccomodationManager() {
|
AccomodationManager() {
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -30,10 +29,9 @@ public final class AccomodationManager {
|
|||||||
|
|
||||||
// Load / Deserialize Account
|
// Load / Deserialize Account
|
||||||
void load(Path file) throws Exception {
|
void load(Path file) throws Exception {
|
||||||
AddAccount( DataRepository.LoadAccount(file) );
|
|
||||||
Account account = DataRepository.LoadAccount(file);
|
Account account = DataRepository.LoadAccount(file);
|
||||||
if( account == null )
|
if (account == null) {
|
||||||
{
|
|
||||||
System.out.println(String.format("%s", file.toString()));
|
System.out.println(String.format("%s", file.toString()));
|
||||||
} else {
|
} else {
|
||||||
account_list.add(account);
|
account_list.add(account);
|
||||||
@@ -53,9 +51,10 @@ public final class AccomodationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateAccount(Account acct) throws Exception {
|
public void UpdateAccount(Account acct) throws Exception {
|
||||||
|
if( acct != null ){
|
||||||
AccountList.save(account_list, acct);
|
AccountList.save(account_list, acct);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public final Account newAccount(String phone_number, Address mailing_address, EmailAddress email_address)
|
public final Account newAccount(String phone_number, Address mailing_address, EmailAddress email_address)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class Account {
|
|||||||
result = reservation_list.add(rsrv);
|
result = reservation_list.add(rsrv);
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ReservationException("Error Reservation already exists.");
|
throw new DuplicateObjectException("Error Reservation already exists.");
|
||||||
}
|
}
|
||||||
} catch (ReservationException e) {
|
} catch (ReservationException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ public class AccountList extends ArrayList<Account> {
|
|||||||
return String.format("A%09d", Math.abs(java.util.Objects.hash(phone_number, mailing_address, email_address)));
|
return String.format("A%09d", Math.abs(java.util.Objects.hash(phone_number, mailing_address, email_address)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Account newAccount(String phone_number, Address mailing_address, EmailAddress email_address) throws Exception {
|
public static Account newAccount(String phone_number, Address mailing_address, EmailAddress email_address)
|
||||||
|
throws Exception {
|
||||||
Account A = new Account(AccountList.accountSerial(phone_number, mailing_address, email_address),
|
Account A = new Account(AccountList.accountSerial(phone_number, mailing_address, email_address),
|
||||||
phone_number,
|
phone_number,
|
||||||
mailing_address,
|
mailing_address,
|
||||||
@@ -21,20 +22,21 @@ public class AccountList extends ArrayList<Account> {
|
|||||||
|
|
||||||
return A;
|
return A;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ** Add account throw error if account number is pre-existing. */
|
// ** Add account throw error if account number is pre-existing. */
|
||||||
public static Account addAccount(final AccountList account_list, final Account account) throws DuplicateObjectException, AccountException {
|
public static Account addAccount(final AccountList account_list, final Account account)
|
||||||
String acctNumber = "";
|
throws DuplicateObjectException, AccountException {
|
||||||
|
try {
|
||||||
for (Account acct : account_list) {
|
for (Account acct : account_list) {
|
||||||
if( acct.account_number() == account.account_number() ){
|
if (acct.account_number().compareTo(account.account_number()) == 0) {
|
||||||
acctNumber = acct.account_number();
|
throw new DuplicateObjectException(
|
||||||
break;
|
String.format("Account %s exists, duplicates not allowed.", acct.account_number()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!acctNumber.isEmpty()) {
|
} catch (DuplicateObjectException e) {
|
||||||
throw new DuplicateObjectException("Account exists, duplicates not allowed.");
|
return null;
|
||||||
} else {
|
}
|
||||||
account_list.add(account);
|
account_list.add(account);
|
||||||
}
|
|
||||||
return account;
|
return account;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ public class AccountReservationList extends ArrayList<Reservation> {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
for(Reservation rsrv: this){
|
for(Reservation rsrv: this){
|
||||||
boolean result = reservation.getReservation_number().compareTo(rsrv.getReservation_number()) == 0;
|
result = reservation.getReservation_number().compareTo(rsrv.getReservation_number()) == 0;
|
||||||
if(result){
|
if(result){
|
||||||
return result;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
reservation.reservation_number = AccountReservationList.reservationSerial(reservation);
|
reservation.reservation_number = AccountReservationList.reservationSerial(reservation);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package lodge.reservationsystem;
|
|||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.FileVisitResult;
|
import java.nio.file.FileVisitResult;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
@@ -13,7 +12,6 @@ import java.nio.file.SimpleFileVisitor;
|
|||||||
import java.nio.file.attribute.BasicFileAttributes;
|
import java.nio.file.attribute.BasicFileAttributes;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
|
|
||||||
|
|
||||||
import com.google.gson.stream.JsonReader;
|
import com.google.gson.stream.JsonReader;
|
||||||
|
|
||||||
final class DataRepository {
|
final class DataRepository {
|
||||||
@@ -66,14 +64,6 @@ final class DataRepository {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Account LoadAccount(Path file) throws IOException {
|
|
||||||
Account ac = null;
|
|
||||||
try (BufferedReader in = new BufferedReader(new FileReader(file.toFile(), StandardCharsets.UTF_8))) {
|
|
||||||
JsonReader jsonReader = new JsonReader(in);
|
|
||||||
/**
|
|
||||||
* @param file
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
public final static Account LoadAccount(final Path file) throws IOException {
|
public final static Account LoadAccount(final Path file) throws IOException {
|
||||||
/** @TODO finish loading Account */
|
/** @TODO finish loading Account */
|
||||||
try (BufferedReader in = new BufferedReader(new FileReader(file.toFile(), StandardCharsets.UTF_8));
|
try (BufferedReader in = new BufferedReader(new FileReader(file.toFile(), StandardCharsets.UTF_8));
|
||||||
@@ -133,7 +123,6 @@ final class DataRepository {
|
|||||||
jsonReader.close();
|
jsonReader.close();
|
||||||
return ac.account_number.length() > 8 ? ac : null;
|
return ac.account_number.length() > 8 ? ac : null;
|
||||||
}
|
}
|
||||||
return ac;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void loadReservationRefList(JsonReader rdr, Account ac) throws IOException {
|
static void loadReservationRefList(JsonReader rdr, Account ac) throws IOException {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package lodge.reservationsystem;
|
package lodge.reservationsystem;
|
||||||
|
|
||||||
class DuplicateObjectException extends RuntimeException {
|
public class DuplicateObjectException extends RuntimeException {
|
||||||
public DuplicateObjectException() {
|
public DuplicateObjectException() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|||||||
1
src/resources/acc-A1450981765.json
Normal file
1
src/resources/acc-A1450981765.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ "Account":{"account_number": "A1450981765","phone_number": "701-456-7890","mailing_address": { "Address":{"street": "10 wilco ave","city": "wilco","state": "WY","zip": "82801"}},"email_address": { "EmailAddress":{"email": "wilco@wyommin.net"}},"reservation_list":[{"HotelReservation":{"reservation_number":"R0123077641"}},{"CabinReservation":{"reservation_number":"R2042828431"}},{"HouseReservation":{"reservation_number":"R0499811708"}}]}}
|
||||||
1
src/resources/rsv-R0123077641.json
Normal file
1
src/resources/rsv-R0123077641.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ "HotelReservation":{"reservation_type": "HotelReservation","reservation_number": "R0123077641","reservation_status": "Draft","reservation_start_date": "2025-07-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","physical_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "CA","zip": "20723"}},"mailing_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "MD","zip": "20723"}},"kitchen": "None","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "120.0"}}
|
||||||
1
src/resources/rsv-R0499811708.json
Normal file
1
src/resources/rsv-R0499811708.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ "HouseReservation":{"reservation_type": "HouseReservation","reservation_number": "R0499811708","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","physical_address": { "Address":{"street": "3000 Osage ave","city": "GreenBelt","state": "MD","zip": "20740"}},"mailing_address": { "Address":{"street": "40012 College ave","city": "College Park","state": "MD","zip": "20740"}},"kitchen": "FullKitchen","numberOfBeds": "4","numberOfBedRooms": "3","numberOfBathRooms": "1","numberOfFloors": "3","squareFeet": "1400","price": "120.0"}}
|
||||||
1
src/resources/rsv-R2042828431.json
Normal file
1
src/resources/rsv-R2042828431.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ "CabinReservation":{"reservation_type": "CabinReservation","reservation_number": "R2042828431","reservation_status": "Completed","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","physical_address": { "Address":{"street": "30 cabin ave","city": "Carnelian","state": "CA","zip": "96140"}},"mailing_address": { "Address":{"street": "40 cabin ave","city": "Carnelian Bay","state": "CA","zip": "96140"}},"kitchen": "Kitchenette","numberOfBeds": "4","numberOfBedRooms": "3","numberOfBathRooms": "1","numberOfFloors": "2","squareFeet": "806","price": "10200.0"}}
|
||||||
Reference in New Issue
Block a user