changes
This commit is contained in:
3
.vscode/extensions.json
vendored
Normal file
3
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"recommendations": []
|
||||
}
|
||||
@@ -15,7 +15,6 @@
|
||||
| Language Support for Java(TM) by Red Hat |
|
||||
|
||||
### Run and Debug Java manually
|
||||
|
||||
cd to: libs
|
||||
java -cp .\libs\gson-2.13.1.jar;.\libs\reservationsystem.jar lodge.TestReservations
|
||||
|
||||
@@ -23,5 +22,7 @@ java -cp .\libs\gson-2.13.1.jar;.\libs\reservationsystem.jar lodge.TestReservati
|
||||
### create jar archive:
|
||||
gradle clean build jar
|
||||
|
||||
### Dot file review for classdiagram
|
||||
### dot -Tsvg classdiagram.dot -o classdiagram.svg
|
||||
|
||||
|
||||
|
||||
BIN
sdd/Software Detail Design Template.docx
Normal file
BIN
sdd/Software Detail Design Template.docx
Normal file
Binary file not shown.
@@ -14,6 +14,7 @@ import java.nio.file.Paths;
|
||||
import java.util.ListIterator;
|
||||
|
||||
import lodge.reservation.Reservation;
|
||||
import lodge.reservationsystem.DataRepository;
|
||||
import lodge.reservation.IReservation;
|
||||
|
||||
public class Account {
|
||||
@@ -23,7 +24,7 @@ public class Account {
|
||||
private EmailAddress email_address;
|
||||
private final AccountReservationList reservations = new AccountReservationList();
|
||||
|
||||
protected Account() {
|
||||
public Account() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -13,10 +13,10 @@ import java.nio.file.Paths;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
import lodge.data.Address;
|
||||
import lodge.data.DataRepository;
|
||||
import lodge.data.IllegalOperationException;
|
||||
import lodge.data.KitchenTypeEnum;
|
||||
import lodge.data.ReservationStatusEnum;
|
||||
import lodge.reservationsystem.DataRepository;
|
||||
|
||||
public abstract class Reservation implements IReservation{
|
||||
private char type;
|
||||
|
||||
@@ -12,7 +12,6 @@ import java.util.List;
|
||||
import lodge.data.Account;
|
||||
import lodge.data.AccountList;
|
||||
import lodge.data.Address;
|
||||
import lodge.data.DataRepository;
|
||||
import lodge.data.EmailAddress;
|
||||
import lodge.reservation.Reservation;
|
||||
import lodge.reservation.IReservation;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* license: GPLv3
|
||||
* lodge.reservationsystem
|
||||
*/
|
||||
package lodge.data;
|
||||
package lodge.reservationsystem;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
@@ -17,13 +17,13 @@ import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import lodge.data.Address;
|
||||
import lodge.data.EmailAddress;
|
||||
import lodge.data.Account;
|
||||
import lodge.data.KitchenTypeEnum;
|
||||
import lodge.data.ReservationStatusEnum;
|
||||
import lodge.reservation.Reservation;
|
||||
|
||||
import lodge.reservationsystem.AccomodationManager;
|
||||
import lodge.reservationsystem.CabinReservation;
|
||||
import lodge.reservationsystem.HotelReservation;
|
||||
import lodge.reservationsystem.HouseReservation;
|
||||
|
||||
public final class DataRepository {
|
||||
// SINGLETON CLASS
|
||||
// hard code data store location for storage of
|
||||
@@ -1,293 +1,113 @@
|
||||
digraph LodgeReservationSystem {
|
||||
// Graph settings
|
||||
rankdir=TB;
|
||||
node [shape=record, style=filled, fillcolor=lightyellow];
|
||||
edge [arrowhead=empty];
|
||||
node [shape=record, fontname="Arial", fontsize=10];
|
||||
edge [arrowhead="empty", fontname="Arial", fontsize=9];
|
||||
|
||||
// Data Package Classes
|
||||
Account [label="{Account|
|
||||
- account_number: String\l
|
||||
- phone_number: String\l
|
||||
- mailing_address: Address\l
|
||||
- email_address: EmailAddress\l
|
||||
- reservations: AccountReservationList\l|
|
||||
+ Account()\l
|
||||
+ Account(account_number, phone_number, mailing_address, email_address)\l
|
||||
+ Account(phone_number, mailing_address, email_address)\l
|
||||
+ toString(): String\l
|
||||
+ add(rsrv: Reservation): boolean\l
|
||||
+ Write(acct: Account): void\l
|
||||
+ getAccount_number(): String\l
|
||||
+ setAccount_number(account_number: String): void\l
|
||||
+ getPhone_number(): String\l
|
||||
+ setPhone_number(phone_number: String): void\l
|
||||
+ getMailing_address(): Address\l
|
||||
+ setMailing_address(mailing_address: Address): void\l
|
||||
+ getEmail_address(): EmailAddress\l
|
||||
+ setEmail_address(email_address: EmailAddress): void\l
|
||||
+ hashCode(): int\l
|
||||
+ findReservation(reservation_number: String): Reservation\l
|
||||
+ equals(obj: Object): boolean\l
|
||||
+ update(acct: Account): void\l
|
||||
+ getAllReservations(): ListIterator\<IReservation\>\l
|
||||
}"]
|
||||
// Package clusters
|
||||
subgraph cluster_data {
|
||||
label="lodge.data";
|
||||
style=dashed;
|
||||
color=blue;
|
||||
|
||||
AccountList [label="{AccountList|
|
||||
|
|
||||
+ accountSerial(phone_number, mailing_address, email_address): String\l
|
||||
+ add(account: Account): boolean\l
|
||||
+ save(acct: Account): void\l
|
||||
+ find(account_number: String): Account\l
|
||||
+ getListOfReservations(): List\<? extends IReservation\>\l
|
||||
+ showReservationList(): void\l
|
||||
}"]
|
||||
// Account class
|
||||
Account [label="{Account|+ Account()\l+ Account(String, String, Address, EmailAddress)\l+ Account(String, Address, EmailAddress)\l|+ toString(): String\l+ add(Reservation): boolean\l+ Write(Account): void\l+ getAccount_number(): String\l+ setAccount_number(String): void\l+ getPhone_number(): String\l+ setPhone_number(String): void\l+ getMailing_address(): Address\l+ setMailing_address(Address): void\l+ getEmail_address(): EmailAddress\l+ setEmail_address(EmailAddress): void\l+ findReservation(String): Reservation\l+ update(Account): void\l+ getAllReservations(): ListIterator\<IReservation\>\l+ hashCode(): int\l+ equals(Object): boolean\l}"];
|
||||
|
||||
AccountReservationList [label="{AccountReservationList|
|
||||
|
|
||||
- reservationSerial(reservation: Reservation): String\l
|
||||
+ add(reservation: IReservation): boolean\l
|
||||
+ toString(): String\l
|
||||
+ find(reservation_number: String): Reservation\l
|
||||
+ update(incoming_reservation_list: AccountReservationList): void\l
|
||||
}"]
|
||||
// AccountList class
|
||||
AccountList [label="{AccountList|+ AccountList()\l|+ accountSerial(String, Address, EmailAddress): String\l+ add(Account): boolean\l+ save(Account): void\l+ find(String): Account\l+ getListOfReservations(): List\<? extends IReservation\>\l+ showReservationList(): void\l}"];
|
||||
|
||||
Address [label="{Address|
|
||||
- street: String\l
|
||||
- city: String\l
|
||||
- state: String\l
|
||||
- zip: String\l|
|
||||
+ Address(street, city, state, zip)\l
|
||||
+ getStreet(): String\l
|
||||
+ setStreet(street: String): void\l
|
||||
+ getCity(): String\l
|
||||
+ setCity(city: String): void\l
|
||||
+ getState(): String\l
|
||||
+ setState(state: String): void\l
|
||||
+ getZip(): String\l
|
||||
+ setZip(zip: String): void\l
|
||||
+ hashCode(): int\l
|
||||
+ equals(obj: Object): boolean\l
|
||||
+ toString(): String\l
|
||||
}"]
|
||||
// AccountReservationList class
|
||||
AccountReservationList [label="{AccountReservationList|+ AccountReservationList()\l|- reservationSerial(Reservation): String\l|+ add(IReservation): boolean\l+ toString(): String\l+ find(String): Reservation\l+ update(AccountReservationList): void\l}"];
|
||||
|
||||
EmailAddress [label="{EmailAddress|
|
||||
- email_address: String\l|
|
||||
+ EmailAddress(email_address: String)\l
|
||||
+ getEmail_address(): String\l
|
||||
+ setEmail_address(email_address: String): void\l
|
||||
+ hashCode(): int\l
|
||||
+ equals(obj: Object): boolean\l
|
||||
+ toString(): String\l
|
||||
}"]
|
||||
// Address class
|
||||
Address [label="{Address|- Address()\l+ Address(String, String, String, String)\l|+ getStreet(): String\l+ setStreet(String): void\l+ getCity(): String\l+ setCity(String): void\l+ getState(): String\l+ setState(String): void\l+ getZip(): String\l+ setZip(String): void\l+ hashCode(): int\l+ equals(Object): boolean\l+ toString(): String\l}"];
|
||||
|
||||
DataRepository [label="{DataRepository|
|
||||
- directoryPath: String\l
|
||||
- instance: DataRepository\l|
|
||||
# getInstance(): DataRepository\l
|
||||
+ setDataStoreRoot(directoryPath: String): void\l
|
||||
+ getPath(): String\l
|
||||
+ Reservation(type: String): Reservation\l
|
||||
+ WalkFileSystemTree(manager: AccomodationManager, rootDir: Path): void\l
|
||||
+ LoadAccount(file: Path): Account\l
|
||||
- loadReservationRefList(rdr: JsonReader, ac: Account): void\l
|
||||
- loadReservation(ac: Account, reservationType: String, reservationNumber: String): void\l
|
||||
}"]
|
||||
// EmailAddress class
|
||||
EmailAddress [label="{EmailAddress|+ EmailAddress(String)\l|+ getEmail_address(): String\l+ setEmail_address(String): void\l+ hashCode(): int\l+ equals(Object): boolean\l+ toString(): String\l}"];
|
||||
|
||||
// Enums
|
||||
KitchenTypeEnum [label="{«enumeration»\nKitchenTypeEnum|
|
||||
None\l
|
||||
Kitchenette\l
|
||||
FullKitchen\l
|
||||
}", fillcolor=lightblue]
|
||||
// Exception classes
|
||||
DuplicateObjectException [label="{DuplicateObjectException|+ DuplicateObjectException()\l+ DuplicateObjectException(String)\l}"];
|
||||
IllegalOperationException [label="{IllegalOperationException|+ IllegalOperationException()\l+ IllegalOperationException(String)\l}"];
|
||||
|
||||
ReservationStatusEnum [label="{«enumeration»\nReservationStatusEnum|
|
||||
Draft\l
|
||||
Canceled\l
|
||||
Completed\l
|
||||
}", fillcolor=lightblue]
|
||||
// Enums
|
||||
KitchenTypeEnum [label="{«enumeration»\lKitchenTypeEnum|None\lKitchenette\lFullKitchen\l}"];
|
||||
ReservationStatusEnum [label="{«enumeration»\lReservationStatusEnum|Draft\lCanceled\lCompleted\l}"];
|
||||
}
|
||||
|
||||
// Exceptions
|
||||
DuplicateObjectException [label="{DuplicateObjectException|
|
||||
|
|
||||
+ DuplicateObjectException()\l
|
||||
+ DuplicateObjectException(message: String)\l
|
||||
}", fillcolor=lightcoral]
|
||||
subgraph cluster_reservation {
|
||||
label="lodge.reservation";
|
||||
style=dashed;
|
||||
color=green;
|
||||
|
||||
IllegalOperationException [label="{IllegalOperationException|
|
||||
|
|
||||
+ IllegalOperationException()\l
|
||||
+ IllegalOperationException(message: String)\l
|
||||
}", fillcolor=lightcoral]
|
||||
// IReservation interface
|
||||
IReservation [label="{«interface»\lIReservation|+ ReservationType(): String\l+ copy(String): Reservation\l+ getReservation_number(): String\l+ getAccountNumber(): String\l+ getPhysical_address(): Address\l+ getPricePerNight(): float\l+ calculatePrice(): float\l+ checkValid(): boolean\l}"];
|
||||
|
||||
// Reservation Package
|
||||
IReservation [label="{«interface»\nIReservation|
|
||||
|
|
||||
+ ReservationType(): String\l
|
||||
+ copy(type: String): Reservation\l
|
||||
+ getReservation_number(): String\l
|
||||
+ getAccountNumber(): String\l
|
||||
+ getPhysical_address(): Address\l
|
||||
+ getPricePerNight(): float\l
|
||||
+ calculatePrice(): float\l
|
||||
+ checkValid(): boolean\l
|
||||
}", fillcolor=lightgreen]
|
||||
// Reservation abstract class
|
||||
Reservation [label="{«abstract»\lReservation|# Reservation()\l|+ setReservation_number(String): void\l+ getReservation_number(): String\l+ getAccountNumber(): String\l+ setAccountNumber(String): void\l+ setPhysical_address(Address): void\l+ mailing_address(): Address\l+ setMailing_address(Address): void\l+ setReservation_start_date(ZonedDateTime): void\l+ setReservation_end_date(ZonedDateTime): void\l+ setReservation_status(ReservationStatusEnum): void\l+ getKitchen(): KitchenTypeEnum\l+ setKitchen(KitchenTypeEnum): void\l+ setNumberOfBeds(Integer): void\l+ numberOfBedRooms(): Integer\l+ setNumberOfBedRooms(Integer): void\l+ setNumberOfBathRooms(Integer): void\l+ setNumberOfFloors(Integer): void\l+ setSquareFeet(Integer): void\l+ setPrice(Float): void\l+ getType(): char\l+ setType(char): void\l+ getPhysical_address(): Address\l+ getMailing_address(): Address\l+ getReservation_start_date(): ZonedDateTime\l+ getReservation_end_date(): ZonedDateTime\l+ getReservation_status(): ReservationStatusEnum\l+ getNumberOfBeds(): Integer\l+ getNumberOfBedRooms(): Integer\l+ getNumberOfBathRooms(): Integer\l+ getNumberOfFloors(): Integer\l+ getSquareFeet(): Integer\l+ getPrice(): Float\l+ hashCode(): int\l+ equals(Object): boolean\l+ toString(): String\l+ Write(Reservation): void\l+ Change(Reservation, ReservationStatusEnum): void\l+ update(Reservation): void\l+ ReservationType(): String\l}"];
|
||||
}
|
||||
|
||||
Reservation [label="{«abstract»\nReservation|
|
||||
- type: char\l
|
||||
- reservation_number: String\l
|
||||
- physical_address: Address\l
|
||||
- mailing_address: Address\l
|
||||
- reservation_start_date: ZonedDateTime\l
|
||||
- reservation_end_date: ZonedDateTime\l
|
||||
- reservation_status: ReservationStatusEnum\l
|
||||
- kitchen: KitchenTypeEnum\l
|
||||
- numberOfBeds: Integer\l
|
||||
- numberOfBedRooms: Integer\l
|
||||
- numberOfBathRooms: Integer\l
|
||||
- numberOfFloors: Integer\l
|
||||
- squareFeet: Integer\l
|
||||
- price: Float\l
|
||||
# accountNumber: String\l|
|
||||
# Reservation()\l
|
||||
+ setReservation_number(reservation_number: String): void\l
|
||||
+ getReservation_number(): String\l
|
||||
+ getAccountNumber(): String\l
|
||||
+ setAccountNumber(account_number: String): void\l
|
||||
+ setPhysical_address(physical_address: Address): void\l
|
||||
+ getPhysical_address(): Address\l
|
||||
+ getMailing_address(): Address\l
|
||||
+ setMailing_address(mailing_address: Address): void\l
|
||||
+ setReservation_start_date(reservation_start_date: ZonedDateTime): void\l
|
||||
+ getReservation_start_date(): ZonedDateTime\l
|
||||
+ setReservation_end_date(reservation_end_date: ZonedDateTime): void\l
|
||||
+ getReservation_end_date(): ZonedDateTime\l
|
||||
+ setReservation_status(reservation_status: ReservationStatusEnum): void\l
|
||||
+ getReservation_status(): ReservationStatusEnum\l
|
||||
+ getKitchen(): KitchenTypeEnum\l
|
||||
+ setKitchen(kitchen: KitchenTypeEnum): void\l
|
||||
+ setNumberOfBeds(numberOfBeds: Integer): void\l
|
||||
+ getNumberOfBeds(): Integer\l
|
||||
+ numberOfBedRooms(): Integer\l
|
||||
+ setNumberOfBedRooms(numberOfBedRooms: Integer): void\l
|
||||
+ getNumberOfBedRooms(): Integer\l
|
||||
+ setNumberOfBathRooms(numberOfBathRooms: Integer): void\l
|
||||
+ getNumberOfBathRooms(): Integer\l
|
||||
+ setNumberOfFloors(numberOfFloors: Integer): void\l
|
||||
+ getNumberOfFloors(): Integer\l
|
||||
+ setSquareFeet(squareFeet: Integer): void\l
|
||||
+ getSquareFeet(): Integer\l
|
||||
+ setPrice(price: Float): void\l
|
||||
+ getPrice(): Float\l
|
||||
+ getType(): char\l
|
||||
+ setType(type: char): void\l
|
||||
+ hashCode(): int\l
|
||||
+ equals(obj: Object): boolean\l
|
||||
+ toString(): String\l
|
||||
+ Write(reservation: Reservation): void\l
|
||||
+ Change(reservation: Reservation, newStatus: ReservationStatusEnum): void\l
|
||||
+ update(rsrv: Reservation): void\l
|
||||
+ {abstract} ReservationType(): String\l
|
||||
}", fillcolor=lightgray]
|
||||
subgraph cluster_reservationsystem {
|
||||
label="lodge.reservationsystem";
|
||||
style=dashed;
|
||||
color=red;
|
||||
|
||||
// ReservationSystem Package
|
||||
AccomodationManager [label="{AccomodationManager|
|
||||
- accounts: AccountList\l|
|
||||
+ AccomodationManager(home: String)\l
|
||||
+ setDataStoreRoot(home: String): void\l
|
||||
+ loadAll(): void\l
|
||||
+ load(file: Path): void\l
|
||||
+ retrieveLoadedAccounts(): List\<Account\>\l
|
||||
+ retrieveAccount(acct_id: String): Account\l
|
||||
+ AddAccount(acct: Account): void\l
|
||||
+ UpdateAccount(acct: Account): void\l
|
||||
+ newAccount(phone_number, mailing_address, email_address): Account\l
|
||||
+ addReservation(account: Account, reservation: Reservation): boolean\l
|
||||
+ findReservation(reservation_number: String): Reservation\l
|
||||
+ getReservationList(): List\<? extends IReservation\>\l
|
||||
+ showReservationList(): void\l
|
||||
}"]
|
||||
// Concrete reservation classes
|
||||
CabinReservation [label="{CabinReservation|+ CabinReservation()\l+ CabinReservation(Address)\l|+ ReservationType(): String\l+ checkValid(): boolean\l+ getPricePerNight(): float\l+ calculatePrice(): float\l}"];
|
||||
|
||||
HotelReservation [label="{HotelReservation|
|
||||
|
|
||||
+ HotelReservation()\l
|
||||
+ HotelReservation(physical_address: Address)\l
|
||||
+ copy(reservationType: String): Reservation\l
|
||||
+ ReservationType(): String\l
|
||||
+ checkValid(): boolean\l
|
||||
+ getPricePerNight(): float\l
|
||||
+ calculatePrice(): float\l
|
||||
}"]
|
||||
HotelReservation [label="{HotelReservation|+ HotelReservation()\l+ HotelReservation(Address)\l|+ copy(String): Reservation\l+ ReservationType(): String\l+ checkValid(): boolean\l+ getPricePerNight(): float\l+ calculatePrice(): float\l}"];
|
||||
|
||||
HouseReservation [label="{HouseReservation|
|
||||
|
|
||||
+ HouseReservation()\l
|
||||
+ HouseReservation(physical_address: Address)\l
|
||||
+ copy(reservationType: String): Reservation\l
|
||||
+ ReservationType(): String\l
|
||||
+ checkValid(): boolean\l
|
||||
+ getPricePerNight(): float\l
|
||||
+ calculatePrice(): float\l
|
||||
}"]
|
||||
HouseReservation [label="{HouseReservation|+ HouseReservation()\l+ HouseReservation(Address)\l|+ copy(String): Reservation\l+ ReservationType(): String\l+ checkValid(): boolean\l+ getPricePerNight(): float\l+ calculatePrice(): float\l}"];
|
||||
|
||||
CabinReservation [label="{CabinReservation|
|
||||
|
|
||||
+ CabinReservation()\l
|
||||
+ CabinReservation(physical_address: Address)\l
|
||||
+ ReservationType(): String\l
|
||||
+ checkValid(): boolean\l
|
||||
+ getPricePerNight(): float\l
|
||||
+ calculatePrice(): float\l
|
||||
}"]
|
||||
// AccommodationManager class
|
||||
AccomodationManager [label="{AccomodationManager|- AccomodationManager()\l+ AccomodationManager(String)\l|+ setDataStoreRoot(String): void\l+ loadAll(): void\l+ load(Path): void\l+ retrieveLoadedAccounts(): List\<Account\>\l+ retrieveAccount(String): Account\l+ AddAccount(Account): void\l+ UpdateAccount(Account): void\l+ newAccount(String, Address, EmailAddress): Account\l+ addReservation(Account, Reservation): boolean\l+ findReservation(String): Reservation\l+ getReservationList(): List\<? extends IReservation\>\l+ showReservationList(): void\l}"];
|
||||
|
||||
TestReservations [label="{TestReservations|
|
||||
|
|
||||
+ main(args: String[]): void\l
|
||||
}"]
|
||||
// DataRepository class
|
||||
DataRepository [label="{DataRepository|# getInstance(): DataRepository\l|+ setDataStoreRoot(String): void\l+ getPath(): String\l+ Reservation(String): Reservation\l+ WalkFileSystemTree(AccomodationManager, Path): void\l+ LoadAccount(Path): Account\l- loadReservationRefList(JsonReader, Account): void\l- loadReservation(Account, String, String): void\l}"];
|
||||
}
|
||||
|
||||
getRepositoryConfig [label="{getRepositoryConfig|
|
||||
|
|
||||
+ getPath(): String\l
|
||||
}"]
|
||||
subgraph cluster_main {
|
||||
label="lodge";
|
||||
style=dashed;
|
||||
color=purple;
|
||||
|
||||
// Base class relationships
|
||||
RuntimeException [label="RuntimeException", fillcolor=white]
|
||||
ArrayList [label="ArrayList\<T\>", fillcolor=white]
|
||||
TestReservations [label="{TestReservations|+ main(String[]): void\l}"];
|
||||
|
||||
getRepositoryConfig [label="{getRepositoryConfig|+ getPath(): String\l}"];
|
||||
}
|
||||
|
||||
// Inheritance relationships
|
||||
AccountList -> ArrayList [arrowhead=empty]
|
||||
AccountReservationList -> ArrayList [arrowhead=empty]
|
||||
DuplicateObjectException -> RuntimeException [arrowhead=empty]
|
||||
IllegalOperationException -> RuntimeException [arrowhead=empty]
|
||||
AccountList -> "ArrayList<Account>" [arrowhead=empty, style=solid];
|
||||
AccountReservationList -> "ArrayList<IReservation>" [arrowhead=empty, style=solid];
|
||||
Reservation -> IReservation [arrowhead=empty, style=dashed, label="implements"];
|
||||
CabinReservation -> Reservation [arrowhead=empty, style=solid];
|
||||
HotelReservation -> Reservation [arrowhead=empty, style=solid];
|
||||
HouseReservation -> Reservation [arrowhead=empty, style=solid];
|
||||
DuplicateObjectException -> RuntimeException [arrowhead=empty, style=solid];
|
||||
IllegalOperationException -> RuntimeException [arrowhead=empty, style=solid];
|
||||
|
||||
// Interface implementation
|
||||
Reservation -> IReservation [arrowhead=empty, style=dashed]
|
||||
// Composition relationships (filled diamond)
|
||||
Account -> AccountReservationList [arrowhead=none, arrowtail=diamond, style=solid, label="1"];
|
||||
Account -> Address [arrowhead=none, arrowtail=diamond, style=solid, label="2"];
|
||||
Account -> EmailAddress [arrowhead=none, arrowtail=diamond, style=solid, label="1"];
|
||||
AccomodationManager -> AccountList [arrowhead=none, arrowtail=odiamond, style=solid, label="1"];
|
||||
|
||||
// Class inheritance
|
||||
HotelReservation -> Reservation [arrowhead=empty]
|
||||
HouseReservation -> Reservation [arrowhead=empty]
|
||||
CabinReservation -> Reservation [arrowhead=empty]
|
||||
|
||||
// Composition relationships
|
||||
Account -> AccountReservationList [arrowhead=diamond, label="1"]
|
||||
Account -> Address [arrowhead=diamond, label="1"]
|
||||
Account -> EmailAddress [arrowhead=diamond, label="1"]
|
||||
|
||||
// Aggregation relationships
|
||||
AccomodationManager -> AccountList [arrowhead=odiamond, label="1"]
|
||||
AccountList -> Account [arrowhead=odiamond, label="*"]
|
||||
AccountReservationList -> IReservation [arrowhead=odiamond, label="0...*"]
|
||||
// Aggregation relationships (empty diamond)
|
||||
AccountList -> Account [arrowhead=none, arrowtail=odiamond, style=solid, label="*"];
|
||||
AccountReservationList -> IReservation [arrowhead=empty, arrowtail=odiamond, style=solid, label="0..*"];
|
||||
|
||||
// Association relationships
|
||||
Reservation -> Address [arrowhead=vee, label="uses", style=dashed]
|
||||
Reservation -> ReservationStatusEnum [arrowhead=vee, label="uses", style=dashed]
|
||||
Reservation -> KitchenTypeEnum [arrowhead=vee, label="uses", style=dashed]
|
||||
Reservation -> Address [arrowhead=none, style=solid, label="uses"];
|
||||
Reservation -> KitchenTypeEnum [arrowhead=none, style=solid, label="uses"];
|
||||
Reservation -> ReservationStatusEnum [arrowhead=none, style=solid, label="uses"];
|
||||
AccomodationManager -> Account [arrowhead=none, arrowtail=odiamond, label="manages"];
|
||||
AccomodationManager -> Reservation [arrowhead=none, style=dashed, label="manages"];
|
||||
DataRepository -> AccomodationManager [arrowhead=none, style=dashed, label="uses"];
|
||||
TestReservations -> AccomodationManager [arrowhead=none, style=dashed, label="uses"];
|
||||
TestReservations -> getRepositoryConfig [arrowhead=none, style=dashed, label="uses"];
|
||||
|
||||
// Dependency relationships
|
||||
DataRepository -> AccomodationManager [arrowhead=vee, style=dashed, label="uses"]
|
||||
DataRepository -> Account [arrowhead=vee, style=dashed, label="creates"]
|
||||
DataRepository -> Reservation [arrowhead=vee, style=dashed, label="creates"]
|
||||
TestReservations -> AccomodationManager [arrowhead=vee, style=dashed, label="uses"]
|
||||
TestReservations -> getRepositoryConfig [arrowhead=vee, style=dashed, label="uses"]
|
||||
|
||||
// Singleton pattern
|
||||
DataRepository -> DataRepository [arrowhead=vee, style=dashed, label="singleton"]
|
||||
Account -> DuplicateObjectException [arrowhead=open, style=dashed, label="throws"];
|
||||
AccountList -> DuplicateObjectException [arrowhead=open, style=dashed, label="throws"];
|
||||
AccountReservationList -> DuplicateObjectException [arrowhead=open, style=dashed, label="throws"];
|
||||
Reservation -> IllegalOperationException [arrowhead=open, style=dashed, label="throws"];
|
||||
}
|
||||
@@ -1,453 +1,507 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
<!-- Generated by graphviz version 2.44.1 (20200629.0846)
|
||||
-->
|
||||
<!-- Title: LodgeReservationSystem Pages: 1 -->
|
||||
<svg width="2054pt" height="1733pt"
|
||||
viewBox="0.00 0.00 2054.27 1733.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1729)">
|
||||
<svg width="1209pt" height="1834pt"
|
||||
viewBox="0.00 0.00 1208.96 1834.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1830)">
|
||||
<title>LodgeReservationSystem</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1729 2050.27,-1729 2050.27,4 -4,4"/>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1830 1204.96,-1830 1204.96,4 -4,4"/>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_reservationsystem</title>
|
||||
<polygon fill="none" stroke="red" stroke-dasharray="5,2" points="288.96,-1419 288.96,-1818 1060.96,-1818 1060.96,-1419 288.96,-1419"/>
|
||||
<text text-anchor="middle" x="674.96" y="-1802.8" font-family="Times New Roman,serif" font-size="14.00">lodge.reservationsystem</text>
|
||||
</g>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_data</title>
|
||||
<polygon fill="none" stroke="blue" stroke-dasharray="5,2" points="21.96,-66 21.96,-837 735.96,-837 735.96,-66 21.96,-66"/>
|
||||
<text text-anchor="middle" x="378.96" y="-821.8" font-family="Times New Roman,serif" font-size="14.00">lodge.data</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_main</title>
|
||||
<polygon fill="none" stroke="purple" stroke-dasharray="5,2" points="1068.96,-1494.5 1068.96,-1775.5 1192.96,-1775.5 1192.96,-1494.5 1068.96,-1494.5"/>
|
||||
<text text-anchor="middle" x="1130.96" y="-1760.3" font-family="Times New Roman,serif" font-size="14.00">lodge</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_reservation</title>
|
||||
<polygon fill="none" stroke="green" stroke-dasharray="5,2" points="743.96,-678 743.96,-1391 1013.96,-1391 1013.96,-678 743.96,-678"/>
|
||||
<text text-anchor="middle" x="878.96" y="-1375.8" font-family="Times New Roman,serif" font-size="14.00">lodge.reservation</text>
|
||||
</g>
|
||||
<!-- Account -->
|
||||
<g id="node1" class="node">
|
||||
<title>Account</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="720.77,-572.5 720.77,-971.5 1167.77,-971.5 1167.77,-572.5 720.77,-572.5"/>
|
||||
<text text-anchor="middle" x="944.27" y="-956.3" font-family="Times,serif" font-size="14.00">Account</text>
|
||||
<polyline fill="none" stroke="black" points="720.77,-948.5 1167.77,-948.5 "/>
|
||||
<text text-anchor="start" x="728.77" y="-933.3" font-family="Times,serif" font-size="14.00">- account_number: String</text>
|
||||
<text text-anchor="start" x="728.77" y="-918.3" font-family="Times,serif" font-size="14.00"> - phone_number: String</text>
|
||||
<text text-anchor="start" x="728.77" y="-903.3" font-family="Times,serif" font-size="14.00"> - mailing_address: Address</text>
|
||||
<text text-anchor="start" x="728.77" y="-888.3" font-family="Times,serif" font-size="14.00"> - email_address: EmailAddress</text>
|
||||
<text text-anchor="start" x="728.77" y="-873.3" font-family="Times,serif" font-size="14.00"> - reservations: AccountReservationList</text>
|
||||
<polyline fill="none" stroke="black" points="720.77,-865.5 1167.77,-865.5 "/>
|
||||
<text text-anchor="start" x="728.77" y="-850.3" font-family="Times,serif" font-size="14.00">+ Account()</text>
|
||||
<text text-anchor="start" x="728.77" y="-835.3" font-family="Times,serif" font-size="14.00"> + Account(account_number, phone_number, mailing_address, email_address)</text>
|
||||
<text text-anchor="start" x="728.77" y="-820.3" font-family="Times,serif" font-size="14.00"> + Account(phone_number, mailing_address, email_address)</text>
|
||||
<text text-anchor="start" x="728.77" y="-805.3" font-family="Times,serif" font-size="14.00"> + toString(): String</text>
|
||||
<text text-anchor="start" x="728.77" y="-790.3" font-family="Times,serif" font-size="14.00"> + add(rsrv: Reservation): boolean</text>
|
||||
<text text-anchor="start" x="728.77" y="-775.3" font-family="Times,serif" font-size="14.00"> + Write(acct: Account): void</text>
|
||||
<text text-anchor="start" x="728.77" y="-760.3" font-family="Times,serif" font-size="14.00"> + getAccount_number(): String</text>
|
||||
<text text-anchor="start" x="728.77" y="-745.3" font-family="Times,serif" font-size="14.00"> + setAccount_number(account_number: String): void</text>
|
||||
<text text-anchor="start" x="728.77" y="-730.3" font-family="Times,serif" font-size="14.00"> + getPhone_number(): String</text>
|
||||
<text text-anchor="start" x="728.77" y="-715.3" font-family="Times,serif" font-size="14.00"> + setPhone_number(phone_number: String): void</text>
|
||||
<text text-anchor="start" x="728.77" y="-700.3" font-family="Times,serif" font-size="14.00"> + getMailing_address(): Address</text>
|
||||
<text text-anchor="start" x="728.77" y="-685.3" font-family="Times,serif" font-size="14.00"> + setMailing_address(mailing_address: Address): void</text>
|
||||
<text text-anchor="start" x="728.77" y="-670.3" font-family="Times,serif" font-size="14.00"> + getEmail_address(): EmailAddress</text>
|
||||
<text text-anchor="start" x="728.77" y="-655.3" font-family="Times,serif" font-size="14.00"> + setEmail_address(email_address: EmailAddress): void</text>
|
||||
<text text-anchor="start" x="728.77" y="-640.3" font-family="Times,serif" font-size="14.00"> + hashCode(): int</text>
|
||||
<text text-anchor="start" x="728.77" y="-625.3" font-family="Times,serif" font-size="14.00"> + findReservation(reservation_number: String): Reservation</text>
|
||||
<text text-anchor="start" x="728.77" y="-610.3" font-family="Times,serif" font-size="14.00"> + equals(obj: Object): boolean</text>
|
||||
<text text-anchor="start" x="728.77" y="-595.3" font-family="Times,serif" font-size="14.00"> + update(acct: Account): void</text>
|
||||
<text text-anchor="start" x="728.77" y="-580.3" font-family="Times,serif" font-size="14.00"> + getAllReservations(): ListIterator<IReservation></text>
|
||||
<polygon fill="none" stroke="black" points="181.46,-395.5 181.46,-639.5 414.46,-639.5 414.46,-395.5 181.46,-395.5"/>
|
||||
<text text-anchor="middle" x="297.96" y="-627.5" font-family="Arial" font-size="10.00">Account</text>
|
||||
<polyline fill="none" stroke="black" points="181.46,-620.5 414.46,-620.5 "/>
|
||||
<text text-anchor="start" x="189.46" y="-608.5" font-family="Arial" font-size="10.00">+ Account()</text>
|
||||
<text text-anchor="start" x="189.46" y="-597.5" font-family="Arial" font-size="10.00">+ Account(String, String, Address, EmailAddress)</text>
|
||||
<text text-anchor="start" x="189.46" y="-586.5" font-family="Arial" font-size="10.00">+ Account(String, Address, EmailAddress)</text>
|
||||
<polyline fill="none" stroke="black" points="181.46,-579.5 414.46,-579.5 "/>
|
||||
<text text-anchor="start" x="189.46" y="-567.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
|
||||
<text text-anchor="start" x="189.46" y="-556.5" font-family="Arial" font-size="10.00">+ add(Reservation): boolean</text>
|
||||
<text text-anchor="start" x="189.46" y="-545.5" font-family="Arial" font-size="10.00">+ Write(Account): void</text>
|
||||
<text text-anchor="start" x="189.46" y="-534.5" font-family="Arial" font-size="10.00">+ getAccount_number(): String</text>
|
||||
<text text-anchor="start" x="189.46" y="-523.5" font-family="Arial" font-size="10.00">+ setAccount_number(String): void</text>
|
||||
<text text-anchor="start" x="189.46" y="-512.5" font-family="Arial" font-size="10.00">+ getPhone_number(): String</text>
|
||||
<text text-anchor="start" x="189.46" y="-501.5" font-family="Arial" font-size="10.00">+ setPhone_number(String): void</text>
|
||||
<text text-anchor="start" x="189.46" y="-490.5" font-family="Arial" font-size="10.00">+ getMailing_address(): Address</text>
|
||||
<text text-anchor="start" x="189.46" y="-479.5" font-family="Arial" font-size="10.00">+ setMailing_address(Address): void</text>
|
||||
<text text-anchor="start" x="189.46" y="-468.5" font-family="Arial" font-size="10.00">+ getEmail_address(): EmailAddress</text>
|
||||
<text text-anchor="start" x="189.46" y="-457.5" font-family="Arial" font-size="10.00">+ setEmail_address(EmailAddress): void</text>
|
||||
<text text-anchor="start" x="189.46" y="-446.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
|
||||
<text text-anchor="start" x="189.46" y="-435.5" font-family="Arial" font-size="10.00">+ update(Account): void</text>
|
||||
<text text-anchor="start" x="189.46" y="-424.5" font-family="Arial" font-size="10.00">+ getAllReservations(): ListIterator<IReservation></text>
|
||||
<text text-anchor="start" x="189.46" y="-413.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
|
||||
<text text-anchor="start" x="189.46" y="-402.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
|
||||
</g>
|
||||
<!-- AccountReservationList -->
|
||||
<g id="node3" class="node">
|
||||
<title>AccountReservationList</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1034.77,-316.5 1034.77,-445.5 1423.77,-445.5 1423.77,-316.5 1034.77,-316.5"/>
|
||||
<text text-anchor="middle" x="1229.27" y="-430.3" font-family="Times,serif" font-size="14.00">AccountReservationList</text>
|
||||
<polyline fill="none" stroke="black" points="1034.77,-422.5 1423.77,-422.5 "/>
|
||||
<text text-anchor="middle" x="1229.27" y="-407.3" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="1034.77,-399.5 1423.77,-399.5 "/>
|
||||
<text text-anchor="start" x="1042.77" y="-384.3" font-family="Times,serif" font-size="14.00">- reservationSerial(reservation: Reservation): String</text>
|
||||
<text text-anchor="start" x="1042.77" y="-369.3" font-family="Times,serif" font-size="14.00"> + add(reservation: IReservation): boolean</text>
|
||||
<text text-anchor="start" x="1042.77" y="-354.3" font-family="Times,serif" font-size="14.00"> + toString(): String</text>
|
||||
<text text-anchor="start" x="1042.77" y="-339.3" font-family="Times,serif" font-size="14.00"> + find(reservation_number: String): Reservation</text>
|
||||
<text text-anchor="start" x="1042.77" y="-324.3" font-family="Times,serif" font-size="14.00"> + update(incoming_reservation_list: AccountReservationList): void</text>
|
||||
<polygon fill="none" stroke="black" points="542.46,-205 542.46,-314 727.46,-314 727.46,-205 542.46,-205"/>
|
||||
<text text-anchor="middle" x="634.96" y="-302" font-family="Arial" font-size="10.00">AccountReservationList</text>
|
||||
<polyline fill="none" stroke="black" points="542.46,-295 727.46,-295 "/>
|
||||
<text text-anchor="start" x="550.46" y="-283" font-family="Arial" font-size="10.00">+ AccountReservationList()</text>
|
||||
<polyline fill="none" stroke="black" points="542.46,-276 727.46,-276 "/>
|
||||
<text text-anchor="start" x="550.46" y="-264" font-family="Arial" font-size="10.00">- reservationSerial(Reservation): String</text>
|
||||
<polyline fill="none" stroke="black" points="542.46,-257 727.46,-257 "/>
|
||||
<text text-anchor="start" x="550.46" y="-245" font-family="Arial" font-size="10.00">+ add(IReservation): boolean</text>
|
||||
<text text-anchor="start" x="550.46" y="-234" font-family="Arial" font-size="10.00">+ toString(): String</text>
|
||||
<text text-anchor="start" x="550.46" y="-223" font-family="Arial" font-size="10.00">+ find(String): Reservation</text>
|
||||
<text text-anchor="start" x="550.46" y="-212" font-family="Arial" font-size="10.00">+ update(AccountReservationList): void</text>
|
||||
</g>
|
||||
<!-- Account->AccountReservationList -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Account->AccountReservationList</title>
|
||||
<path fill="none" stroke="black" d="M1089.9,-572.23C1120.47,-530.5 1150.85,-489.04 1175.4,-455.52"/>
|
||||
<polygon fill="black" stroke="black" points="1175.41,-455.52 1175.73,-448.31 1182.5,-445.84 1182.18,-453.04 1175.41,-455.52"/>
|
||||
<text text-anchor="middle" x="1116.77" y="-542.8" font-family="Times,serif" font-size="14.00">1</text>
|
||||
<path fill="none" stroke="black" d="M414.88,-427.68C464.69,-389.85 521.15,-346.96 564.42,-314.09"/>
|
||||
<text text-anchor="middle" x="488.96" y="-369.8" font-family="Arial" font-size="9.00">1</text>
|
||||
</g>
|
||||
<!-- Address -->
|
||||
<g id="node4" class="node">
|
||||
<title>Address</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="517.27,-241.5 517.27,-520.5 711.27,-520.5 711.27,-241.5 517.27,-241.5"/>
|
||||
<text text-anchor="middle" x="614.27" y="-505.3" font-family="Times,serif" font-size="14.00">Address</text>
|
||||
<polyline fill="none" stroke="black" points="517.27,-497.5 711.27,-497.5 "/>
|
||||
<text text-anchor="start" x="525.27" y="-482.3" font-family="Times,serif" font-size="14.00">- street: String</text>
|
||||
<text text-anchor="start" x="525.27" y="-467.3" font-family="Times,serif" font-size="14.00"> - city: String</text>
|
||||
<text text-anchor="start" x="525.27" y="-452.3" font-family="Times,serif" font-size="14.00"> - state: String</text>
|
||||
<text text-anchor="start" x="525.27" y="-437.3" font-family="Times,serif" font-size="14.00"> - zip: String</text>
|
||||
<polyline fill="none" stroke="black" points="517.27,-429.5 711.27,-429.5 "/>
|
||||
<text text-anchor="start" x="525.27" y="-414.3" font-family="Times,serif" font-size="14.00">+ Address(street, city, state, zip)</text>
|
||||
<text text-anchor="start" x="525.27" y="-399.3" font-family="Times,serif" font-size="14.00"> + getStreet(): String</text>
|
||||
<text text-anchor="start" x="525.27" y="-384.3" font-family="Times,serif" font-size="14.00"> + setStreet(street: String): void</text>
|
||||
<text text-anchor="start" x="525.27" y="-369.3" font-family="Times,serif" font-size="14.00"> + getCity(): String</text>
|
||||
<text text-anchor="start" x="525.27" y="-354.3" font-family="Times,serif" font-size="14.00"> + setCity(city: String): void</text>
|
||||
<text text-anchor="start" x="525.27" y="-339.3" font-family="Times,serif" font-size="14.00"> + getState(): String</text>
|
||||
<text text-anchor="start" x="525.27" y="-324.3" font-family="Times,serif" font-size="14.00"> + setState(state: String): void</text>
|
||||
<text text-anchor="start" x="525.27" y="-309.3" font-family="Times,serif" font-size="14.00"> + getZip(): String</text>
|
||||
<text text-anchor="start" x="525.27" y="-294.3" font-family="Times,serif" font-size="14.00"> + setZip(zip: String): void</text>
|
||||
<text text-anchor="start" x="525.27" y="-279.3" font-family="Times,serif" font-size="14.00"> + hashCode(): int</text>
|
||||
<text text-anchor="start" x="525.27" y="-264.3" font-family="Times,serif" font-size="14.00"> + equals(obj: Object): boolean</text>
|
||||
<text text-anchor="start" x="525.27" y="-249.3" font-family="Times,serif" font-size="14.00"> + toString(): String</text>
|
||||
<polygon fill="none" stroke="black" points="315.96,-170.5 315.96,-348.5 503.96,-348.5 503.96,-170.5 315.96,-170.5"/>
|
||||
<text text-anchor="middle" x="409.96" y="-336.5" font-family="Arial" font-size="10.00">Address</text>
|
||||
<polyline fill="none" stroke="black" points="315.96,-329.5 503.96,-329.5 "/>
|
||||
<text text-anchor="start" x="323.96" y="-317.5" font-family="Arial" font-size="10.00">- Address()</text>
|
||||
<text text-anchor="start" x="323.96" y="-306.5" font-family="Arial" font-size="10.00">+ Address(String, String, String, String)</text>
|
||||
<polyline fill="none" stroke="black" points="315.96,-299.5 503.96,-299.5 "/>
|
||||
<text text-anchor="start" x="323.96" y="-287.5" font-family="Arial" font-size="10.00">+ getStreet(): String</text>
|
||||
<text text-anchor="start" x="323.96" y="-276.5" font-family="Arial" font-size="10.00">+ setStreet(String): void</text>
|
||||
<text text-anchor="start" x="323.96" y="-265.5" font-family="Arial" font-size="10.00">+ getCity(): String</text>
|
||||
<text text-anchor="start" x="323.96" y="-254.5" font-family="Arial" font-size="10.00">+ setCity(String): void</text>
|
||||
<text text-anchor="start" x="323.96" y="-243.5" font-family="Arial" font-size="10.00">+ getState(): String</text>
|
||||
<text text-anchor="start" x="323.96" y="-232.5" font-family="Arial" font-size="10.00">+ setState(String): void</text>
|
||||
<text text-anchor="start" x="323.96" y="-221.5" font-family="Arial" font-size="10.00">+ getZip(): String</text>
|
||||
<text text-anchor="start" x="323.96" y="-210.5" font-family="Arial" font-size="10.00">+ setZip(String): void</text>
|
||||
<text text-anchor="start" x="323.96" y="-199.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
|
||||
<text text-anchor="start" x="323.96" y="-188.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
|
||||
<text text-anchor="start" x="323.96" y="-177.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
|
||||
</g>
|
||||
<!-- Account->Address -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Account->Address</title>
|
||||
<path fill="none" stroke="black" d="M763.72,-572.32C748.85,-555.11 734.2,-537.84 720.27,-521 719.91,-520.56 719.54,-520.12 719.18,-519.68"/>
|
||||
<polygon fill="black" stroke="black" points="719.1,-519.59 712.21,-517.47 711.51,-510.3 718.4,-512.41 719.1,-519.59"/>
|
||||
<text text-anchor="middle" x="747.77" y="-542.8" font-family="Times,serif" font-size="14.00">1</text>
|
||||
<path fill="none" stroke="black" d="M351.01,-395.25C357.85,-379.61 364.75,-363.84 371.3,-348.87"/>
|
||||
<text text-anchor="middle" x="362.96" y="-369.8" font-family="Arial" font-size="9.00">2</text>
|
||||
</g>
|
||||
<!-- EmailAddress -->
|
||||
<g id="node5" class="node">
|
||||
<title>EmailAddress</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="729.77,-309 729.77,-453 1016.77,-453 1016.77,-309 729.77,-309"/>
|
||||
<text text-anchor="middle" x="873.27" y="-437.8" font-family="Times,serif" font-size="14.00">EmailAddress</text>
|
||||
<polyline fill="none" stroke="black" points="729.77,-430 1016.77,-430 "/>
|
||||
<text text-anchor="start" x="737.77" y="-414.8" font-family="Times,serif" font-size="14.00">- email_address: String</text>
|
||||
<polyline fill="none" stroke="black" points="729.77,-407 1016.77,-407 "/>
|
||||
<text text-anchor="start" x="737.77" y="-391.8" font-family="Times,serif" font-size="14.00">+ EmailAddress(email_address: String)</text>
|
||||
<text text-anchor="start" x="737.77" y="-376.8" font-family="Times,serif" font-size="14.00"> + getEmail_address(): String</text>
|
||||
<text text-anchor="start" x="737.77" y="-361.8" font-family="Times,serif" font-size="14.00"> + setEmail_address(email_address: String): void</text>
|
||||
<text text-anchor="start" x="737.77" y="-346.8" font-family="Times,serif" font-size="14.00"> + hashCode(): int</text>
|
||||
<text text-anchor="start" x="737.77" y="-331.8" font-family="Times,serif" font-size="14.00"> + equals(obj: Object): boolean</text>
|
||||
<text text-anchor="start" x="737.77" y="-316.8" font-family="Times,serif" font-size="14.00"> + toString(): String</text>
|
||||
<polygon fill="none" stroke="black" points="139.96,-209 139.96,-310 297.96,-310 297.96,-209 139.96,-209"/>
|
||||
<text text-anchor="middle" x="218.96" y="-298" font-family="Arial" font-size="10.00">EmailAddress</text>
|
||||
<polyline fill="none" stroke="black" points="139.96,-291 297.96,-291 "/>
|
||||
<text text-anchor="start" x="147.96" y="-279" font-family="Arial" font-size="10.00">+ EmailAddress(String)</text>
|
||||
<polyline fill="none" stroke="black" points="139.96,-272 297.96,-272 "/>
|
||||
<text text-anchor="start" x="147.96" y="-260" font-family="Arial" font-size="10.00">+ getEmail_address(): String</text>
|
||||
<text text-anchor="start" x="147.96" y="-249" font-family="Arial" font-size="10.00">+ setEmail_address(String): void</text>
|
||||
<text text-anchor="start" x="147.96" y="-238" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
|
||||
<text text-anchor="start" x="147.96" y="-227" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
|
||||
<text text-anchor="start" x="147.96" y="-216" font-family="Arial" font-size="10.00">+ toString(): String</text>
|
||||
</g>
|
||||
<!-- Account->EmailAddress -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Account->EmailAddress</title>
|
||||
<path fill="none" stroke="black" d="M907.99,-572.23C901.09,-534.4 894.22,-496.78 888.44,-465.11"/>
|
||||
<polygon fill="black" stroke="black" points="888.43,-465.08 883.42,-459.9 886.28,-453.28 891.29,-458.46 888.43,-465.08"/>
|
||||
<text text-anchor="middle" x="908.77" y="-542.8" font-family="Times,serif" font-size="14.00">1</text>
|
||||
<path fill="none" stroke="black" d="M260.54,-395.25C251.25,-365.14 241.81,-334.52 234.27,-310.1"/>
|
||||
<text text-anchor="middle" x="255.96" y="-369.8" font-family="Arial" font-size="9.00">1</text>
|
||||
</g>
|
||||
<!-- DuplicateObjectException -->
|
||||
<g id="node6" class="node">
|
||||
<title>DuplicateObjectException</title>
|
||||
<polygon fill="none" stroke="black" points="325.96,-74.5 325.96,-123.5 495.96,-123.5 495.96,-74.5 325.96,-74.5"/>
|
||||
<text text-anchor="middle" x="410.96" y="-111.5" font-family="Arial" font-size="10.00">DuplicateObjectException</text>
|
||||
<polyline fill="none" stroke="black" points="325.96,-104.5 495.96,-104.5 "/>
|
||||
<text text-anchor="start" x="333.96" y="-92.5" font-family="Arial" font-size="10.00">+ DuplicateObjectException()</text>
|
||||
<text text-anchor="start" x="333.96" y="-81.5" font-family="Arial" font-size="10.00">+ DuplicateObjectException(String)</text>
|
||||
</g>
|
||||
<!-- Account->DuplicateObjectException -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>Account->DuplicateObjectException</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M181.26,-444.08C149.94,-418.26 120.05,-386.21 102.96,-349 69.76,-276.71 53.33,-232.18 102.96,-170 129.29,-137.02 235.3,-118.39 315.65,-108.78"/>
|
||||
<polygon fill="black" stroke="black" points="325.82,-107.6 316.4,-113.23 320.85,-108.18 315.88,-108.76 315.88,-108.76 315.88,-108.76 320.85,-108.18 315.36,-104.29 325.82,-107.6 325.82,-107.6"/>
|
||||
<text text-anchor="middle" x="116.96" y="-257.3" font-family="Arial" font-size="9.00">throws</text>
|
||||
</g>
|
||||
<!-- AccountList -->
|
||||
<g id="node2" class="node">
|
||||
<title>AccountList</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="977.77,-1031 977.77,-1175 1392.77,-1175 1392.77,-1031 977.77,-1031"/>
|
||||
<text text-anchor="middle" x="1185.27" y="-1159.8" font-family="Times,serif" font-size="14.00">AccountList</text>
|
||||
<polyline fill="none" stroke="black" points="977.77,-1152 1392.77,-1152 "/>
|
||||
<text text-anchor="middle" x="1185.27" y="-1136.8" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="977.77,-1129 1392.77,-1129 "/>
|
||||
<text text-anchor="start" x="985.77" y="-1113.8" font-family="Times,serif" font-size="14.00">+ accountSerial(phone_number, mailing_address, email_address): String</text>
|
||||
<text text-anchor="start" x="985.77" y="-1098.8" font-family="Times,serif" font-size="14.00"> + add(account: Account): boolean</text>
|
||||
<text text-anchor="start" x="985.77" y="-1083.8" font-family="Times,serif" font-size="14.00"> + save(acct: Account): void</text>
|
||||
<text text-anchor="start" x="985.77" y="-1068.8" font-family="Times,serif" font-size="14.00"> + find(account_number: String): Account</text>
|
||||
<text text-anchor="start" x="985.77" y="-1053.8" font-family="Times,serif" font-size="14.00"> + getListOfReservations(): List<? extends IReservation></text>
|
||||
<text text-anchor="start" x="985.77" y="-1038.8" font-family="Times,serif" font-size="14.00"> + showReservationList(): void</text>
|
||||
<polygon fill="none" stroke="black" points="215.96,-693.5 215.96,-805.5 473.96,-805.5 473.96,-693.5 215.96,-693.5"/>
|
||||
<text text-anchor="middle" x="344.96" y="-793.5" font-family="Arial" font-size="10.00">AccountList</text>
|
||||
<polyline fill="none" stroke="black" points="215.96,-786.5 473.96,-786.5 "/>
|
||||
<text text-anchor="start" x="223.96" y="-774.5" font-family="Arial" font-size="10.00">+ AccountList()</text>
|
||||
<polyline fill="none" stroke="black" points="215.96,-767.5 473.96,-767.5 "/>
|
||||
<text text-anchor="start" x="223.96" y="-755.5" font-family="Arial" font-size="10.00">+ accountSerial(String, Address, EmailAddress): String</text>
|
||||
<text text-anchor="start" x="223.96" y="-744.5" font-family="Arial" font-size="10.00">+ add(Account): boolean</text>
|
||||
<text text-anchor="start" x="223.96" y="-733.5" font-family="Arial" font-size="10.00">+ save(Account): void</text>
|
||||
<text text-anchor="start" x="223.96" y="-722.5" font-family="Arial" font-size="10.00">+ find(String): Account</text>
|
||||
<text text-anchor="start" x="223.96" y="-711.5" font-family="Arial" font-size="10.00">+ getListOfReservations(): List<? extends IReservation></text>
|
||||
<text text-anchor="start" x="223.96" y="-700.5" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
|
||||
</g>
|
||||
<!-- AccountList->Account -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>AccountList->Account</title>
|
||||
<path fill="none" stroke="black" d="M1132.98,-1030.61C1121.88,-1015.46 1109.63,-998.74 1096.87,-981.32"/>
|
||||
<polygon fill="none" stroke="black" points="1096.82,-981.25 1090.04,-978.77 1089.73,-971.57 1096.5,-974.04 1096.82,-981.25"/>
|
||||
<text text-anchor="middle" x="1117.77" y="-993.8" font-family="Times,serif" font-size="14.00">*</text>
|
||||
<path fill="none" stroke="black" d="M333.71,-693.41C330.36,-677.06 326.57,-658.48 322.72,-639.67"/>
|
||||
<text text-anchor="middle" x="329.96" y="-660.8" font-family="Arial" font-size="9.00">*</text>
|
||||
</g>
|
||||
<!-- ArrayList -->
|
||||
<g id="node20" class="node">
|
||||
<title>ArrayList</title>
|
||||
<polygon fill="white" stroke="black" points="1353.27,-77 1353.27,-113 1447.27,-113 1447.27,-77 1353.27,-77"/>
|
||||
<text text-anchor="middle" x="1400.27" y="-91.3" font-family="Times,serif" font-size="14.00">ArrayList<T></text>
|
||||
<!-- AccountList->DuplicateObjectException -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>AccountList->DuplicateObjectException</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M390.54,-693.35C402.61,-676.9 414.8,-658.35 423.96,-640 484.38,-519 492.97,-482.76 512.96,-349 524.73,-270.32 550.03,-240.39 512.96,-170 504.1,-153.16 489.15,-139.6 473.4,-129.05"/>
|
||||
<polygon fill="black" stroke="black" points="464.59,-123.51 475.45,-125.03 468.82,-126.17 473.05,-128.84 473.05,-128.84 473.05,-128.84 468.82,-126.17 470.65,-132.64 464.59,-123.51 464.59,-123.51"/>
|
||||
<text text-anchor="middle" x="522.96" y="-369.8" font-family="Arial" font-size="9.00">throws</text>
|
||||
</g>
|
||||
<!-- AccountList->ArrayList -->
|
||||
<!-- ArrayList<Account> -->
|
||||
<g id="node19" class="node">
|
||||
<title>ArrayList<Account></title>
|
||||
<polygon fill="none" stroke="black" points="743.96,-499.5 743.96,-535.5 847.96,-535.5 847.96,-499.5 743.96,-499.5"/>
|
||||
<text text-anchor="middle" x="795.96" y="-515" font-family="Arial" font-size="10.00">ArrayList<Account></text>
|
||||
</g>
|
||||
<!-- AccountList->ArrayList<Account> -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>AccountList->ArrayList</title>
|
||||
<path fill="none" stroke="black" d="M1226.74,-1030.79C1286.18,-924.18 1392.77,-714.85 1432.27,-521 1457.11,-399.06 1445.76,-364.71 1432.27,-241 1427.72,-199.23 1415.99,-151.87 1408.07,-122.97"/>
|
||||
<polygon fill="none" stroke="black" points="1411.4,-121.9 1405.34,-113.21 1404.66,-123.78 1411.4,-121.9"/>
|
||||
<title>AccountList->ArrayList<Account></title>
|
||||
<path fill="none" stroke="black" d="M443.19,-693.49C456.29,-687.6 469.77,-682.22 482.96,-678 592.94,-642.83 647.55,-709.22 739.96,-640 770.29,-617.28 784.71,-574.17 791.18,-545.89"/>
|
||||
<polygon fill="none" stroke="black" points="794.66,-546.35 793.28,-535.85 787.8,-544.92 794.66,-546.35"/>
|
||||
</g>
|
||||
<!-- AccountReservationList->DuplicateObjectException -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>AccountReservationList->DuplicateObjectException</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M595.31,-204.95C576.84,-183.01 553.36,-158.86 527.96,-142 519.87,-136.63 511.01,-131.85 501.9,-127.61"/>
|
||||
<polygon fill="black" stroke="black" points="492.73,-123.56 503.69,-123.48 497.3,-125.58 501.87,-127.6 501.87,-127.6 501.87,-127.6 497.3,-125.58 500.06,-131.72 492.73,-123.56 492.73,-123.56"/>
|
||||
<text text-anchor="middle" x="551.96" y="-144.8" font-family="Arial" font-size="9.00">throws</text>
|
||||
</g>
|
||||
<!-- IReservation -->
|
||||
<g id="node11" class="node">
|
||||
<g id="node10" class="node">
|
||||
<title>IReservation</title>
|
||||
<polygon fill="lightgreen" stroke="black" points="340.27,-0.5 340.27,-189.5 552.27,-189.5 552.27,-0.5 340.27,-0.5"/>
|
||||
<text text-anchor="middle" x="446.27" y="-174.3" font-family="Times,serif" font-size="14.00">«interface»</text>
|
||||
<text text-anchor="middle" x="446.27" y="-159.3" font-family="Times,serif" font-size="14.00">IReservation</text>
|
||||
<polyline fill="none" stroke="black" points="340.27,-151.5 552.27,-151.5 "/>
|
||||
<text text-anchor="middle" x="446.27" y="-136.3" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="340.27,-128.5 552.27,-128.5 "/>
|
||||
<text text-anchor="start" x="348.27" y="-113.3" font-family="Times,serif" font-size="14.00">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="348.27" y="-98.3" font-family="Times,serif" font-size="14.00"> + copy(type: String): Reservation</text>
|
||||
<text text-anchor="start" x="348.27" y="-83.3" font-family="Times,serif" font-size="14.00"> + getReservation_number(): String</text>
|
||||
<text text-anchor="start" x="348.27" y="-68.3" font-family="Times,serif" font-size="14.00"> + getAccountNumber(): String</text>
|
||||
<text text-anchor="start" x="348.27" y="-53.3" font-family="Times,serif" font-size="14.00"> + getPhysical_address(): Address</text>
|
||||
<text text-anchor="start" x="348.27" y="-38.3" font-family="Times,serif" font-size="14.00"> + getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="348.27" y="-23.3" font-family="Times,serif" font-size="14.00"> + calculatePrice(): float</text>
|
||||
<text text-anchor="start" x="348.27" y="-8.3" font-family="Times,serif" font-size="14.00"> + checkValid(): boolean</text>
|
||||
<polygon fill="none" stroke="black" points="773.96,-686.5 773.96,-812.5 937.96,-812.5 937.96,-686.5 773.96,-686.5"/>
|
||||
<text text-anchor="start" x="781.96" y="-800.5" font-family="Arial" font-size="10.00">«interface»</text>
|
||||
<text text-anchor="middle" x="855.96" y="-789.5" font-family="Arial" font-size="10.00">IReservation</text>
|
||||
<polyline fill="none" stroke="black" points="773.96,-782.5 937.96,-782.5 "/>
|
||||
<text text-anchor="start" x="781.96" y="-770.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="781.96" y="-759.5" font-family="Arial" font-size="10.00">+ copy(String): Reservation</text>
|
||||
<text text-anchor="start" x="781.96" y="-748.5" font-family="Arial" font-size="10.00">+ getReservation_number(): String</text>
|
||||
<text text-anchor="start" x="781.96" y="-737.5" font-family="Arial" font-size="10.00">+ getAccountNumber(): String</text>
|
||||
<text text-anchor="start" x="781.96" y="-726.5" font-family="Arial" font-size="10.00">+ getPhysical_address(): Address</text>
|
||||
<text text-anchor="start" x="781.96" y="-715.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="781.96" y="-704.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
|
||||
<text text-anchor="start" x="781.96" y="-693.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
|
||||
</g>
|
||||
<!-- AccountReservationList->IReservation -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>AccountReservationList->IReservation</title>
|
||||
<path fill="none" stroke="black" d="M1149.81,-316.19C1113.58,-289.71 1069.06,-260.65 1025.27,-241 873.54,-172.92 684.49,-133.21 564.55,-113.06"/>
|
||||
<polygon fill="none" stroke="black" points="564.28,-113.02 557.71,-115.98 552.45,-111.05 559.02,-108.09 564.28,-113.02"/>
|
||||
<text text-anchor="middle" x="993.77" y="-211.8" font-family="Times,serif" font-size="14.00">0...*</text>
|
||||
<path fill="none" stroke="black" d="M727.57,-291.31C775.31,-312.44 829.2,-345.73 856.96,-395 908.17,-485.9 890.93,-611.96 873.56,-686.4"/>
|
||||
<text text-anchor="middle" x="892.96" y="-515.3" font-family="Arial" font-size="9.00">*</text>
|
||||
</g>
|
||||
<!-- AccountReservationList->ArrayList -->
|
||||
<!-- ArrayList<IReservation> -->
|
||||
<g id="node20" class="node">
|
||||
<title>ArrayList<IReservation></title>
|
||||
<polygon fill="none" stroke="black" points="743.96,-81 743.96,-117 863.96,-117 863.96,-81 743.96,-81"/>
|
||||
<text text-anchor="middle" x="803.96" y="-96.5" font-family="Arial" font-size="10.00">ArrayList<IReservation></text>
|
||||
</g>
|
||||
<!-- AccountReservationList->ArrayList<IReservation> -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>AccountReservationList->ArrayList</title>
|
||||
<path fill="none" stroke="black" d="M1267.65,-316.26C1304.52,-255.02 1358.41,-165.52 1384.7,-121.87"/>
|
||||
<polygon fill="none" stroke="black" points="1387.86,-123.4 1390.02,-113.03 1381.86,-119.79 1387.86,-123.4"/>
|
||||
</g>
|
||||
<!-- DataRepository -->
|
||||
<g id="node6" class="node">
|
||||
<title>DataRepository</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="689.27,-1535.5 689.27,-1724.5 1199.27,-1724.5 1199.27,-1535.5 689.27,-1535.5"/>
|
||||
<text text-anchor="middle" x="944.27" y="-1709.3" font-family="Times,serif" font-size="14.00">DataRepository</text>
|
||||
<polyline fill="none" stroke="black" points="689.27,-1701.5 1199.27,-1701.5 "/>
|
||||
<text text-anchor="start" x="697.27" y="-1686.3" font-family="Times,serif" font-size="14.00">- directoryPath: String</text>
|
||||
<text text-anchor="start" x="697.27" y="-1671.3" font-family="Times,serif" font-size="14.00"> - instance: DataRepository</text>
|
||||
<polyline fill="none" stroke="black" points="689.27,-1663.5 1199.27,-1663.5 "/>
|
||||
<text text-anchor="start" x="697.27" y="-1648.3" font-family="Times,serif" font-size="14.00"># getInstance(): DataRepository</text>
|
||||
<text text-anchor="start" x="697.27" y="-1633.3" font-family="Times,serif" font-size="14.00"> + setDataStoreRoot(directoryPath: String): void</text>
|
||||
<text text-anchor="start" x="697.27" y="-1618.3" font-family="Times,serif" font-size="14.00"> + getPath(): String</text>
|
||||
<text text-anchor="start" x="697.27" y="-1603.3" font-family="Times,serif" font-size="14.00"> + Reservation(type: String): Reservation</text>
|
||||
<text text-anchor="start" x="697.27" y="-1588.3" font-family="Times,serif" font-size="14.00"> + WalkFileSystemTree(manager: AccomodationManager, rootDir: Path): void</text>
|
||||
<text text-anchor="start" x="697.27" y="-1573.3" font-family="Times,serif" font-size="14.00"> + LoadAccount(file: Path): Account</text>
|
||||
<text text-anchor="start" x="697.27" y="-1558.3" font-family="Times,serif" font-size="14.00"> - loadReservationRefList(rdr: JsonReader, ac: Account): void</text>
|
||||
<text text-anchor="start" x="697.27" y="-1543.3" font-family="Times,serif" font-size="14.00"> - loadReservation(ac: Account, reservationType: String, reservationNumber: String): void</text>
|
||||
</g>
|
||||
<!-- DataRepository->Account -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>DataRepository->Account</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M944.27,-1535.35C944.27,-1403.22 944.27,-1158.5 944.27,-981.91"/>
|
||||
<polygon fill="black" stroke="black" points="944.27,-971.7 948.77,-981.7 944.27,-976.7 944.27,-981.7 944.27,-981.7 944.27,-981.7 944.27,-976.7 939.77,-981.7 944.27,-971.7 944.27,-971.7"/>
|
||||
<text text-anchor="middle" x="963.27" y="-1204.8" font-family="Times,serif" font-size="14.00">creates</text>
|
||||
</g>
|
||||
<!-- DataRepository->DataRepository -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>DataRepository->DataRepository</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1199.53,-1643.82C1210.74,-1640.29 1217.27,-1635.68 1217.27,-1630 1217.27,-1626.18 1214.32,-1622.85 1208.99,-1620"/>
|
||||
<polygon fill="black" stroke="black" points="1199.53,-1616.18 1210.49,-1615.75 1204.16,-1618.05 1208.8,-1619.93 1208.8,-1619.93 1208.8,-1619.93 1204.16,-1618.05 1207.11,-1624.1 1199.53,-1616.18 1199.53,-1616.18"/>
|
||||
<text text-anchor="middle" x="1242.27" y="-1626.3" font-family="Times,serif" font-size="14.00">singleton</text>
|
||||
</g>
|
||||
<!-- Reservation -->
|
||||
<g id="node12" class="node">
|
||||
<title>Reservation</title>
|
||||
<polygon fill="lightgray" stroke="black" points="319.77,-754 319.77,-790 400.77,-790 400.77,-754 319.77,-754"/>
|
||||
<text text-anchor="middle" x="360.27" y="-768.3" font-family="Times,serif" font-size="14.00">Reservation</text>
|
||||
</g>
|
||||
<!-- DataRepository->Reservation -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>DataRepository->Reservation</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M689.22,-1582.43C471.14,-1527.69 170.4,-1413.26 26.27,-1183 -11.46,-1122.72 -5.56,-1086.59 26.27,-1023 85.97,-903.75 232.57,-826.71 310.19,-792.85"/>
|
||||
<polygon fill="black" stroke="black" points="319.75,-788.75 312.34,-796.83 315.16,-790.72 310.57,-792.69 310.57,-792.69 310.57,-792.69 315.16,-790.72 308.79,-788.56 319.75,-788.75 319.75,-788.75"/>
|
||||
<text text-anchor="middle" x="63.27" y="-1204.8" font-family="Times,serif" font-size="14.00">creates</text>
|
||||
</g>
|
||||
<!-- AccomodationManager -->
|
||||
<g id="node13" class="node">
|
||||
<title>AccomodationManager</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="972.77,-1234.5 972.77,-1483.5 1397.77,-1483.5 1397.77,-1234.5 972.77,-1234.5"/>
|
||||
<text text-anchor="middle" x="1185.27" y="-1468.3" font-family="Times,serif" font-size="14.00">AccomodationManager</text>
|
||||
<polyline fill="none" stroke="black" points="972.77,-1460.5 1397.77,-1460.5 "/>
|
||||
<text text-anchor="start" x="980.77" y="-1445.3" font-family="Times,serif" font-size="14.00">- accounts: AccountList</text>
|
||||
<polyline fill="none" stroke="black" points="972.77,-1437.5 1397.77,-1437.5 "/>
|
||||
<text text-anchor="start" x="980.77" y="-1422.3" font-family="Times,serif" font-size="14.00">+ AccomodationManager(home: String)</text>
|
||||
<text text-anchor="start" x="980.77" y="-1407.3" font-family="Times,serif" font-size="14.00"> + setDataStoreRoot(home: String): void</text>
|
||||
<text text-anchor="start" x="980.77" y="-1392.3" font-family="Times,serif" font-size="14.00"> + loadAll(): void</text>
|
||||
<text text-anchor="start" x="980.77" y="-1377.3" font-family="Times,serif" font-size="14.00"> + load(file: Path): void</text>
|
||||
<text text-anchor="start" x="980.77" y="-1362.3" font-family="Times,serif" font-size="14.00"> + retrieveLoadedAccounts(): List<Account></text>
|
||||
<text text-anchor="start" x="980.77" y="-1347.3" font-family="Times,serif" font-size="14.00"> + retrieveAccount(acct_id: String): Account</text>
|
||||
<text text-anchor="start" x="980.77" y="-1332.3" font-family="Times,serif" font-size="14.00"> + AddAccount(acct: Account): void</text>
|
||||
<text text-anchor="start" x="980.77" y="-1317.3" font-family="Times,serif" font-size="14.00"> + UpdateAccount(acct: Account): void</text>
|
||||
<text text-anchor="start" x="980.77" y="-1302.3" font-family="Times,serif" font-size="14.00"> + newAccount(phone_number, mailing_address, email_address): Account</text>
|
||||
<text text-anchor="start" x="980.77" y="-1287.3" font-family="Times,serif" font-size="14.00"> + addReservation(account: Account, reservation: Reservation): boolean</text>
|
||||
<text text-anchor="start" x="980.77" y="-1272.3" font-family="Times,serif" font-size="14.00"> + findReservation(reservation_number: String): Reservation</text>
|
||||
<text text-anchor="start" x="980.77" y="-1257.3" font-family="Times,serif" font-size="14.00"> + getReservationList(): List<? extends IReservation></text>
|
||||
<text text-anchor="start" x="980.77" y="-1242.3" font-family="Times,serif" font-size="14.00"> + showReservationList(): void</text>
|
||||
</g>
|
||||
<!-- DataRepository->AccomodationManager -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>DataRepository->AccomodationManager</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1028.22,-1535.29C1040.95,-1521.09 1054.27,-1506.22 1067.55,-1491.39"/>
|
||||
<polygon fill="black" stroke="black" points="1074.49,-1483.65 1071.17,-1494.1 1071.15,-1487.38 1067.82,-1491.1 1067.82,-1491.1 1067.82,-1491.1 1071.15,-1487.38 1064.46,-1488.1 1074.49,-1483.65 1074.49,-1483.65"/>
|
||||
<text text-anchor="middle" x="1070.27" y="-1505.8" font-family="Times,serif" font-size="14.00">uses</text>
|
||||
</g>
|
||||
<!-- KitchenTypeEnum -->
|
||||
<g id="node7" class="node">
|
||||
<title>KitchenTypeEnum</title>
|
||||
<polygon fill="lightblue" stroke="black" points="379.27,-335.5 379.27,-426.5 499.27,-426.5 499.27,-335.5 379.27,-335.5"/>
|
||||
<text text-anchor="middle" x="439.27" y="-411.3" font-family="Times,serif" font-size="14.00">«enumeration»</text>
|
||||
<text text-anchor="middle" x="439.27" y="-396.3" font-family="Times,serif" font-size="14.00">KitchenTypeEnum</text>
|
||||
<polyline fill="none" stroke="black" points="379.27,-388.5 499.27,-388.5 "/>
|
||||
<text text-anchor="start" x="387.27" y="-373.3" font-family="Times,serif" font-size="14.00">None</text>
|
||||
<text text-anchor="start" x="387.27" y="-358.3" font-family="Times,serif" font-size="14.00"> Kitchenette</text>
|
||||
<text text-anchor="start" x="387.27" y="-343.3" font-family="Times,serif" font-size="14.00"> FullKitchen</text>
|
||||
</g>
|
||||
<!-- ReservationStatusEnum -->
|
||||
<g id="node8" class="node">
|
||||
<title>ReservationStatusEnum</title>
|
||||
<polygon fill="lightblue" stroke="black" points="213.77,-335.5 213.77,-426.5 360.77,-426.5 360.77,-335.5 213.77,-335.5"/>
|
||||
<text text-anchor="middle" x="287.27" y="-411.3" font-family="Times,serif" font-size="14.00">«enumeration»</text>
|
||||
<text text-anchor="middle" x="287.27" y="-396.3" font-family="Times,serif" font-size="14.00">ReservationStatusEnum</text>
|
||||
<polyline fill="none" stroke="black" points="213.77,-388.5 360.77,-388.5 "/>
|
||||
<text text-anchor="start" x="221.77" y="-373.3" font-family="Times,serif" font-size="14.00">Draft</text>
|
||||
<text text-anchor="start" x="221.77" y="-358.3" font-family="Times,serif" font-size="14.00"> Canceled</text>
|
||||
<text text-anchor="start" x="221.77" y="-343.3" font-family="Times,serif" font-size="14.00"> Completed</text>
|
||||
</g>
|
||||
<!-- DuplicateObjectException -->
|
||||
<g id="node9" class="node">
|
||||
<title>DuplicateObjectException</title>
|
||||
<polygon fill="lightcoral" stroke="black" points="1484.27,-1588 1484.27,-1672 1756.27,-1672 1756.27,-1588 1484.27,-1588"/>
|
||||
<text text-anchor="middle" x="1620.27" y="-1656.8" font-family="Times,serif" font-size="14.00">DuplicateObjectException</text>
|
||||
<polyline fill="none" stroke="black" points="1484.27,-1649 1756.27,-1649 "/>
|
||||
<text text-anchor="middle" x="1620.27" y="-1633.8" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="1484.27,-1626 1756.27,-1626 "/>
|
||||
<text text-anchor="start" x="1492.27" y="-1610.8" font-family="Times,serif" font-size="14.00">+ DuplicateObjectException()</text>
|
||||
<text text-anchor="start" x="1492.27" y="-1595.8" font-family="Times,serif" font-size="14.00"> + DuplicateObjectException(message: String)</text>
|
||||
<title>AccountReservationList->ArrayList<IReservation></title>
|
||||
<path fill="none" stroke="black" d="M692.18,-204.84C721.3,-177.52 755.27,-145.67 778.05,-124.3"/>
|
||||
<polygon fill="none" stroke="black" points="780.72,-126.6 785.62,-117.21 775.93,-121.5 780.72,-126.6"/>
|
||||
</g>
|
||||
<!-- RuntimeException -->
|
||||
<g id="node19" class="node">
|
||||
<g id="node21" class="node">
|
||||
<title>RuntimeException</title>
|
||||
<polygon fill="white" stroke="black" points="1707.77,-1341 1707.77,-1377 1826.77,-1377 1826.77,-1341 1707.77,-1341"/>
|
||||
<text text-anchor="middle" x="1767.27" y="-1355.3" font-family="Times,serif" font-size="14.00">RuntimeException</text>
|
||||
<polygon fill="none" stroke="black" points="11.96,-0.5 11.96,-36.5 107.96,-36.5 107.96,-0.5 11.96,-0.5"/>
|
||||
<text text-anchor="middle" x="59.96" y="-16" font-family="Arial" font-size="10.00">RuntimeException</text>
|
||||
</g>
|
||||
<!-- DuplicateObjectException->RuntimeException -->
|
||||
<g id="edge3" class="edge">
|
||||
<g id="edge7" class="edge">
|
||||
<title>DuplicateObjectException->RuntimeException</title>
|
||||
<path fill="none" stroke="black" d="M1642.76,-1587.85C1673.38,-1531.81 1727.32,-1433.11 1752.96,-1386.19"/>
|
||||
<polygon fill="none" stroke="black" points="1756.11,-1387.71 1757.84,-1377.26 1749.97,-1384.36 1756.11,-1387.71"/>
|
||||
<path fill="none" stroke="black" d="M325.55,-78.9C261.23,-64.51 174.76,-45.17 118.21,-32.53"/>
|
||||
<polygon fill="none" stroke="black" points="118.89,-29.09 108.36,-30.32 117.36,-35.92 118.89,-29.09"/>
|
||||
</g>
|
||||
<!-- IllegalOperationException -->
|
||||
<g id="node10" class="node">
|
||||
<g id="node7" class="node">
|
||||
<title>IllegalOperationException</title>
|
||||
<polygon fill="lightcoral" stroke="black" points="1774.27,-1588 1774.27,-1672 2046.27,-1672 2046.27,-1588 1774.27,-1588"/>
|
||||
<text text-anchor="middle" x="1910.27" y="-1656.8" font-family="Times,serif" font-size="14.00">IllegalOperationException</text>
|
||||
<polyline fill="none" stroke="black" points="1774.27,-1649 2046.27,-1649 "/>
|
||||
<text text-anchor="middle" x="1910.27" y="-1633.8" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="1774.27,-1626 2046.27,-1626 "/>
|
||||
<text text-anchor="start" x="1782.27" y="-1610.8" font-family="Times,serif" font-size="14.00">+ IllegalOperationException()</text>
|
||||
<text text-anchor="start" x="1782.27" y="-1595.8" font-family="Times,serif" font-size="14.00"> + IllegalOperationException(message: String)</text>
|
||||
<polygon fill="none" stroke="black" points="30.46,-725 30.46,-774 197.46,-774 197.46,-725 30.46,-725"/>
|
||||
<text text-anchor="middle" x="113.96" y="-762" font-family="Arial" font-size="10.00">IllegalOperationException</text>
|
||||
<polyline fill="none" stroke="black" points="30.46,-755 197.46,-755 "/>
|
||||
<text text-anchor="start" x="38.46" y="-743" font-family="Arial" font-size="10.00">+ IllegalOperationException()</text>
|
||||
<text text-anchor="start" x="38.46" y="-732" font-family="Arial" font-size="10.00">+ IllegalOperationException(String)</text>
|
||||
</g>
|
||||
<!-- IllegalOperationException->RuntimeException -->
|
||||
<g id="edge4" class="edge">
|
||||
<g id="edge8" class="edge">
|
||||
<title>IllegalOperationException->RuntimeException</title>
|
||||
<path fill="none" stroke="black" d="M1888.4,-1587.85C1858.6,-1531.81 1806.13,-1433.11 1781.19,-1386.19"/>
|
||||
<polygon fill="none" stroke="black" points="1784.23,-1384.45 1776.45,-1377.26 1778.05,-1387.73 1784.23,-1384.45"/>
|
||||
<path fill="none" stroke="black" d="M102.47,-724.97C83.56,-684.03 47.96,-596.6 47.96,-518.5 47.96,-518.5 47.96,-518.5 47.96,-98 47.96,-80.8 50.81,-61.73 53.73,-46.69"/>
|
||||
<polygon fill="none" stroke="black" points="57.23,-47.04 55.83,-36.54 50.38,-45.62 57.23,-47.04"/>
|
||||
</g>
|
||||
<!-- KitchenTypeEnum -->
|
||||
<g id="node8" class="node">
|
||||
<title>KitchenTypeEnum</title>
|
||||
<polygon fill="none" stroke="black" points="491.96,-714 491.96,-785 587.96,-785 587.96,-714 491.96,-714"/>
|
||||
<text text-anchor="start" x="499.96" y="-773" font-family="Arial" font-size="10.00">«enumeration»</text>
|
||||
<text text-anchor="middle" x="539.96" y="-762" font-family="Arial" font-size="10.00">KitchenTypeEnum</text>
|
||||
<polyline fill="none" stroke="black" points="491.96,-755 587.96,-755 "/>
|
||||
<text text-anchor="start" x="499.96" y="-743" font-family="Arial" font-size="10.00">None</text>
|
||||
<text text-anchor="start" x="499.96" y="-732" font-family="Arial" font-size="10.00">Kitchenette</text>
|
||||
<text text-anchor="start" x="499.96" y="-721" font-family="Arial" font-size="10.00">FullKitchen</text>
|
||||
</g>
|
||||
<!-- ReservationStatusEnum -->
|
||||
<g id="node9" class="node">
|
||||
<title>ReservationStatusEnum</title>
|
||||
<polygon fill="none" stroke="black" points="606.46,-714 606.46,-785 727.46,-785 727.46,-714 606.46,-714"/>
|
||||
<text text-anchor="start" x="614.46" y="-773" font-family="Arial" font-size="10.00">«enumeration»</text>
|
||||
<text text-anchor="middle" x="666.96" y="-762" font-family="Arial" font-size="10.00">ReservationStatusEnum</text>
|
||||
<polyline fill="none" stroke="black" points="606.46,-755 727.46,-755 "/>
|
||||
<text text-anchor="start" x="614.46" y="-743" font-family="Arial" font-size="10.00">Draft</text>
|
||||
<text text-anchor="start" x="614.46" y="-732" font-family="Arial" font-size="10.00">Canceled</text>
|
||||
<text text-anchor="start" x="614.46" y="-721" font-family="Arial" font-size="10.00">Completed</text>
|
||||
</g>
|
||||
<!-- Reservation -->
|
||||
<g id="node11" class="node">
|
||||
<title>Reservation</title>
|
||||
<polygon fill="none" stroke="black" points="751.96,-873.5 751.96,-1359.5 1005.96,-1359.5 1005.96,-873.5 751.96,-873.5"/>
|
||||
<text text-anchor="start" x="759.96" y="-1347.5" font-family="Arial" font-size="10.00">«abstract»</text>
|
||||
<text text-anchor="middle" x="878.96" y="-1336.5" font-family="Arial" font-size="10.00">Reservation</text>
|
||||
<polyline fill="none" stroke="black" points="751.96,-1329.5 1005.96,-1329.5 "/>
|
||||
<text text-anchor="start" x="759.96" y="-1317.5" font-family="Arial" font-size="10.00"># Reservation()</text>
|
||||
<polyline fill="none" stroke="black" points="751.96,-1310.5 1005.96,-1310.5 "/>
|
||||
<text text-anchor="start" x="759.96" y="-1298.5" font-family="Arial" font-size="10.00">+ setReservation_number(String): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1287.5" font-family="Arial" font-size="10.00">+ getReservation_number(): String</text>
|
||||
<text text-anchor="start" x="759.96" y="-1276.5" font-family="Arial" font-size="10.00">+ getAccountNumber(): String</text>
|
||||
<text text-anchor="start" x="759.96" y="-1265.5" font-family="Arial" font-size="10.00">+ setAccountNumber(String): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1254.5" font-family="Arial" font-size="10.00">+ setPhysical_address(Address): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1243.5" font-family="Arial" font-size="10.00">+ mailing_address(): Address</text>
|
||||
<text text-anchor="start" x="759.96" y="-1232.5" font-family="Arial" font-size="10.00">+ setMailing_address(Address): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1221.5" font-family="Arial" font-size="10.00">+ setReservation_start_date(ZonedDateTime): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1210.5" font-family="Arial" font-size="10.00">+ setReservation_end_date(ZonedDateTime): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1199.5" font-family="Arial" font-size="10.00">+ setReservation_status(ReservationStatusEnum): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1188.5" font-family="Arial" font-size="10.00">+ getKitchen(): KitchenTypeEnum</text>
|
||||
<text text-anchor="start" x="759.96" y="-1177.5" font-family="Arial" font-size="10.00">+ setKitchen(KitchenTypeEnum): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1166.5" font-family="Arial" font-size="10.00">+ setNumberOfBeds(Integer): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1155.5" font-family="Arial" font-size="10.00">+ numberOfBedRooms(): Integer</text>
|
||||
<text text-anchor="start" x="759.96" y="-1144.5" font-family="Arial" font-size="10.00">+ setNumberOfBedRooms(Integer): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1133.5" font-family="Arial" font-size="10.00">+ setNumberOfBathRooms(Integer): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1122.5" font-family="Arial" font-size="10.00">+ setNumberOfFloors(Integer): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1111.5" font-family="Arial" font-size="10.00">+ setSquareFeet(Integer): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1100.5" font-family="Arial" font-size="10.00">+ setPrice(Float): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1089.5" font-family="Arial" font-size="10.00">+ getType(): char</text>
|
||||
<text text-anchor="start" x="759.96" y="-1078.5" font-family="Arial" font-size="10.00">+ setType(char): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-1067.5" font-family="Arial" font-size="10.00">+ getPhysical_address(): Address</text>
|
||||
<text text-anchor="start" x="759.96" y="-1056.5" font-family="Arial" font-size="10.00">+ getMailing_address(): Address</text>
|
||||
<text text-anchor="start" x="759.96" y="-1045.5" font-family="Arial" font-size="10.00">+ getReservation_start_date(): ZonedDateTime</text>
|
||||
<text text-anchor="start" x="759.96" y="-1034.5" font-family="Arial" font-size="10.00">+ getReservation_end_date(): ZonedDateTime</text>
|
||||
<text text-anchor="start" x="759.96" y="-1023.5" font-family="Arial" font-size="10.00">+ getReservation_status(): ReservationStatusEnum</text>
|
||||
<text text-anchor="start" x="759.96" y="-1012.5" font-family="Arial" font-size="10.00">+ getNumberOfBeds(): Integer</text>
|
||||
<text text-anchor="start" x="759.96" y="-1001.5" font-family="Arial" font-size="10.00">+ getNumberOfBedRooms(): Integer</text>
|
||||
<text text-anchor="start" x="759.96" y="-990.5" font-family="Arial" font-size="10.00">+ getNumberOfBathRooms(): Integer</text>
|
||||
<text text-anchor="start" x="759.96" y="-979.5" font-family="Arial" font-size="10.00">+ getNumberOfFloors(): Integer</text>
|
||||
<text text-anchor="start" x="759.96" y="-968.5" font-family="Arial" font-size="10.00">+ getSquareFeet(): Integer</text>
|
||||
<text text-anchor="start" x="759.96" y="-957.5" font-family="Arial" font-size="10.00">+ getPrice(): Float</text>
|
||||
<text text-anchor="start" x="759.96" y="-946.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
|
||||
<text text-anchor="start" x="759.96" y="-935.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
|
||||
<text text-anchor="start" x="759.96" y="-924.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
|
||||
<text text-anchor="start" x="759.96" y="-913.5" font-family="Arial" font-size="10.00">+ Write(Reservation): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-902.5" font-family="Arial" font-size="10.00">+ Change(Reservation, ReservationStatusEnum): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-891.5" font-family="Arial" font-size="10.00">+ update(Reservation): void</text>
|
||||
<text text-anchor="start" x="759.96" y="-880.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
|
||||
</g>
|
||||
<!-- Reservation->Address -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>Reservation->Address</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M371.51,-753.78C397.11,-714.58 461.88,-615.39 518.08,-529.32"/>
|
||||
<polygon fill="black" stroke="black" points="523.66,-520.76 521.96,-531.6 520.93,-524.95 518.2,-529.14 518.2,-529.14 518.2,-529.14 520.93,-524.95 514.43,-526.68 523.66,-520.76 523.66,-520.76"/>
|
||||
<text text-anchor="middle" x="522.27" y="-542.8" font-family="Times,serif" font-size="14.00">uses</text>
|
||||
<path fill="none" stroke="black" d="M967.38,-873.1C1008.12,-714.15 1023.53,-514.37 898.96,-395 839.94,-338.44 610.11,-378.76 533.96,-349 523.86,-345.05 513.82,-340.1 504.07,-334.56"/>
|
||||
<text text-anchor="middle" x="1006.96" y="-660.8" font-family="Arial" font-size="9.00">uses</text>
|
||||
</g>
|
||||
<!-- Reservation->IllegalOperationException -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>Reservation->IllegalOperationException</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M751.66,-1035.6C660.56,-981.89 533.26,-913.72 412.96,-873 324.93,-843.2 290.2,-878.35 206.96,-837 180.58,-823.89 156.41,-800.91 139.32,-781.93"/>
|
||||
<polygon fill="black" stroke="black" points="132.68,-774.34 142.65,-778.9 135.97,-778.11 139.27,-781.87 139.27,-781.87 139.27,-781.87 135.97,-778.11 135.88,-784.83 132.68,-774.34 132.68,-774.34"/>
|
||||
<text text-anchor="middle" x="268.96" y="-847.8" font-family="Arial" font-size="9.00">throws</text>
|
||||
</g>
|
||||
<!-- Reservation->KitchenTypeEnum -->
|
||||
<g id="edge17" class="edge">
|
||||
<g id="edge16" class="edge">
|
||||
<title>Reservation->KitchenTypeEnum</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M363.77,-753.78C374.92,-698.85 410,-526.13 428.15,-436.77"/>
|
||||
<polygon fill="black" stroke="black" points="430.17,-426.82 432.59,-437.51 429.17,-431.72 428.18,-436.62 428.18,-436.62 428.18,-436.62 429.17,-431.72 423.77,-435.72 430.17,-426.82 430.17,-426.82"/>
|
||||
<text text-anchor="middle" x="419.27" y="-542.8" font-family="Times,serif" font-size="14.00">uses</text>
|
||||
<path fill="none" stroke="black" d="M751.76,-999.88C701.53,-951.62 644.76,-893.67 597.96,-837 584.61,-820.83 571.45,-801.55 561.05,-785.3"/>
|
||||
<text text-anchor="middle" x="621.96" y="-847.8" font-family="Arial" font-size="9.00">uses</text>
|
||||
</g>
|
||||
<!-- Reservation->ReservationStatusEnum -->
|
||||
<g id="edge16" class="edge">
|
||||
<g id="edge17" class="edge">
|
||||
<title>Reservation->ReservationStatusEnum</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M357.04,-753.78C346.73,-698.85 314.32,-526.13 297.55,-436.77"/>
|
||||
<polygon fill="black" stroke="black" points="295.68,-426.82 301.95,-435.82 296.6,-431.73 297.53,-436.65 297.53,-436.65 297.53,-436.65 296.6,-431.73 293.1,-437.48 295.68,-426.82 295.68,-426.82"/>
|
||||
<text text-anchor="middle" x="332.27" y="-542.8" font-family="Times,serif" font-size="14.00">uses</text>
|
||||
<path fill="none" stroke="black" d="M751.82,-896.59C726.54,-853.08 702.94,-812.44 687.08,-785.13"/>
|
||||
<text text-anchor="middle" x="733.96" y="-847.8" font-family="Arial" font-size="9.00">uses</text>
|
||||
</g>
|
||||
<!-- Reservation->IReservation -->
|
||||
<g id="edge5" class="edge">
|
||||
<g id="edge3" class="edge">
|
||||
<title>Reservation->IReservation</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M344.68,-753.89C311.02,-715.65 232.3,-618.87 204.27,-521 170.01,-401.37 142.92,-349.27 204.27,-241 231.77,-192.46 282.71,-158.41 330.79,-135.56"/>
|
||||
<polygon fill="none" stroke="black" points="332.43,-138.66 340.04,-131.28 329.5,-132.3 332.43,-138.66"/>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M863.7,-873.31C862.57,-855.41 861.5,-838.38 860.53,-823"/>
|
||||
<polygon fill="none" stroke="black" points="864,-822.39 859.88,-812.63 857.01,-822.83 864,-822.39"/>
|
||||
<text text-anchor="middle" x="886.96" y="-847.8" font-family="Arial" font-size="9.00">implements</text>
|
||||
</g>
|
||||
<!-- CabinReservation -->
|
||||
<g id="node12" class="node">
|
||||
<title>CabinReservation</title>
|
||||
<polygon fill="none" stroke="black" points="909.46,-1674.5 909.46,-1775.5 1052.46,-1775.5 1052.46,-1674.5 909.46,-1674.5"/>
|
||||
<text text-anchor="middle" x="980.96" y="-1763.5" font-family="Arial" font-size="10.00">CabinReservation</text>
|
||||
<polyline fill="none" stroke="black" points="909.46,-1756.5 1052.46,-1756.5 "/>
|
||||
<text text-anchor="start" x="917.46" y="-1744.5" font-family="Arial" font-size="10.00">+ CabinReservation()</text>
|
||||
<text text-anchor="start" x="917.46" y="-1733.5" font-family="Arial" font-size="10.00">+ CabinReservation(Address)</text>
|
||||
<polyline fill="none" stroke="black" points="909.46,-1726.5 1052.46,-1726.5 "/>
|
||||
<text text-anchor="start" x="917.46" y="-1714.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="917.46" y="-1703.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="917.46" y="-1692.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="917.46" y="-1681.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- CabinReservation->Reservation -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>CabinReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M972.62,-1674.37C961.37,-1607.5 940.55,-1483.69 921.39,-1369.77"/>
|
||||
<polygon fill="none" stroke="black" points="924.83,-1369.12 919.72,-1359.83 917.93,-1370.28 924.83,-1369.12"/>
|
||||
</g>
|
||||
<!-- HotelReservation -->
|
||||
<g id="node13" class="node">
|
||||
<title>HotelReservation</title>
|
||||
<polygon fill="none" stroke="black" points="750.96,-1669 750.96,-1781 890.96,-1781 890.96,-1669 750.96,-1669"/>
|
||||
<text text-anchor="middle" x="820.96" y="-1769" font-family="Arial" font-size="10.00">HotelReservation</text>
|
||||
<polyline fill="none" stroke="black" points="750.96,-1762 890.96,-1762 "/>
|
||||
<text text-anchor="start" x="758.96" y="-1750" font-family="Arial" font-size="10.00">+ HotelReservation()</text>
|
||||
<text text-anchor="start" x="758.96" y="-1739" font-family="Arial" font-size="10.00">+ HotelReservation(Address)</text>
|
||||
<polyline fill="none" stroke="black" points="750.96,-1732 890.96,-1732 "/>
|
||||
<text text-anchor="start" x="758.96" y="-1720" font-family="Arial" font-size="10.00">+ copy(String): Reservation</text>
|
||||
<text text-anchor="start" x="758.96" y="-1709" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="758.96" y="-1698" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="758.96" y="-1687" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="758.96" y="-1676" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- HotelReservation->Reservation -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>HotelReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M826.24,-1668.84C832.74,-1600.81 844.24,-1480.54 854.85,-1369.65"/>
|
||||
<polygon fill="none" stroke="black" points="858.34,-1369.93 855.81,-1359.64 851.37,-1369.26 858.34,-1369.93"/>
|
||||
</g>
|
||||
<!-- HouseReservation -->
|
||||
<g id="node14" class="node">
|
||||
<title>HouseReservation</title>
|
||||
<polygon fill="none" stroke="black" points="586.96,-1669 586.96,-1781 732.96,-1781 732.96,-1669 586.96,-1669"/>
|
||||
<text text-anchor="middle" x="659.96" y="-1769" font-family="Arial" font-size="10.00">HouseReservation</text>
|
||||
<polyline fill="none" stroke="black" points="586.96,-1762 732.96,-1762 "/>
|
||||
<text text-anchor="start" x="594.96" y="-1750" font-family="Arial" font-size="10.00">+ HouseReservation()</text>
|
||||
<text text-anchor="start" x="594.96" y="-1739" font-family="Arial" font-size="10.00">+ HouseReservation(Address)</text>
|
||||
<polyline fill="none" stroke="black" points="586.96,-1732 732.96,-1732 "/>
|
||||
<text text-anchor="start" x="594.96" y="-1720" font-family="Arial" font-size="10.00">+ copy(String): Reservation</text>
|
||||
<text text-anchor="start" x="594.96" y="-1709" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="594.96" y="-1698" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="594.96" y="-1687" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="594.96" y="-1676" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- HouseReservation->Reservation -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>HouseReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M679.88,-1668.84C704.47,-1600.74 747.96,-1480.3 788.03,-1369.32"/>
|
||||
<polygon fill="none" stroke="black" points="791.42,-1370.24 791.53,-1359.64 784.84,-1367.86 791.42,-1370.24"/>
|
||||
</g>
|
||||
<!-- AccomodationManager -->
|
||||
<g id="node15" class="node">
|
||||
<title>AccomodationManager</title>
|
||||
<polygon fill="none" stroke="black" points="302.46,-1427.5 302.46,-1616.5 563.46,-1616.5 563.46,-1427.5 302.46,-1427.5"/>
|
||||
<text text-anchor="middle" x="432.96" y="-1604.5" font-family="Arial" font-size="10.00">AccomodationManager</text>
|
||||
<polyline fill="none" stroke="black" points="302.46,-1597.5 563.46,-1597.5 "/>
|
||||
<text text-anchor="start" x="310.46" y="-1585.5" font-family="Arial" font-size="10.00">- AccomodationManager()</text>
|
||||
<text text-anchor="start" x="310.46" y="-1574.5" font-family="Arial" font-size="10.00">+ AccomodationManager(String)</text>
|
||||
<polyline fill="none" stroke="black" points="302.46,-1567.5 563.46,-1567.5 "/>
|
||||
<text text-anchor="start" x="310.46" y="-1555.5" font-family="Arial" font-size="10.00">+ setDataStoreRoot(String): void</text>
|
||||
<text text-anchor="start" x="310.46" y="-1544.5" font-family="Arial" font-size="10.00">+ loadAll(): void</text>
|
||||
<text text-anchor="start" x="310.46" y="-1533.5" font-family="Arial" font-size="10.00">+ load(Path): void</text>
|
||||
<text text-anchor="start" x="310.46" y="-1522.5" font-family="Arial" font-size="10.00">+ retrieveLoadedAccounts(): List<Account></text>
|
||||
<text text-anchor="start" x="310.46" y="-1511.5" font-family="Arial" font-size="10.00">+ retrieveAccount(String): Account</text>
|
||||
<text text-anchor="start" x="310.46" y="-1500.5" font-family="Arial" font-size="10.00">+ AddAccount(Account): void</text>
|
||||
<text text-anchor="start" x="310.46" y="-1489.5" font-family="Arial" font-size="10.00">+ UpdateAccount(Account): void</text>
|
||||
<text text-anchor="start" x="310.46" y="-1478.5" font-family="Arial" font-size="10.00">+ newAccount(String, Address, EmailAddress): Account</text>
|
||||
<text text-anchor="start" x="310.46" y="-1467.5" font-family="Arial" font-size="10.00">+ addReservation(Account, Reservation): boolean</text>
|
||||
<text text-anchor="start" x="310.46" y="-1456.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
|
||||
<text text-anchor="start" x="310.46" y="-1445.5" font-family="Arial" font-size="10.00">+ getReservationList(): List<? extends IReservation></text>
|
||||
<text text-anchor="start" x="310.46" y="-1434.5" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
|
||||
</g>
|
||||
<!-- AccomodationManager->Account -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>AccomodationManager->Account</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M353.54,-1427.5C253.15,-1302.54 85.64,-1069.74 20.96,-837 2.04,-768.91 -14.41,-739.18 20.96,-678 55.54,-618.19 122,-578.83 181.16,-554.17"/>
|
||||
<text text-anchor="middle" x="45.96" y="-847.8" font-family="Arial" font-size="9.00">manages</text>
|
||||
</g>
|
||||
<!-- AccomodationManager->AccountList -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>AccomodationManager->AccountList</title>
|
||||
<path fill="none" stroke="black" d="M1185.27,-1234.35C1185.27,-1218.48 1185.27,-1202.54 1185.27,-1187.52"/>
|
||||
<polygon fill="none" stroke="black" points="1185.27,-1187.15 1181.27,-1181.15 1185.27,-1175.15 1189.27,-1181.15 1185.27,-1187.15"/>
|
||||
<text text-anchor="middle" x="1188.77" y="-1204.8" font-family="Times,serif" font-size="14.00">1</text>
|
||||
<path fill="none" stroke="black" d="M422.26,-1427.29C403.71,-1264.87 366.14,-935.93 351.25,-805.54"/>
|
||||
<text text-anchor="middle" x="419.96" y="-1114.3" font-family="Arial" font-size="9.00">1</text>
|
||||
</g>
|
||||
<!-- HotelReservation -->
|
||||
<g id="node14" class="node">
|
||||
<title>HotelReservation</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="334.77,-1023.5 334.77,-1182.5 613.77,-1182.5 613.77,-1023.5 334.77,-1023.5"/>
|
||||
<text text-anchor="middle" x="474.27" y="-1167.3" font-family="Times,serif" font-size="14.00">HotelReservation</text>
|
||||
<polyline fill="none" stroke="black" points="334.77,-1159.5 613.77,-1159.5 "/>
|
||||
<text text-anchor="middle" x="474.27" y="-1144.3" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="334.77,-1136.5 613.77,-1136.5 "/>
|
||||
<text text-anchor="start" x="342.77" y="-1121.3" font-family="Times,serif" font-size="14.00">+ HotelReservation()</text>
|
||||
<text text-anchor="start" x="342.77" y="-1106.3" font-family="Times,serif" font-size="14.00"> + HotelReservation(physical_address: Address)</text>
|
||||
<text text-anchor="start" x="342.77" y="-1091.3" font-family="Times,serif" font-size="14.00"> + copy(reservationType: String): Reservation</text>
|
||||
<text text-anchor="start" x="342.77" y="-1076.3" font-family="Times,serif" font-size="14.00"> + ReservationType(): String</text>
|
||||
<text text-anchor="start" x="342.77" y="-1061.3" font-family="Times,serif" font-size="14.00"> + checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="342.77" y="-1046.3" font-family="Times,serif" font-size="14.00"> + getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="342.77" y="-1031.3" font-family="Times,serif" font-size="14.00"> + calculatePrice(): float</text>
|
||||
<!-- AccomodationManager->Reservation -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>AccomodationManager->Reservation</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M536.41,-1427.41C600.61,-1369.33 683.58,-1294.26 751.79,-1232.55"/>
|
||||
<text text-anchor="middle" x="583.96" y="-1401.8" font-family="Arial" font-size="9.00">manages</text>
|
||||
</g>
|
||||
<!-- HotelReservation->Reservation -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>HotelReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M446.96,-1023.2C421.93,-950.94 386.28,-848.07 369.58,-799.87"/>
|
||||
<polygon fill="none" stroke="black" points="372.8,-798.48 366.22,-790.17 366.19,-800.77 372.8,-798.48"/>
|
||||
</g>
|
||||
<!-- HouseReservation -->
|
||||
<g id="node15" class="node">
|
||||
<title>HouseReservation</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="632.27,-1023.5 632.27,-1182.5 916.27,-1182.5 916.27,-1023.5 632.27,-1023.5"/>
|
||||
<text text-anchor="middle" x="774.27" y="-1167.3" font-family="Times,serif" font-size="14.00">HouseReservation</text>
|
||||
<polyline fill="none" stroke="black" points="632.27,-1159.5 916.27,-1159.5 "/>
|
||||
<text text-anchor="middle" x="774.27" y="-1144.3" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="632.27,-1136.5 916.27,-1136.5 "/>
|
||||
<text text-anchor="start" x="640.27" y="-1121.3" font-family="Times,serif" font-size="14.00">+ HouseReservation()</text>
|
||||
<text text-anchor="start" x="640.27" y="-1106.3" font-family="Times,serif" font-size="14.00"> + HouseReservation(physical_address: Address)</text>
|
||||
<text text-anchor="start" x="640.27" y="-1091.3" font-family="Times,serif" font-size="14.00"> + copy(reservationType: String): Reservation</text>
|
||||
<text text-anchor="start" x="640.27" y="-1076.3" font-family="Times,serif" font-size="14.00"> + ReservationType(): String</text>
|
||||
<text text-anchor="start" x="640.27" y="-1061.3" font-family="Times,serif" font-size="14.00"> + checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="640.27" y="-1046.3" font-family="Times,serif" font-size="14.00"> + getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="640.27" y="-1031.3" font-family="Times,serif" font-size="14.00"> + calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- HouseReservation->Reservation -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>HouseReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M675.37,-1023.41C582.35,-949.49 448.86,-843.4 390.04,-796.65"/>
|
||||
<polygon fill="none" stroke="black" points="391.92,-793.68 381.91,-790.2 387.56,-799.16 391.92,-793.68"/>
|
||||
</g>
|
||||
<!-- CabinReservation -->
|
||||
<!-- DataRepository -->
|
||||
<g id="node16" class="node">
|
||||
<title>CabinReservation</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="35.77,-1031 35.77,-1175 316.77,-1175 316.77,-1031 35.77,-1031"/>
|
||||
<text text-anchor="middle" x="176.27" y="-1159.8" font-family="Times,serif" font-size="14.00">CabinReservation</text>
|
||||
<polyline fill="none" stroke="black" points="35.77,-1152 316.77,-1152 "/>
|
||||
<text text-anchor="middle" x="176.27" y="-1136.8" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="35.77,-1129 316.77,-1129 "/>
|
||||
<text text-anchor="start" x="43.77" y="-1113.8" font-family="Times,serif" font-size="14.00">+ CabinReservation()</text>
|
||||
<text text-anchor="start" x="43.77" y="-1098.8" font-family="Times,serif" font-size="14.00"> + CabinReservation(physical_address: Address)</text>
|
||||
<text text-anchor="start" x="43.77" y="-1083.8" font-family="Times,serif" font-size="14.00"> + ReservationType(): String</text>
|
||||
<text text-anchor="start" x="43.77" y="-1068.8" font-family="Times,serif" font-size="14.00"> + checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="43.77" y="-1053.8" font-family="Times,serif" font-size="14.00"> + getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="43.77" y="-1038.8" font-family="Times,serif" font-size="14.00"> + calculatePrice(): float</text>
|
||||
<title>DataRepository</title>
|
||||
<polygon fill="none" stroke="black" points="297.46,-1663.5 297.46,-1786.5 568.46,-1786.5 568.46,-1663.5 297.46,-1663.5"/>
|
||||
<text text-anchor="middle" x="432.96" y="-1774.5" font-family="Arial" font-size="10.00">DataRepository</text>
|
||||
<polyline fill="none" stroke="black" points="297.46,-1767.5 568.46,-1767.5 "/>
|
||||
<text text-anchor="start" x="305.46" y="-1755.5" font-family="Arial" font-size="10.00"># getInstance(): DataRepository</text>
|
||||
<polyline fill="none" stroke="black" points="297.46,-1748.5 568.46,-1748.5 "/>
|
||||
<text text-anchor="start" x="305.46" y="-1736.5" font-family="Arial" font-size="10.00">+ setDataStoreRoot(String): void</text>
|
||||
<text text-anchor="start" x="305.46" y="-1725.5" font-family="Arial" font-size="10.00">+ getPath(): String</text>
|
||||
<text text-anchor="start" x="305.46" y="-1714.5" font-family="Arial" font-size="10.00">+ Reservation(String): Reservation</text>
|
||||
<text text-anchor="start" x="305.46" y="-1703.5" font-family="Arial" font-size="10.00">+ WalkFileSystemTree(AccomodationManager, Path): void</text>
|
||||
<text text-anchor="start" x="305.46" y="-1692.5" font-family="Arial" font-size="10.00">+ LoadAccount(Path): Account</text>
|
||||
<text text-anchor="start" x="305.46" y="-1681.5" font-family="Arial" font-size="10.00">- loadReservationRefList(JsonReader, Account): void</text>
|
||||
<text text-anchor="start" x="305.46" y="-1670.5" font-family="Arial" font-size="10.00">- loadReservation(Account, String, String): void</text>
|
||||
</g>
|
||||
<!-- CabinReservation->Reservation -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>CabinReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M216.2,-1030.61C257.01,-957.64 318.2,-848.22 345.83,-798.83"/>
|
||||
<polygon fill="none" stroke="black" points="348.91,-800.49 350.73,-790.05 342.8,-797.07 348.91,-800.49"/>
|
||||
<!-- DataRepository->AccomodationManager -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>DataRepository->AccomodationManager</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M432.96,-1663.42C432.96,-1648.63 432.96,-1632.45 432.96,-1616.51"/>
|
||||
<text text-anchor="middle" x="443.96" y="-1637.8" font-family="Arial" font-size="9.00">uses</text>
|
||||
</g>
|
||||
<!-- TestReservations -->
|
||||
<g id="node17" class="node">
|
||||
<title>TestReservations</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1292.77,-1595.5 1292.77,-1664.5 1461.77,-1664.5 1461.77,-1595.5 1292.77,-1595.5"/>
|
||||
<text text-anchor="middle" x="1377.27" y="-1649.3" font-family="Times,serif" font-size="14.00">TestReservations</text>
|
||||
<polyline fill="none" stroke="black" points="1292.77,-1641.5 1461.77,-1641.5 "/>
|
||||
<text text-anchor="middle" x="1377.27" y="-1626.3" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="1292.77,-1618.5 1461.77,-1618.5 "/>
|
||||
<text text-anchor="start" x="1300.77" y="-1603.3" font-family="Times,serif" font-size="14.00">+ main(args: String[]): void</text>
|
||||
<polygon fill="none" stroke="black" points="1077.46,-1706 1077.46,-1744 1184.46,-1744 1184.46,-1706 1077.46,-1706"/>
|
||||
<text text-anchor="middle" x="1130.96" y="-1732" font-family="Arial" font-size="10.00">TestReservations</text>
|
||||
<polyline fill="none" stroke="black" points="1077.46,-1725 1184.46,-1725 "/>
|
||||
<text text-anchor="start" x="1085.46" y="-1713" font-family="Arial" font-size="10.00">+ main(String[]): void</text>
|
||||
</g>
|
||||
<!-- TestReservations->AccomodationManager -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>TestReservations->AccomodationManager</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1353.34,-1595.47C1334.48,-1569.05 1306.86,-1530.36 1279.45,-1491.95"/>
|
||||
<polygon fill="black" stroke="black" points="1273.61,-1483.76 1283.08,-1489.29 1276.51,-1487.83 1279.41,-1491.9 1279.41,-1491.9 1279.41,-1491.9 1276.51,-1487.83 1275.75,-1494.52 1273.61,-1483.76 1273.61,-1483.76"/>
|
||||
<text text-anchor="middle" x="1305.27" y="-1505.8" font-family="Times,serif" font-size="14.00">uses</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1116.06,-1705.74C1103.78,-1691.92 1085.15,-1673.56 1064.96,-1663 904.77,-1579.19 696.33,-1545.43 563.54,-1531.91"/>
|
||||
<text text-anchor="middle" x="1027.96" y="-1637.8" font-family="Arial" font-size="9.00">uses</text>
|
||||
</g>
|
||||
<!-- getRepositoryConfig -->
|
||||
<g id="node18" class="node">
|
||||
<title>getRepositoryConfig</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1416.27,-1324.5 1416.27,-1393.5 1546.27,-1393.5 1546.27,-1324.5 1416.27,-1324.5"/>
|
||||
<text text-anchor="middle" x="1481.27" y="-1378.3" font-family="Times,serif" font-size="14.00">getRepositoryConfig</text>
|
||||
<polyline fill="none" stroke="black" points="1416.27,-1370.5 1546.27,-1370.5 "/>
|
||||
<text text-anchor="middle" x="1481.27" y="-1355.3" font-family="Times,serif" font-size="14.00"> </text>
|
||||
<polyline fill="none" stroke="black" points="1416.27,-1347.5 1546.27,-1347.5 "/>
|
||||
<text text-anchor="start" x="1424.27" y="-1332.3" font-family="Times,serif" font-size="14.00">+ getPath(): String</text>
|
||||
<polygon fill="none" stroke="black" points="1078.96,-1503 1078.96,-1541 1182.96,-1541 1182.96,-1503 1078.96,-1503"/>
|
||||
<text text-anchor="middle" x="1130.96" y="-1529" font-family="Arial" font-size="10.00">getRepositoryConfig</text>
|
||||
<polyline fill="none" stroke="black" points="1078.96,-1522 1182.96,-1522 "/>
|
||||
<text text-anchor="start" x="1086.96" y="-1510" font-family="Arial" font-size="10.00">+ getPath(): String</text>
|
||||
</g>
|
||||
<!-- TestReservations->getRepositoryConfig -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>TestReservations->getRepositoryConfig</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1390.23,-1595.47C1409.04,-1546.82 1443.92,-1456.6 1464.62,-1403.07"/>
|
||||
<polygon fill="black" stroke="black" points="1468.31,-1393.52 1468.9,-1404.47 1466.51,-1398.19 1464.7,-1402.85 1464.7,-1402.85 1464.7,-1402.85 1466.51,-1398.19 1460.51,-1401.23 1468.31,-1393.52 1468.31,-1393.52"/>
|
||||
<text text-anchor="middle" x="1438.27" y="-1505.8" font-family="Times,serif" font-size="14.00">uses</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1130.96,-1705.81C1130.96,-1667.54 1130.96,-1579.11 1130.96,-1541.01"/>
|
||||
<text text-anchor="middle" x="1141.96" y="-1637.8" font-family="Arial" font-size="9.00">uses</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 40 KiB |
Reference in New Issue
Block a user