classdiagram
This commit is contained in:
@@ -1,111 +0,0 @@
|
||||
digraph LodgeReservationSystem {
|
||||
// Graph attributes
|
||||
rankdir=TB;
|
||||
node [shape=record, fontname="Arial", fontsize=10];
|
||||
edge [fontname="Arial", fontsize=9];
|
||||
|
||||
// Package clustering
|
||||
subgraph cluster_data {
|
||||
label="lodge.data";
|
||||
style=filled;
|
||||
color=lightgrey;
|
||||
|
||||
// Data classes
|
||||
Address [label="{Address|+ street: String\l+ city: String\l+ state: String\l+ zip: String\l|+ Address(String, String, String, String)\l+ getters/setters\l+ hashCode(): int\l+ equals(Object): boolean\l+ toString(): String\l}"];
|
||||
|
||||
EmailAddress [label="{EmailAddress|+ email_address: String\l|+ 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="{KitchenTypeEnum|\<\<enumeration\>\>|None\lKitchenette\lFullKitchen\l}"];
|
||||
|
||||
ReservationStatusEnum [label="{ReservationStatusEnum|\<\<enumeration\>\>|Draft\lCanceled\lCompleted\l}"];
|
||||
|
||||
// Exceptions
|
||||
DuplicateObjectException [label="{DuplicateObjectException|extends RuntimeException|+ DuplicateObjectException()\l+ DuplicateObjectException(String)\l}"];
|
||||
|
||||
IllegalOperationException [label="{IllegalOperationException|extends RuntimeException|+ IllegalOperationException()\l+ IllegalOperationException(String)\l}"];
|
||||
|
||||
subgraph cluster_account {
|
||||
label="lodge.reservation";
|
||||
style=filled;
|
||||
color="#e9d5ba";
|
||||
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(String, String, Address, EmailAddress)\l+ Account(String, Address, EmailAddress)\l+ add(Reservation): boolean\l+ findReservation(String): Reservation\l+ getAllReservations(): ListIterator\<IReservation\>\l+ update(Account): void\l+ toString(): String\l+ static Write(Account): void\l}"];
|
||||
|
||||
AccountList [label="{AccountList|extends ArrayList\<Account\>|+ static accountSerial(...): String\l+ add(Account): boolean\l+ save(Account): void\l+ find(String): Account\l+ getListOfReservations(): List\<? extends IReservation\>\l+ showReservationList(): void\l}"];
|
||||
|
||||
}
|
||||
|
||||
subgraph cluster_reservation {
|
||||
label="lodge.reservation";
|
||||
style=filled;
|
||||
color=lightblue;
|
||||
|
||||
// Interface
|
||||
IReservation [label="{IReservation|\<\<interface\>\>|+ ReservationType(): String\l+ static copy(String): Reservation\l+ getReservation_number(): String\l+ getAccountNumber(): String\l+ getPhysical_address(): Address\l+ getPricePerNight(): float\l+ calculatePrice(): float\l+ checkValid(): boolean\l}"];
|
||||
|
||||
// Abstract class
|
||||
Reservation [label="{Reservation|\<\<abstract\>\>|# 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+ getters/setters\l+ Write(Reservation): void\l+ Change(Reservation, ReservationStatusEnum): void\l+ update(Reservation): void\l+ abstract ReservationType(): String\l}"];
|
||||
|
||||
// Reservation List
|
||||
AccountReservationList [label="{AccountReservationList|extends ArrayList\<IReservation\>|- static reservationSerial(Reservation): String\l+ add(IReservation): boolean\l+ find(String): Reservation\l+ update(AccountReservationList): void\l+ toString(): String\l}"];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
subgraph cluster_reservationsystem {
|
||||
label="lodge.reservationsystem";
|
||||
style=filled;
|
||||
color=lightyellow;
|
||||
|
||||
// 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(Address)\l+ static copy(String): Reservation\l+ ReservationType(): String\l+ checkValid(): boolean\l+ getPricePerNight(): float\l+ calculatePrice(): float\l}"];
|
||||
|
||||
HouseReservation [label="{HouseReservation|+ HouseReservation()\l+ HouseReservation(Address)\l+ static copy(String): Reservation\l+ ReservationType(): String\l+ checkValid(): boolean\l+ getPricePerNight(): float\l+ calculatePrice(): float\l}"];
|
||||
|
||||
AccomodationManager [label="{AccomodationManager|- accounts: AccountList\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(...): Account\l+ addReservation(Account, Reservation): boolean\l+ findReservation(String): Reservation\l+ getReservationList(): List\<? extends IReservation\>\l+ showReservationList(): void\l}"];
|
||||
|
||||
DataRepository [label="{DataRepository|\<\<singleton\>\>|- directoryPath: String\l- static instance: DataRepository\l|+ static getInstance(): DataRepository\l+ static setDataStoreRoot(String): void\l+ static getPath(): String\l+ static Reservation(String): Reservation\l+ static WalkFileSystemTree(...): void\l+ static LoadAccount(Path): Account\l}"];
|
||||
}
|
||||
|
||||
subgraph cluster_lodge {
|
||||
label="lodge";
|
||||
style=filled;
|
||||
color=lightcoral;
|
||||
|
||||
TestReservations [label="{TestReservations|+ static main(String[]): void\l+ static class getRepositoryConfig\l}"];
|
||||
}
|
||||
|
||||
// Inheritance relationships
|
||||
Reservation -> IReservation [arrowhead=empty, style=dashed, label="implements"];
|
||||
CabinReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||
HotelReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||
HouseReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||
|
||||
// Composition relationships
|
||||
Account -> AccountReservationList [arrowhead=diamond, label="contains"];
|
||||
Account -> Address [arrowhead=diamond, label="mailing_address"];
|
||||
Account -> EmailAddress [arrowhead=diamond, label="email_address"];
|
||||
AccountList -> Account [arrowhead=odiamond, label="contains 0..*"];
|
||||
AccountReservationList -> IReservation [arrowhead=odiamond, label="contains 0..*"];
|
||||
Reservation -> Address [arrowhead=diamond, label="physical_address\nmailing_address"];
|
||||
Reservation -> KitchenTypeEnum [arrowhead=diamond, label="kitchen"];
|
||||
Reservation -> ReservationStatusEnum [arrowhead=diamond, label="reservation_status"];
|
||||
AccomodationManager -> AccountList [arrowhead=diamond, label="accounts"];
|
||||
|
||||
// Dependencies
|
||||
AccomodationManager -> DataRepository [arrowhead=open, style=dashed, label="uses"];
|
||||
DataRepository -> Account [arrowhead=open, style=dashed, label="creates"];
|
||||
DataRepository -> CabinReservation [arrowhead=open, style=dashed, label="creates"];
|
||||
DataRepository -> HotelReservation [arrowhead=open, style=dashed, label="creates"];
|
||||
DataRepository -> HouseReservation [arrowhead=open, style=dashed, label="creates"];
|
||||
TestReservations -> AccomodationManager [arrowhead=open, style=dashed, label="uses"];
|
||||
TestReservations -> CabinReservation [arrowhead=open, style=dashed, label="creates"];
|
||||
TestReservations -> HotelReservation [arrowhead=open, style=dashed, label="creates"];
|
||||
TestReservations -> HouseReservation [arrowhead=open, style=dashed, label="creates"];
|
||||
AccountReservationList -> DuplicateObjectException [arrowhead=open, style=dashed, label="throws"];
|
||||
Reservation -> IllegalOperationException [arrowhead=open, style=dashed, label="throws"];
|
||||
}
|
||||
@@ -1,468 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1916pt" height="1473pt" viewBox="0.00 0.00 1916.00 1472.80">
|
||||
<g id="graph0" class="graph" transform="translate(4,1468.800048828125) scale(1)" data-name="LodgeReservationSystem">
|
||||
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1468.8 1912,-1468.8 1912,4 -4,4" style=""/>
|
||||
<g id="clust1" class="cluster" data-name="cluster_data">
|
||||
|
||||
<polygon fill="lightgrey" stroke="lightgrey" points="8,-8 8,-1059.6 1364,-1059.6 1364,-8 8,-8" style=""/>
|
||||
<text text-anchor="middle" x="686" y="-1043" font-family="Times,serif" font-size="14.00" style="">lodge.data</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster" data-name="cluster_account">
|
||||
|
||||
<polygon fill="#e9d5ba" stroke="#e9d5ba" points="833,-597.2 833,-1026.8 1113,-1026.8 1113,-597.2 833,-597.2" style=""/>
|
||||
<text text-anchor="middle" x="973" y="-1010.2" font-family="Times,serif" font-size="14.00" style="">lodge.reservation</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster" data-name="cluster_reservation">
|
||||
|
||||
<polygon fill="lightblue" stroke="lightblue" points="851,-16 851,-568.4 1356,-568.4 1356,-16 851,-16" style=""/>
|
||||
<text text-anchor="middle" x="1103.5" y="-551.8" font-family="Times,serif" font-size="14.00" style="">lodge.reservation</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster" data-name="cluster_reservationsystem">
|
||||
|
||||
<polygon fill="lightyellow" stroke="lightyellow" points="1372,-643.2 1372,-1334.2 1900,-1334.2 1900,-643.2 1372,-643.2" style=""/>
|
||||
<text text-anchor="middle" x="1636" y="-1317.6" font-family="Times,serif" font-size="14.00" style="">lodge.reservationsystem</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster" data-name="cluster_lodge">
|
||||
|
||||
<polygon fill="lightcoral" stroke="lightcoral" points="1594,-1363 1594,-1456.8 1776,-1456.8 1776,-1363 1594,-1363" style=""/>
|
||||
<text text-anchor="middle" x="1685" y="-1440.2" font-family="Times,serif" font-size="14.00" style="">lodge</text>
|
||||
</g>
|
||||
<!-- Address -->
|
||||
<g id="node1" class="node" pointer-events="visible" data-name="Address">
|
||||
|
||||
<polygon fill="none" stroke="black" points="206.44,-24.5 206.44,-168.5 395.56,-168.5 395.56,-24.5 206.44,-24.5" style=""/>
|
||||
<text text-anchor="middle" x="301" y="-155.5" font-family="Arial" font-size="10.00" style="">Address</text>
|
||||
<polyline fill="none" stroke="black" points="206.44,-148.5 395.56,-148.5" style=""/>
|
||||
<text text-anchor="start" x="214.44" y="-135.5" font-family="Arial" font-size="10.00" style="">+ street: String</text>
|
||||
<text text-anchor="start" x="214.44" y="-123.5" font-family="Arial" font-size="10.00" style="">+ city: String</text>
|
||||
<text text-anchor="start" x="214.44" y="-111.5" font-family="Arial" font-size="10.00" style="">+ state: String</text>
|
||||
<text text-anchor="start" x="214.44" y="-99.5" font-family="Arial" font-size="10.00" style="">+ zip: String</text>
|
||||
<polyline fill="none" stroke="black" points="206.44,-92.5 395.56,-92.5" style=""/>
|
||||
<text text-anchor="start" x="214.44" y="-79.5" font-family="Arial" font-size="10.00" style="">+ Address(String, String, String, String)</text>
|
||||
<text text-anchor="start" x="214.44" y="-67.5" font-family="Arial" font-size="10.00" style="">+ getters/setters</text>
|
||||
<text text-anchor="start" x="214.44" y="-55.5" font-family="Arial" font-size="10.00" style="">+ hashCode(): int</text>
|
||||
<text text-anchor="start" x="214.44" y="-43.5" font-family="Arial" font-size="10.00" style="">+ equals(Object): boolean</text>
|
||||
<text text-anchor="start" x="214.44" y="-31.5" font-family="Arial" font-size="10.00" style="">+ toString(): String</text>
|
||||
</g>
|
||||
<!-- EmailAddress -->
|
||||
<g id="node2" class="node" pointer-events="visible" data-name="EmailAddress">
|
||||
|
||||
<polygon fill="none" stroke="black" points="679.61,-321.1 679.61,-441.1 840.39,-441.1 840.39,-321.1 679.61,-321.1" style=""/>
|
||||
<text text-anchor="middle" x="760" y="-428.1" font-family="Arial" font-size="10.00" style="">EmailAddress</text>
|
||||
<polyline fill="none" stroke="black" points="679.61,-421.1 840.39,-421.1" style=""/>
|
||||
<text text-anchor="start" x="687.61" y="-408.1" font-family="Arial" font-size="10.00" style="">+ email_address: String</text>
|
||||
<polyline fill="none" stroke="black" points="679.61,-401.1 840.39,-401.1" style=""/>
|
||||
<text text-anchor="start" x="687.61" y="-388.1" font-family="Arial" font-size="10.00" style="">+ EmailAddress(String)</text>
|
||||
<text text-anchor="start" x="687.61" y="-376.1" font-family="Arial" font-size="10.00" style="">+ getEmail_address(): String</text>
|
||||
<text text-anchor="start" x="687.61" y="-364.1" font-family="Arial" font-size="10.00" style="">+ setEmail_address(String): void</text>
|
||||
<text text-anchor="start" x="687.61" y="-352.1" font-family="Arial" font-size="10.00" style="">+ hashCode(): int</text>
|
||||
<text text-anchor="start" x="687.61" y="-340.1" font-family="Arial" font-size="10.00" style="">+ equals(Object): boolean</text>
|
||||
<text text-anchor="start" x="687.61" y="-328.1" font-family="Arial" font-size="10.00" style="">+ toString(): String</text>
|
||||
</g>
|
||||
<!-- KitchenTypeEnum -->
|
||||
<g id="node3" class="node" pointer-events="visible" data-name="KitchenTypeEnum">
|
||||
|
||||
<polygon fill="none" stroke="black" points="413.15,-54.5 413.15,-138.5 510.85,-138.5 510.85,-54.5 413.15,-54.5" style=""/>
|
||||
<text text-anchor="middle" x="462" y="-125.5" font-family="Arial" font-size="10.00" style="">KitchenTypeEnum</text>
|
||||
<polyline fill="none" stroke="black" points="413.15,-118.5 510.85,-118.5" style=""/>
|
||||
<text text-anchor="middle" x="462" y="-105.5" font-family="Arial" font-size="10.00" style=""><<enumeration>></text>
|
||||
<polyline fill="none" stroke="black" points="413.15,-98.5 510.85,-98.5" style=""/>
|
||||
<text text-anchor="start" x="421.15" y="-85.5" font-family="Arial" font-size="10.00" style="">None</text>
|
||||
<text text-anchor="start" x="421.15" y="-73.5" font-family="Arial" font-size="10.00" style="">Kitchenette</text>
|
||||
<text text-anchor="start" x="421.15" y="-61.5" font-family="Arial" font-size="10.00" style="">FullKitchen</text>
|
||||
</g>
|
||||
<!-- ReservationStatusEnum -->
|
||||
<g id="node4" class="node" pointer-events="visible" data-name="ReservationStatusEnum">
|
||||
|
||||
<polygon fill="none" stroke="black" points="529.08,-54.5 529.08,-138.5 652.92,-138.5 652.92,-54.5 529.08,-54.5" style=""/>
|
||||
<text text-anchor="middle" x="591" y="-125.5" font-family="Arial" font-size="10.00" style="">ReservationStatusEnum</text>
|
||||
<polyline fill="none" stroke="black" points="529.08,-118.5 652.92,-118.5" style=""/>
|
||||
<text text-anchor="middle" x="591" y="-105.5" font-family="Arial" font-size="10.00" style=""><<enumeration>></text>
|
||||
<polyline fill="none" stroke="black" points="529.08,-98.5 652.92,-98.5" style=""/>
|
||||
<text text-anchor="start" x="537.08" y="-85.5" font-family="Arial" font-size="10.00" style="">Draft</text>
|
||||
<text text-anchor="start" x="537.08" y="-73.5" font-family="Arial" font-size="10.00" style="">Canceled</text>
|
||||
<text text-anchor="start" x="537.08" y="-61.5" font-family="Arial" font-size="10.00" style="">Completed</text>
|
||||
</g>
|
||||
<!-- DuplicateObjectException -->
|
||||
<g id="node5" class="node" pointer-events="visible" data-name="DuplicateObjectException">
|
||||
|
||||
<polygon fill="none" stroke="black" points="16.05,-60.5 16.05,-132.5 187.95,-132.5 187.95,-60.5 16.05,-60.5" style=""/>
|
||||
<text text-anchor="middle" x="102" y="-119.5" font-family="Arial" font-size="10.00" style="">DuplicateObjectException</text>
|
||||
<polyline fill="none" stroke="black" points="16.05,-112.5 187.95,-112.5" style=""/>
|
||||
<text text-anchor="middle" x="102" y="-99.5" font-family="Arial" font-size="10.00" style="">extends RuntimeException</text>
|
||||
<polyline fill="none" stroke="black" points="16.05,-92.5 187.95,-92.5" style=""/>
|
||||
<text text-anchor="start" x="24.05" y="-79.5" font-family="Arial" font-size="10.00" style="">+ DuplicateObjectException()</text>
|
||||
<text text-anchor="start" x="24.05" y="-67.5" font-family="Arial" font-size="10.00" style="">+ DuplicateObjectException(String)</text>
|
||||
</g>
|
||||
<!-- IllegalOperationException -->
|
||||
<g id="node6" class="node" pointer-events="visible" data-name="IllegalOperationException">
|
||||
|
||||
<polygon fill="none" stroke="black" points="671.32,-60.5 671.32,-132.5 842.68,-132.5 842.68,-60.5 671.32,-60.5" style=""/>
|
||||
<text text-anchor="middle" x="757" y="-119.5" font-family="Arial" font-size="10.00" style="">IllegalOperationException</text>
|
||||
<polyline fill="none" stroke="black" points="671.32,-112.5 842.68,-112.5" style=""/>
|
||||
<text text-anchor="middle" x="757" y="-99.5" font-family="Arial" font-size="10.00" style="">extends RuntimeException</text>
|
||||
<polyline fill="none" stroke="black" points="671.32,-92.5 842.68,-92.5" style=""/>
|
||||
<text text-anchor="start" x="679.32" y="-79.5" font-family="Arial" font-size="10.00" style="">+ IllegalOperationException()</text>
|
||||
<text text-anchor="start" x="679.32" y="-67.5" font-family="Arial" font-size="10.00" style="">+ IllegalOperationException(String)</text>
|
||||
</g>
|
||||
<!-- Account -->
|
||||
<g id="node7" class="node" pointer-events="visible" data-name="Account">
|
||||
|
||||
<polygon fill="none" stroke="black" points="848.37,-605.7 848.37,-809.7 1083.63,-809.7 1083.63,-605.7 848.37,-605.7" style=""/>
|
||||
<text text-anchor="middle" x="966" y="-796.7" font-family="Arial" font-size="10.00" style="">Account</text>
|
||||
<polyline fill="none" stroke="black" points="848.37,-789.7 1083.63,-789.7" style=""/>
|
||||
<text text-anchor="start" x="856.37" y="-776.7" font-family="Arial" font-size="10.00" style="">+ account_number: String</text>
|
||||
<text text-anchor="start" x="856.37" y="-764.7" font-family="Arial" font-size="10.00" style="">+ phone_number: String</text>
|
||||
<text text-anchor="start" x="856.37" y="-752.7" font-family="Arial" font-size="10.00" style="">+ mailing_address: Address</text>
|
||||
<text text-anchor="start" x="856.37" y="-740.7" font-family="Arial" font-size="10.00" style="">+ email_address: EmailAddress</text>
|
||||
<text text-anchor="start" x="856.37" y="-728.7" font-family="Arial" font-size="10.00" style="">- reservations: AccountReservationList</text>
|
||||
<polyline fill="none" stroke="black" points="848.37,-721.7 1083.63,-721.7" style=""/>
|
||||
<text text-anchor="start" x="856.37" y="-708.7" font-family="Arial" font-size="10.00" style="">+ Account()</text>
|
||||
<text text-anchor="start" x="856.37" y="-696.7" font-family="Arial" font-size="10.00" style="">+ Account(String, String, Address, EmailAddress)</text>
|
||||
<text text-anchor="start" x="856.37" y="-684.7" font-family="Arial" font-size="10.00" style="">+ Account(String, Address, EmailAddress)</text>
|
||||
<text text-anchor="start" x="856.37" y="-672.7" font-family="Arial" font-size="10.00" style="">+ add(Reservation): boolean</text>
|
||||
<text text-anchor="start" x="856.37" y="-660.7" font-family="Arial" font-size="10.00" style="">+ findReservation(String): Reservation</text>
|
||||
<text text-anchor="start" x="856.37" y="-648.7" font-family="Arial" font-size="10.00" style="">+ getAllReservations(): ListIterator<IReservation></text>
|
||||
<text text-anchor="start" x="856.37" y="-636.7" font-family="Arial" font-size="10.00" style="">+ update(Account): void</text>
|
||||
<text text-anchor="start" x="856.37" y="-624.7" font-family="Arial" font-size="10.00" style="">+ toString(): String</text>
|
||||
<text text-anchor="start" x="856.37" y="-612.7" font-family="Arial" font-size="10.00" style="">+ static Write(Account): void</text>
|
||||
</g>
|
||||
<!-- Account->Address -->
|
||||
<g id="edge6" class="edge" data-name="Account->Address">
|
||||
|
||||
<path fill="none" stroke="black" d="M848.59,-684.51C771.89,-664.93 673.67,-629.66 605.46,-568.4 463.75,-441.13 529.54,-335.29 410,-187 407.27,-183.61 404.38,-180.25 401.39,-176.95" style=""/>
|
||||
<polygon fill="black" stroke="black" points="401.48,-177.04 394.45,-175.44 393.22,-168.33 400.25,-169.94 401.48,-177.04" style=""/>
|
||||
<text text-anchor="middle" x="637.77" y="-378.4" font-family="Arial" font-size="9.00" style="">mailing_address</text>
|
||||
</g>
|
||||
<!-- Account->EmailAddress -->
|
||||
<g id="edge7" class="edge" data-name="Account->EmailAddress">
|
||||
|
||||
<path fill="none" stroke="black" d="M874.02,-606.06C864.4,-593.75 855.17,-581.04 847,-568.4 823.38,-531.86 802.53,-487.88 787.17,-451.83" style=""/>
|
||||
<polygon fill="black" stroke="black" points="787.23,-451.97 781.22,-447.99 782.58,-440.91 788.59,-444.89 787.23,-451.97" style=""/>
|
||||
<text text-anchor="middle" x="887.27" y="-579.1" font-family="Arial" font-size="9.00" style="">email_address</text>
|
||||
</g>
|
||||
<!-- AccountReservationList -->
|
||||
<g id="node11" class="node" pointer-events="visible" data-name="AccountReservationList">
|
||||
|
||||
<polygon fill="none" stroke="black" points="858.52,-327.1 858.52,-435.1 1073.48,-435.1 1073.48,-327.1 858.52,-327.1" style=""/>
|
||||
<text text-anchor="middle" x="966" y="-422.1" font-family="Arial" font-size="10.00" style="">AccountReservationList</text>
|
||||
<polyline fill="none" stroke="black" points="858.52,-415.1 1073.48,-415.1" style=""/>
|
||||
<text text-anchor="middle" x="966" y="-402.1" font-family="Arial" font-size="10.00" style="">extends ArrayList<IReservation></text>
|
||||
<polyline fill="none" stroke="black" points="858.52,-395.1 1073.48,-395.1" style=""/>
|
||||
<text text-anchor="start" x="866.52" y="-382.1" font-family="Arial" font-size="10.00" style="">- static reservationSerial(Reservation): String</text>
|
||||
<text text-anchor="start" x="866.52" y="-370.1" font-family="Arial" font-size="10.00" style="">+ add(IReservation): boolean</text>
|
||||
<text text-anchor="start" x="866.52" y="-358.1" font-family="Arial" font-size="10.00" style="">+ find(String): Reservation</text>
|
||||
<text text-anchor="start" x="866.52" y="-346.1" font-family="Arial" font-size="10.00" style="">+ update(AccountReservationList): void</text>
|
||||
<text text-anchor="start" x="866.52" y="-334.1" font-family="Arial" font-size="10.00" style="">+ toString(): String</text>
|
||||
</g>
|
||||
<!-- Account->AccountReservationList -->
|
||||
<g id="edge5" class="edge" data-name="Account->AccountReservationList">
|
||||
|
||||
<path fill="none" stroke="black" d="M966,-605.77C966,-553.84 966,-492.07 966,-446.62" style=""/>
|
||||
<polygon fill="black" stroke="black" points="966,-446.84 962,-440.84 966,-434.84 970,-440.84 966,-446.84" style=""/>
|
||||
<text text-anchor="middle" x="982.76" y="-579.1" font-family="Arial" font-size="9.00" style="">contains</text>
|
||||
</g>
|
||||
<!-- AccountList -->
|
||||
<g id="node8" class="node" pointer-events="visible" data-name="AccountList">
|
||||
|
||||
<polygon fill="none" stroke="black" points="840.63,-873.5 840.63,-993.5 1105.37,-993.5 1105.37,-873.5 840.63,-873.5" style=""/>
|
||||
<text text-anchor="middle" x="973" y="-980.5" font-family="Arial" font-size="10.00" style="">AccountList</text>
|
||||
<polyline fill="none" stroke="black" points="840.63,-973.5 1105.37,-973.5" style=""/>
|
||||
<text text-anchor="middle" x="973" y="-960.5" font-family="Arial" font-size="10.00" style="">extends ArrayList<Account></text>
|
||||
<polyline fill="none" stroke="black" points="840.63,-953.5 1105.37,-953.5" style=""/>
|
||||
<text text-anchor="start" x="848.63" y="-940.5" font-family="Arial" font-size="10.00" style="">+ static accountSerial(...): String</text>
|
||||
<text text-anchor="start" x="848.63" y="-928.5" font-family="Arial" font-size="10.00" style="">+ add(Account): boolean</text>
|
||||
<text text-anchor="start" x="848.63" y="-916.5" font-family="Arial" font-size="10.00" style="">+ save(Account): void</text>
|
||||
<text text-anchor="start" x="848.63" y="-904.5" font-family="Arial" font-size="10.00" style="">+ find(String): Account</text>
|
||||
<text text-anchor="start" x="848.63" y="-892.5" font-family="Arial" font-size="10.00" style="">+ getListOfReservations(): List<? extends IReservation></text>
|
||||
<text text-anchor="start" x="848.63" y="-880.5" font-family="Arial" font-size="10.00" style="">+ showReservationList(): void</text>
|
||||
</g>
|
||||
<!-- AccountList->Account -->
|
||||
<g id="edge8" class="edge" data-name="AccountList->Account">
|
||||
|
||||
<path fill="none" stroke="black" d="M971.16,-873.7C970.66,-857.55 970.09,-839.48 969.52,-821.39" style=""/>
|
||||
<polygon fill="none" stroke="black" points="969.53,-821.51 965.34,-815.63 969.15,-809.51 973.34,-815.38 969.53,-821.51" style=""/>
|
||||
<text text-anchor="middle" x="993.77" y="-830.9" font-family="Arial" font-size="9.00" style="">contains 0..*</text>
|
||||
</g>
|
||||
<!-- IReservation -->
|
||||
<g id="node9" class="node" pointer-events="visible" data-name="IReservation">
|
||||
|
||||
<polygon fill="none" stroke="black" points="962.16,-24.5 962.16,-168.5 1131.84,-168.5 1131.84,-24.5 962.16,-24.5" style=""/>
|
||||
<text text-anchor="middle" x="1047" y="-155.5" font-family="Arial" font-size="10.00" style="">IReservation</text>
|
||||
<polyline fill="none" stroke="black" points="962.16,-148.5 1131.84,-148.5" style=""/>
|
||||
<text text-anchor="middle" x="1047" y="-135.5" font-family="Arial" font-size="10.00" style=""><<interface>></text>
|
||||
<polyline fill="none" stroke="black" points="962.16,-128.5 1131.84,-128.5" style=""/>
|
||||
<text text-anchor="start" x="970.16" y="-115.5" font-family="Arial" font-size="10.00" style="">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="970.16" y="-103.5" font-family="Arial" font-size="10.00" style="">+ static copy(String): Reservation</text>
|
||||
<text text-anchor="start" x="970.16" y="-91.5" font-family="Arial" font-size="10.00" style="">+ getReservation_number(): String</text>
|
||||
<text text-anchor="start" x="970.16" y="-79.5" font-family="Arial" font-size="10.00" style="">+ getAccountNumber(): String</text>
|
||||
<text text-anchor="start" x="970.16" y="-67.5" font-family="Arial" font-size="10.00" style="">+ getPhysical_address(): Address</text>
|
||||
<text text-anchor="start" x="970.16" y="-55.5" font-family="Arial" font-size="10.00" style="">+ getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="970.16" y="-43.5" font-family="Arial" font-size="10.00" style="">+ calculatePrice(): float</text>
|
||||
<text text-anchor="start" x="970.16" y="-31.5" font-family="Arial" font-size="10.00" style="">+ checkValid(): boolean</text>
|
||||
</g>
|
||||
<!-- Reservation -->
|
||||
<g id="node10" class="node" pointer-events="visible" data-name="Reservation">
|
||||
|
||||
<polygon fill="none" stroke="black" points="1091.52,-227.1 1091.52,-535.1 1348.48,-535.1 1348.48,-227.1 1091.52,-227.1" style=""/>
|
||||
<text text-anchor="middle" x="1220" y="-522.1" font-family="Arial" font-size="10.00" style="">Reservation</text>
|
||||
<polyline fill="none" stroke="black" points="1091.52,-515.1 1348.48,-515.1" style=""/>
|
||||
<text text-anchor="middle" x="1220" y="-502.1" font-family="Arial" font-size="10.00" style=""><<abstract>></text>
|
||||
<polyline fill="none" stroke="black" points="1091.52,-495.1 1348.48,-495.1" style=""/>
|
||||
<text text-anchor="start" x="1099.52" y="-482.1" font-family="Arial" font-size="10.00" style=""># type: char</text>
|
||||
<text text-anchor="start" x="1099.52" y="-470.1" font-family="Arial" font-size="10.00" style=""># reservation_number: String</text>
|
||||
<text text-anchor="start" x="1099.52" y="-458.1" font-family="Arial" font-size="10.00" style=""># physical_address: Address</text>
|
||||
<text text-anchor="start" x="1099.52" y="-446.1" font-family="Arial" font-size="10.00" style=""># mailing_address: Address</text>
|
||||
<text text-anchor="start" x="1099.52" y="-434.1" font-family="Arial" font-size="10.00" style=""># reservation_start_date: ZonedDateTime</text>
|
||||
<text text-anchor="start" x="1099.52" y="-422.1" font-family="Arial" font-size="10.00" style=""># reservation_end_date: ZonedDateTime</text>
|
||||
<text text-anchor="start" x="1099.52" y="-410.1" font-family="Arial" font-size="10.00" style=""># reservation_status: ReservationStatusEnum</text>
|
||||
<text text-anchor="start" x="1099.52" y="-398.1" font-family="Arial" font-size="10.00" style=""># kitchen: KitchenTypeEnum</text>
|
||||
<text text-anchor="start" x="1099.52" y="-386.1" font-family="Arial" font-size="10.00" style=""># numberOfBeds: Integer</text>
|
||||
<text text-anchor="start" x="1099.52" y="-374.1" font-family="Arial" font-size="10.00" style=""># numberOfBedRooms: Integer</text>
|
||||
<text text-anchor="start" x="1099.52" y="-362.1" font-family="Arial" font-size="10.00" style=""># numberOfBathRooms: Integer</text>
|
||||
<text text-anchor="start" x="1099.52" y="-350.1" font-family="Arial" font-size="10.00" style=""># numberOfFloors: Integer</text>
|
||||
<text text-anchor="start" x="1099.52" y="-338.1" font-family="Arial" font-size="10.00" style=""># squareFeet: Integer</text>
|
||||
<text text-anchor="start" x="1099.52" y="-326.1" font-family="Arial" font-size="10.00" style=""># price: Float</text>
|
||||
<text text-anchor="start" x="1099.52" y="-314.1" font-family="Arial" font-size="10.00" style=""># accountNumber: String</text>
|
||||
<polyline fill="none" stroke="black" points="1091.52,-307.1 1348.48,-307.1" style=""/>
|
||||
<text text-anchor="start" x="1099.52" y="-294.1" font-family="Arial" font-size="10.00" style=""># Reservation()</text>
|
||||
<text text-anchor="start" x="1099.52" y="-282.1" font-family="Arial" font-size="10.00" style="">+ getters/setters</text>
|
||||
<text text-anchor="start" x="1099.52" y="-270.1" font-family="Arial" font-size="10.00" style="">+ Write(Reservation): void</text>
|
||||
<text text-anchor="start" x="1099.52" y="-258.1" font-family="Arial" font-size="10.00" style="">+ Change(Reservation, ReservationStatusEnum): void</text>
|
||||
<text text-anchor="start" x="1099.52" y="-246.1" font-family="Arial" font-size="10.00" style="">+ update(Reservation): void</text>
|
||||
<text text-anchor="start" x="1099.52" y="-234.1" font-family="Arial" font-size="10.00" style="">+ abstract ReservationType(): String</text>
|
||||
</g>
|
||||
<!-- Reservation->Address -->
|
||||
<g id="edge10" class="edge" data-name="Reservation->Address">
|
||||
|
||||
<path fill="none" stroke="black" d="M1091.62,-231.47C1088.45,-229.74 1085.25,-228.11 1082,-226.6 1026.82,-200.91 594.52,-218.52 534.46,-208.6 478.18,-199.3 460.58,-195.81 406.08,-169.79" style=""/>
|
||||
<polygon fill="black" stroke="black" points="406.27,-169.88 399.13,-170.88 395.46,-164.67 402.6,-163.67 406.27,-169.88" style=""/>
|
||||
<text text-anchor="middle" x="568.77" y="-200.5" font-family="Arial" font-size="9.00" style="">physical_address</text>
|
||||
<text text-anchor="middle" x="568.77" y="-189.7" font-family="Arial" font-size="9.00" style="">mailing_address</text>
|
||||
</g>
|
||||
<!-- Reservation->KitchenTypeEnum -->
|
||||
<g id="edge11" class="edge" data-name="Reservation->KitchenTypeEnum">
|
||||
|
||||
<path fill="none" stroke="black" d="M1091.59,-231.53C1088.44,-229.78 1085.24,-228.13 1082,-226.6 1041.73,-207.56 725.42,-215.93 681.48,-208.6 647.91,-203 641.03,-195.22 608,-187 569.26,-177.36 554.13,-189.71 520,-169 510.67,-163.34 502.19,-155.61 494.77,-147.31" style=""/>
|
||||
<polygon fill="black" stroke="black" points="494.83,-147.38 487.91,-145.34 487.14,-138.17 494.06,-140.21 494.83,-147.38" style=""/>
|
||||
<text text-anchor="middle" x="695.26" y="-195.1" font-family="Arial" font-size="9.00" style="">kitchen</text>
|
||||
</g>
|
||||
<!-- Reservation->ReservationStatusEnum -->
|
||||
<g id="edge12" class="edge" data-name="Reservation->ReservationStatusEnum">
|
||||
|
||||
<path fill="none" stroke="black" d="M1091.54,-231.63C1088.4,-229.85 1085.22,-228.17 1082,-226.6 1028.01,-200.35 871.71,-218.28 812.46,-208.6 778.34,-203.02 691.95,-186.27 662,-169 651.55,-162.97 641.58,-155 632.58,-146.58" style=""/>
|
||||
<polygon fill="black" stroke="black" points="632.83,-146.82 625.75,-145.47 624.28,-138.41 631.36,-139.76 632.83,-146.82" style=""/>
|
||||
<text text-anchor="middle" x="848.77" y="-195.1" font-family="Arial" font-size="9.00" style="">reservation_status</text>
|
||||
</g>
|
||||
<!-- Reservation->IllegalOperationException -->
|
||||
<g id="edge24" class="edge" data-name="Reservation->IllegalOperationException">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1091.73,-232.43C1088.53,-230.39 1085.28,-228.44 1082,-226.6 1043.95,-205.24 1027.96,-218.61 985.49,-208.6 923.18,-193.91 903.93,-198.27 847,-169 831.13,-160.84 815.36,-149.65 801.56,-138.55" style=""/>
|
||||
<polygon fill="black" stroke="black" points="794.11,-132.41 804.69,-135.3 797.97,-135.59 801.83,-138.77 801.83,-138.77 801.83,-138.77 797.97,-135.59 798.97,-142.25 794.11,-132.41 794.11,-132.41" style=""/>
|
||||
<text text-anchor="middle" x="998.25" y="-195.1" font-family="Arial" font-size="9.00" style="">throws</text>
|
||||
</g>
|
||||
<!-- Reservation->IReservation -->
|
||||
<g id="edge1" class="edge" data-name="Reservation->IReservation">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1126.41,-227.22C1115.99,-210.2 1105.72,-193.41 1096.18,-177.84" style=""/>
|
||||
<polygon fill="none" stroke="black" points="1099.35,-176.31 1091.14,-169.61 1093.38,-179.96 1099.35,-176.31" style=""/>
|
||||
<text text-anchor="middle" x="1135.01" y="-195.1" font-family="Arial" font-size="9.00" style="">implements</text>
|
||||
</g>
|
||||
<!-- AccountReservationList->DuplicateObjectException -->
|
||||
<g id="edge23" class="edge" data-name="AccountReservationList->DuplicateObjectException">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M943.02,-327.25C924.67,-292.08 895.33,-248.46 855,-226.6 818.86,-207.01 526.42,-212.4 485.49,-208.6 356.62,-196.64 316.66,-218.3 197,-169 179.12,-161.63 161.61,-150.09 146.59,-138.4" style=""/>
|
||||
<polygon fill="black" stroke="black" points="138.97,-132.3 149.59,-135.04 142.87,-135.43 146.77,-138.55 146.77,-138.55 146.77,-138.55 142.87,-135.43 143.96,-142.06 138.97,-132.3 138.97,-132.3" style=""/>
|
||||
<text text-anchor="middle" x="498.25" y="-195.1" font-family="Arial" font-size="9.00" style="">throws</text>
|
||||
</g>
|
||||
<!-- AccountReservationList->IReservation -->
|
||||
<g id="edge9" class="edge" data-name="AccountReservationList->IReservation">
|
||||
|
||||
<path fill="none" stroke="black" d="M981.14,-327.28C993.01,-285.88 1009.73,-227.53 1023.36,-179.99" style=""/>
|
||||
<polygon fill="none" stroke="black" points="1023.35,-180 1021.16,-173.13 1026.66,-168.46 1028.85,-175.33 1023.35,-180" style=""/>
|
||||
<text text-anchor="middle" x="1044.77" y="-195.1" font-family="Arial" font-size="9.00" style="">contains 0..*</text>
|
||||
</g>
|
||||
<!-- CabinReservation -->
|
||||
<g id="node12" class="node" pointer-events="visible" data-name="CabinReservation">
|
||||
|
||||
<polygon fill="none" stroke="black" points="1380.27,-657.7 1380.27,-757.7 1527.73,-757.7 1527.73,-657.7 1380.27,-657.7" style=""/>
|
||||
<text text-anchor="middle" x="1454" y="-744.7" font-family="Arial" font-size="10.00" style="">CabinReservation</text>
|
||||
<polyline fill="none" stroke="black" points="1380.27,-737.7 1527.73,-737.7" style=""/>
|
||||
<text text-anchor="start" x="1388.27" y="-724.7" font-family="Arial" font-size="10.00" style="">+ CabinReservation()</text>
|
||||
<text text-anchor="start" x="1388.27" y="-712.7" font-family="Arial" font-size="10.00" style="">+ CabinReservation(Address)</text>
|
||||
<text text-anchor="start" x="1388.27" y="-700.7" font-family="Arial" font-size="10.00" style="">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="1388.27" y="-688.7" font-family="Arial" font-size="10.00" style="">+ checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="1388.27" y="-676.7" font-family="Arial" font-size="10.00" style="">+ getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="1388.27" y="-664.7" font-family="Arial" font-size="10.00" style="">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- CabinReservation->Reservation -->
|
||||
<g id="edge2" class="edge" data-name="CabinReservation->Reservation">
|
||||
|
||||
<path fill="none" stroke="black" d="M1418.71,-657.75C1396.59,-627.06 1366.68,-585.57 1336.79,-544.11" style=""/>
|
||||
<polygon fill="none" stroke="black" points="1339.78,-542.28 1331.1,-536.21 1334.1,-546.37 1339.78,-542.28" style=""/>
|
||||
<text text-anchor="middle" x="1379.76" y="-579.1" font-family="Arial" font-size="9.00" style="">extends</text>
|
||||
</g>
|
||||
<!-- HotelReservation -->
|
||||
<g id="node13" class="node" pointer-events="visible" data-name="HotelReservation">
|
||||
|
||||
<polygon fill="none" stroke="black" points="1728.22,-651.7 1728.22,-763.7 1891.78,-763.7 1891.78,-651.7 1728.22,-651.7" style=""/>
|
||||
<text text-anchor="middle" x="1810" y="-750.7" font-family="Arial" font-size="10.00" style="">HotelReservation</text>
|
||||
<polyline fill="none" stroke="black" points="1728.22,-743.7 1891.78,-743.7" style=""/>
|
||||
<text text-anchor="start" x="1736.22" y="-730.7" font-family="Arial" font-size="10.00" style="">+ HotelReservation()</text>
|
||||
<text text-anchor="start" x="1736.22" y="-718.7" font-family="Arial" font-size="10.00" style="">+ HotelReservation(Address)</text>
|
||||
<text text-anchor="start" x="1736.22" y="-706.7" font-family="Arial" font-size="10.00" style="">+ static copy(String): Reservation</text>
|
||||
<text text-anchor="start" x="1736.22" y="-694.7" font-family="Arial" font-size="10.00" style="">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="1736.22" y="-682.7" font-family="Arial" font-size="10.00" style="">+ checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="1736.22" y="-670.7" font-family="Arial" font-size="10.00" style="">+ getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="1736.22" y="-658.7" font-family="Arial" font-size="10.00" style="">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- HotelReservation->Reservation -->
|
||||
<g id="edge3" class="edge" data-name="HotelReservation->Reservation">
|
||||
|
||||
<path fill="none" stroke="black" d="M1772.75,-651.89C1757.74,-632.75 1739.19,-612.3 1719,-597.2 1609.72,-515.46 1464.61,-457.42 1359.06,-422.39" style=""/>
|
||||
<polygon fill="none" stroke="black" points="1360.35,-419.13 1349.76,-419.33 1358.17,-425.78 1360.35,-419.13" style=""/>
|
||||
<text text-anchor="middle" x="1710.76" y="-579.1" font-family="Arial" font-size="9.00" style="">extends</text>
|
||||
</g>
|
||||
<!-- HouseReservation -->
|
||||
<g id="node14" class="node" pointer-events="visible" data-name="HouseReservation">
|
||||
|
||||
<polygon fill="none" stroke="black" points="1546.22,-651.7 1546.22,-763.7 1709.78,-763.7 1709.78,-651.7 1546.22,-651.7" style=""/>
|
||||
<text text-anchor="middle" x="1628" y="-750.7" font-family="Arial" font-size="10.00" style="">HouseReservation</text>
|
||||
<polyline fill="none" stroke="black" points="1546.22,-743.7 1709.78,-743.7" style=""/>
|
||||
<text text-anchor="start" x="1554.22" y="-730.7" font-family="Arial" font-size="10.00" style="">+ HouseReservation()</text>
|
||||
<text text-anchor="start" x="1554.22" y="-718.7" font-family="Arial" font-size="10.00" style="">+ HouseReservation(Address)</text>
|
||||
<text text-anchor="start" x="1554.22" y="-706.7" font-family="Arial" font-size="10.00" style="">+ static copy(String): Reservation</text>
|
||||
<text text-anchor="start" x="1554.22" y="-694.7" font-family="Arial" font-size="10.00" style="">+ ReservationType(): String</text>
|
||||
<text text-anchor="start" x="1554.22" y="-682.7" font-family="Arial" font-size="10.00" style="">+ checkValid(): boolean</text>
|
||||
<text text-anchor="start" x="1554.22" y="-670.7" font-family="Arial" font-size="10.00" style="">+ getPricePerNight(): float</text>
|
||||
<text text-anchor="start" x="1554.22" y="-658.7" font-family="Arial" font-size="10.00" style="">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- HouseReservation->Reservation -->
|
||||
<g id="edge4" class="edge" data-name="HouseReservation->Reservation">
|
||||
|
||||
<path fill="none" stroke="black" d="M1587.53,-651.93C1572.66,-633.54 1555.03,-613.56 1537,-597.2 1482.52,-547.78 1415.95,-500.91 1357.91,-463.62" style=""/>
|
||||
<polygon fill="none" stroke="black" points="1359.88,-460.73 1349.57,-458.3 1356.12,-466.63 1359.88,-460.73" style=""/>
|
||||
<text text-anchor="middle" x="1536.76" y="-579.1" font-family="Arial" font-size="9.00" style="">extends</text>
|
||||
</g>
|
||||
<!-- AccomodationManager -->
|
||||
<g id="node15" class="node" pointer-events="visible" data-name="AccomodationManager">
|
||||
|
||||
<polygon fill="none" stroke="black" points="1380.41,-1096.9 1380.41,-1300.9 1629.59,-1300.9 1629.59,-1096.9 1380.41,-1096.9" style=""/>
|
||||
<text text-anchor="middle" x="1505" y="-1287.9" font-family="Arial" font-size="10.00" style="">AccomodationManager</text>
|
||||
<polyline fill="none" stroke="black" points="1380.41,-1280.9 1629.59,-1280.9" style=""/>
|
||||
<text text-anchor="start" x="1388.41" y="-1267.9" font-family="Arial" font-size="10.00" style="">- accounts: AccountList</text>
|
||||
<polyline fill="none" stroke="black" points="1380.41,-1260.9 1629.59,-1260.9" style=""/>
|
||||
<text text-anchor="start" x="1388.41" y="-1247.9" font-family="Arial" font-size="10.00" style="">+ AccomodationManager(String)</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1235.9" font-family="Arial" font-size="10.00" style="">+ setDataStoreRoot(String): void</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1223.9" font-family="Arial" font-size="10.00" style="">+ loadAll(): void</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1211.9" font-family="Arial" font-size="10.00" style="">+ load(Path): void</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1199.9" font-family="Arial" font-size="10.00" style="">+ retrieveLoadedAccounts(): List<Account></text>
|
||||
<text text-anchor="start" x="1388.41" y="-1187.9" font-family="Arial" font-size="10.00" style="">+ retrieveAccount(String): Account</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1175.9" font-family="Arial" font-size="10.00" style="">+ AddAccount(Account): void</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1163.9" font-family="Arial" font-size="10.00" style="">+ UpdateAccount(Account): void</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1151.9" font-family="Arial" font-size="10.00" style="">+ newAccount(...): Account</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1139.9" font-family="Arial" font-size="10.00" style="">+ addReservation(Account, Reservation): boolean</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1127.9" font-family="Arial" font-size="10.00" style="">+ findReservation(String): Reservation</text>
|
||||
<text text-anchor="start" x="1388.41" y="-1115.9" font-family="Arial" font-size="10.00" style="">+ getReservationList(): List<? extends IReservation></text>
|
||||
<text text-anchor="start" x="1388.41" y="-1103.9" font-family="Arial" font-size="10.00" style="">+ showReservationList(): void</text>
|
||||
</g>
|
||||
<!-- AccomodationManager->AccountList -->
|
||||
<g id="edge13" class="edge" data-name="AccomodationManager->AccountList">
|
||||
|
||||
<path fill="none" stroke="black" d="M1380.61,-1136.31C1297.12,-1094.98 1187.37,-1040.64 1102.78,-998.76" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1102.83,-998.78 1095.67,-999.7 1092.07,-993.45 1099.22,-992.53 1102.83,-998.78" style=""/>
|
||||
<text text-anchor="middle" x="1272.01" y="-1070.3" font-family="Arial" font-size="9.00" style="">accounts</text>
|
||||
</g>
|
||||
<!-- DataRepository -->
|
||||
<g id="node16" class="node" pointer-events="visible" data-name="DataRepository">
|
||||
|
||||
<polygon fill="none" stroke="black" points="1407.1,-857.5 1407.1,-1009.5 1602.9,-1009.5 1602.9,-857.5 1407.1,-857.5" style=""/>
|
||||
<text text-anchor="middle" x="1505" y="-996.5" font-family="Arial" font-size="10.00" style="">DataRepository</text>
|
||||
<polyline fill="none" stroke="black" points="1407.1,-989.5 1602.9,-989.5" style=""/>
|
||||
<text text-anchor="middle" x="1505" y="-976.5" font-family="Arial" font-size="10.00" style=""><<singleton>></text>
|
||||
<polyline fill="none" stroke="black" points="1407.1,-969.5 1602.9,-969.5" style=""/>
|
||||
<text text-anchor="start" x="1415.1" y="-956.5" font-family="Arial" font-size="10.00" style="">- directoryPath: String</text>
|
||||
<text text-anchor="start" x="1415.1" y="-944.5" font-family="Arial" font-size="10.00" style="">- static instance: DataRepository</text>
|
||||
<polyline fill="none" stroke="black" points="1407.1,-937.5 1602.9,-937.5" style=""/>
|
||||
<text text-anchor="start" x="1415.1" y="-924.5" font-family="Arial" font-size="10.00" style="">+ static getInstance(): DataRepository</text>
|
||||
<text text-anchor="start" x="1415.1" y="-912.5" font-family="Arial" font-size="10.00" style="">+ static setDataStoreRoot(String): void</text>
|
||||
<text text-anchor="start" x="1415.1" y="-900.5" font-family="Arial" font-size="10.00" style="">+ static getPath(): String</text>
|
||||
<text text-anchor="start" x="1415.1" y="-888.5" font-family="Arial" font-size="10.00" style="">+ static Reservation(String): Reservation</text>
|
||||
<text text-anchor="start" x="1415.1" y="-876.5" font-family="Arial" font-size="10.00" style="">+ static WalkFileSystemTree(...): void</text>
|
||||
<text text-anchor="start" x="1415.1" y="-864.5" font-family="Arial" font-size="10.00" style="">+ static LoadAccount(Path): Account</text>
|
||||
</g>
|
||||
<!-- AccomodationManager->DataRepository -->
|
||||
<g id="edge14" class="edge" data-name="AccomodationManager->DataRepository">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1505,-1097.19C1505,-1071.42 1505,-1043.97 1505,-1019.1" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1505,-1009.35 1509.5,-1019.35 1505,-1014.35 1505,-1019.35 1505,-1019.35 1505,-1019.35 1505,-1014.35 1500.5,-1019.35 1505,-1009.35 1505,-1009.35" style=""/>
|
||||
<text text-anchor="middle" x="1514.51" y="-1070.3" font-family="Arial" font-size="9.00" style="">uses</text>
|
||||
</g>
|
||||
<!-- DataRepository->Account -->
|
||||
<g id="edge15" class="edge" data-name="DataRepository->Account">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1407.39,-891.97C1319.22,-855.36 1188.93,-801.26 1092.75,-761.33" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1083.55,-757.51 1094.51,-757.19 1088.16,-759.42 1092.78,-761.34 1092.78,-761.34 1092.78,-761.34 1088.16,-759.42 1091.06,-765.5 1083.55,-757.51 1083.55,-757.51" style=""/>
|
||||
<text text-anchor="middle" x="1281.76" y="-830.9" font-family="Arial" font-size="9.00" style="">creates</text>
|
||||
</g>
|
||||
<!-- DataRepository->CabinReservation -->
|
||||
<g id="edge16" class="edge" data-name="DataRepository->CabinReservation">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1474.78,-857.74C1472.8,-851.46 1471,-845.16 1469.49,-839 1463.81,-815.87 1460.19,-789.91 1457.89,-767.28" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1456.95,-757.47 1462.38,-767 1457.43,-762.45 1457.9,-767.43 1457.9,-767.43 1457.9,-767.43 1457.43,-762.45 1453.42,-767.85 1456.95,-757.47 1456.95,-757.47" style=""/>
|
||||
<text text-anchor="middle" x="1483.76" y="-830.9" font-family="Arial" font-size="9.00" style="">creates</text>
|
||||
</g>
|
||||
<!-- DataRepository->HotelReservation -->
|
||||
<g id="edge17" class="edge" data-name="DataRepository->HotelReservation">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1602.7,-885.25C1640.76,-864.7 1683.63,-838.77 1719,-810.2 1733.42,-798.55 1747.54,-784.52 1760.19,-770.67" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1766.66,-763.45 1763.34,-773.9 1763.32,-767.17 1759.99,-770.89 1759.99,-770.89 1759.99,-770.89 1763.32,-767.17 1756.64,-767.89 1766.66,-763.45 1766.66,-763.45" style=""/>
|
||||
<text text-anchor="middle" x="1706.76" y="-830.9" font-family="Arial" font-size="9.00" style="">creates</text>
|
||||
</g>
|
||||
<!-- DataRepository->HouseReservation -->
|
||||
<g id="edge18" class="edge" data-name="DataRepository->HouseReservation">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1534.17,-857.61C1538.67,-847.58 1543.49,-837.54 1548.49,-828.2 1558.63,-809.24 1570.96,-789.48 1582.87,-771.62" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1588.29,-763.56 1586.44,-774.37 1585.5,-767.71 1582.71,-771.86 1582.71,-771.86 1582.71,-771.86 1585.5,-767.71 1578.98,-769.34 1588.29,-763.56 1588.29,-763.56" style=""/>
|
||||
<text text-anchor="middle" x="1562.76" y="-830.9" font-family="Arial" font-size="9.00" style="">creates</text>
|
||||
</g>
|
||||
<!-- TestReservations -->
|
||||
<g id="node17" class="node" pointer-events="visible" data-name="TestReservations">
|
||||
|
||||
<polygon fill="none" stroke="black" points="1601.55,-1371.5 1601.55,-1423.5 1768.45,-1423.5 1768.45,-1371.5 1601.55,-1371.5" style=""/>
|
||||
<text text-anchor="middle" x="1685" y="-1410.5" font-family="Arial" font-size="10.00" style="">TestReservations</text>
|
||||
<polyline fill="none" stroke="black" points="1601.55,-1403.5 1768.45,-1403.5" style=""/>
|
||||
<text text-anchor="start" x="1609.55" y="-1390.5" font-family="Arial" font-size="10.00" style="">+ static main(String[]): void</text>
|
||||
<text text-anchor="start" x="1609.55" y="-1378.5" font-family="Arial" font-size="10.00" style="">+ static class getRepositoryConfig</text>
|
||||
</g>
|
||||
<!-- TestReservations->CabinReservation -->
|
||||
<g id="edge20" class="edge" data-name="TestReservations->CabinReservation">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1683.41,-1371.59C1676.43,-1262.66 1648.65,-833.31 1644,-828.2 1611.55,-792.53 1578.7,-834.41 1537,-810.2 1518.14,-799.25 1501.76,-782.27 1488.66,-765.32" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1482.88,-757.55 1492.46,-762.88 1485.86,-761.56 1488.85,-765.57 1488.85,-765.57 1488.85,-765.57 1485.86,-761.56 1485.24,-768.26 1482.88,-757.55 1482.88,-757.55" style=""/>
|
||||
<text text-anchor="middle" x="1677.76" y="-1070.3" font-family="Arial" font-size="9.00" style="">creates</text>
|
||||
</g>
|
||||
<!-- TestReservations->HotelReservation -->
|
||||
<g id="edge21" class="edge" data-name="TestReservations->HotelReservation">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1696.37,-1371.52C1701.01,-1360.33 1705.98,-1346.83 1709,-1334.2 1757.31,-1132 1789.33,-887.44 1802.79,-773.27" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1803.92,-763.62 1807.23,-774.08 1803.34,-768.59 1802.76,-773.56 1802.76,-773.56 1802.76,-773.56 1803.34,-768.59 1798.29,-773.03 1803.92,-763.62 1803.92,-763.62" style=""/>
|
||||
<text text-anchor="middle" x="1774.76" y="-1070.3" font-family="Arial" font-size="9.00" style="">creates</text>
|
||||
</g>
|
||||
<!-- TestReservations->HouseReservation -->
|
||||
<g id="edge22" class="edge" data-name="TestReservations->HouseReservation">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1687.71,-1371.74C1695.75,-1291.87 1716.3,-1034.19 1672,-828.2 1668.04,-809.79 1661.85,-790.41 1655.34,-772.74" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1651.93,-763.66 1659.66,-771.44 1653.69,-768.34 1655.45,-773.02 1655.45,-773.02 1655.45,-773.02 1653.69,-768.34 1651.24,-774.61 1651.93,-763.66 1651.93,-763.66" style=""/>
|
||||
<text text-anchor="middle" x="1712.76" y="-1070.3" font-family="Arial" font-size="9.00" style="">creates</text>
|
||||
</g>
|
||||
<!-- TestReservations->AccomodationManager -->
|
||||
<g id="edge19" class="edge" data-name="TestReservations->AccomodationManager">
|
||||
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1647.22,-1371.58C1639.54,-1365.85 1631.75,-1359.52 1624.99,-1353 1610.78,-1339.31 1596.8,-1323.89 1583.69,-1308.25" style=""/>
|
||||
<polygon fill="black" stroke="black" points="1577.33,-1300.56 1587.17,-1305.39 1580.52,-1304.41 1583.7,-1308.26 1583.7,-1308.26 1583.7,-1308.26 1580.52,-1304.41 1580.24,-1311.13 1577.33,-1300.56 1577.33,-1300.56" style=""/>
|
||||
<text text-anchor="middle" x="1633.51" y="-1344.9" font-family="Arial" font-size="9.00" style="">uses</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 41 KiB |
@@ -1,110 +0,0 @@
|
||||
digraph ClassDiagram {
|
||||
graph [
|
||||
rankdir="TB",
|
||||
splines=ortho,
|
||||
nodesep=1.0,
|
||||
ranksep=1.2
|
||||
];
|
||||
node [
|
||||
shape=record,
|
||||
style=filled,
|
||||
fillcolor=lightyellow,
|
||||
fontname="Helvetica,Arial,sans-serif"
|
||||
];
|
||||
edge [
|
||||
fontname="Helvetica,Arial,sans-serif"
|
||||
];
|
||||
|
||||
// --- Interfaces ---
|
||||
IReservation [
|
||||
label="{interface\nIReservation|+ ReservationType(): String\l+ checkValid(): boolean\l+ calculatePrice(): float\l+ getReservation_number(): String\l+ getPhysical_address(): Address\l+ getAccountNumber(): String\l}",
|
||||
fillcolor=palegreen
|
||||
];
|
||||
|
||||
// --- Abstract Classes ---
|
||||
Reservation [
|
||||
label="{abstract\nReservation|+ {abstract} ReservationType(): String\l+ Write(Reservation): void\l+ Change(Reservation, ReservationStatusEnum): void\l+ update(Reservation): void\l+ calculatePrice(): float\l+ setMailing_address(Address): void\l+ setNumberOfBeds(int): void\l+ setNumberOfFloors(int): void\l+ setNumberOfBedRooms(int): void\l+ setSquareFeet(int): void\l+ setReservation_start_date(ZonedDateTime): void\l+ setReservation_end_date(ZonedDateTime): void\l}",
|
||||
fontstyle=italic
|
||||
];
|
||||
|
||||
// --- Concrete Classes ---
|
||||
AccomodationManager [
|
||||
label="{AccomodationManager|+ AccomodationManager(String)\l+ loadAll(): void\l+ retrieveAccount(String): Account\l+ retrieveLoadedAccounts(): AccountList\l+ newAccount(String, Address, EmailAddress): Account\l+ AddAccount(Account): void\l+ UpdateAccount(Account): void\l+ addReservation(Account, Reservation): boolean\l+ showReservationList(): void\l}"
|
||||
];
|
||||
|
||||
DataRepository [
|
||||
label="{DataRepository (Singleton)|+ {static} getInstance(): DataRepository\l+ {static} setDataStoreRoot(String): void\l+ {static} WalkFileSystemTree(AccomodationManager, Path): void\l+ {static} LoadAccount(Path): Account\l}",
|
||||
fillcolor=orchid
|
||||
];
|
||||
|
||||
Account [
|
||||
label="{Account|+ add(Reservation): boolean\l+ findReservation(String): Reservation\l+ getAllReservations(): Iterator\l+ getAccount_number(): String\l+ {static} Write(Account): void\l}"
|
||||
];
|
||||
|
||||
AccountList [
|
||||
label="{AccountList|+ add(Account): boolean\l+ find(String): Account\l+ save(Account): void\l}"
|
||||
];
|
||||
|
||||
AccountReservationList [
|
||||
label="{AccountReservationList|+ add(IReservation): boolean\l+ find(String): Reservation\l}"
|
||||
];
|
||||
|
||||
HotelReservation [
|
||||
label="{HotelReservation|+ HotelReservation(Address)\l+ calculatePrice(): float\l}"
|
||||
];
|
||||
CabinReservation [
|
||||
label="{CabinReservation|+ CabinReservation(Address)\l+ calculatePrice(): float\l}"
|
||||
];
|
||||
HouseReservation [
|
||||
label="{HouseReservation|+ HouseReservation(Address)\l+ calculatePrice(): float\l}"
|
||||
];
|
||||
|
||||
TestReservations [
|
||||
label="{TestReservations|+ {static} main(String[]): void\l}"
|
||||
];
|
||||
|
||||
"TestReservations.getRepositoryConfig" [
|
||||
label="{static class\ngetRepositoryConfig|+ {static} getPath(): String\l}"
|
||||
];
|
||||
|
||||
// --- Data/Enum/Exception Classes ---
|
||||
Address [label="{Address|+ Address(String, String, String, String)\l}", fillcolor=lightblue];
|
||||
EmailAddress [label="{EmailAddress|+ EmailAddress(String)\l}", fillcolor=lightblue];
|
||||
ReservationStatusEnum [label="{enum\nReservationStatusEnum}", fillcolor=lightgray];
|
||||
DuplicateObjectException [label="{exception\nDuplicateObjectException}", fillcolor=lightpink];
|
||||
|
||||
// --- Relationships ---
|
||||
|
||||
// Inheritance / Implementation
|
||||
Reservation -> IReservation [arrowhead=empty, style=dashed, label="implements"];
|
||||
HotelReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||
CabinReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||
HouseReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||
|
||||
// Composition / Aggregation
|
||||
AccomodationManager -> AccountList [arrowhead=diamond, label="has a"];
|
||||
AccountList -> Account [arrowhead=diamond, label="0..*"];
|
||||
Account -> AccountReservationList [arrowhead=diamond, label="has a"];
|
||||
AccountReservationList -> IReservation [arrowhead=diamond, label="0..*"];
|
||||
Account -> Address [arrowhead=odiamond, label="mailing"];
|
||||
Account -> EmailAddress [arrowhead=odiamond];
|
||||
Reservation -> Address [arrowhead=odiamond, label="physical/mailing"];
|
||||
|
||||
// Dependencies
|
||||
TestReservations -> AccomodationManager [arrowhead=vee, style=dashed, label="uses"];
|
||||
TestReservations -> "TestReservations.getRepositoryConfig" [arrowhead=vee, style=dashed, label="uses"];
|
||||
TestReservations -> HotelReservation [arrowhead=vee, style=dashed, label="creates"];
|
||||
TestReservations -> CabinReservation [arrowhead=vee, style=dashed, label="creates"];
|
||||
TestReservations -> HouseReservation [arrowhead=vee, style=dashed, label="creates"];
|
||||
TestReservations -> Account [arrowhead=vee, style=dashed, label="uses"];
|
||||
TestReservations -> Address [arrowhead=vee, style=dashed, label="creates"];
|
||||
TestReservations -> EmailAddress [arrowhead=vee, style=dashed, label="creates"];
|
||||
TestReservations -> DuplicateObjectException [arrowhead=vee, style=dashed, label="catches"];
|
||||
|
||||
AccomodationManager -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
||||
AccomodationManager -> Account [arrowhead=vee, style=dashed, label="manages"];
|
||||
|
||||
Account -> DataRepository [arrowhead=vee, style=dashed, label="uses for Write()"];
|
||||
Reservation -> DataRepository [arrowhead=vee, style=dashed, label="uses for Write()"];
|
||||
Reservation -> ReservationStatusEnum [arrowhead=vee, style=dashed, label="uses"];
|
||||
}
|
||||
@@ -1,323 +0,0 @@
|
||||
<?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 14.0.0 (20250921.2048)
|
||||
-->
|
||||
<!-- Title: ClassDiagram Pages: 1 -->
|
||||
<svg width="2238pt" height="1056pt"
|
||||
viewBox="0.00 0.00 2238.00 1056.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 1052)">
|
||||
<title>ClassDiagram</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1052 2233.62,-1052 2233.62,4 -4,4"/>
|
||||
<!-- IReservation -->
|
||||
<g id="node1" class="node">
|
||||
<title>IReservation</title>
|
||||
<polygon fill="palegreen" stroke="black" points="90.75,-0.5 90.75,-142.5 315.25,-142.5 315.25,-0.5 90.75,-0.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="203" y="-125.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">interface</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="203" y="-109.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">IReservation</text>
|
||||
<polyline fill="none" stroke="black" points="90.75,-103 315.25,-103"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-85.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ ReservationType(): String</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-69.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ checkValid(): boolean</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-54.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ calculatePrice(): float</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-38.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getReservation_number(): String</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-22.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getPhysical_address(): Address</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-6.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getAccountNumber(): String</text>
|
||||
</g>
|
||||
<!-- Reservation -->
|
||||
<g id="node2" class="node">
|
||||
<title>Reservation</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="517,-575 517,-611 605,-611 605,-575 517,-575"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="561" y="-587.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Reservation</text>
|
||||
</g>
|
||||
<!-- Reservation->IReservation -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Reservation->IReservation</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M516.64,-587C428.97,-587 241.94,-587 241.94,-587 241.94,-587 241.94,-154.42 241.94,-154.42"/>
|
||||
<polygon fill="none" stroke="black" points="245.44,-154.42 241.94,-144.42 238.44,-154.42 245.44,-154.42"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="181.25" y="-354.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">implements</text>
|
||||
</g>
|
||||
<!-- DataRepository -->
|
||||
<g id="node4" class="node">
|
||||
<title>DataRepository</title>
|
||||
<polygon fill="orchid" stroke="black" points="947.5,-258.88 947.5,-294.88 1056.5,-294.88 1056.5,-258.88 947.5,-258.88"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1002" y="-271.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">DataRepository</text>
|
||||
</g>
|
||||
<!-- Reservation->DataRepository -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>Reservation->DataRepository</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M605.37,-587C707.62,-587 951.12,-587 951.12,-587 951.12,-587 951.12,-306.56 951.12,-306.56"/>
|
||||
<polygon fill="black" stroke="black" points="951.13,-296.56 955.63,-306.56 951.13,-300.35 951.13,-306.56 951.13,-306.56 951.13,-306.56 951.13,-300.35 946.63,-306.56 951.13,-296.56"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="847.12" y="-425.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses for Write()</text>
|
||||
</g>
|
||||
<!-- Address -->
|
||||
<g id="node13" class="node">
|
||||
<title>Address</title>
|
||||
<polygon fill="lightblue" stroke="black" points="436.38,-253.12 436.38,-300.62 685.62,-300.62 685.62,-253.12 436.38,-253.12"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="561" y="-283.32" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Address</text>
|
||||
<polyline fill="none" stroke="black" points="436.38,-276.88 685.62,-276.88"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="444.38" y="-259.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ Address(String, String, String, String)</text>
|
||||
</g>
|
||||
<!-- Reservation->Address -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Reservation->Address</title>
|
||||
<path fill="none" stroke="black" d="M575.67,-574.64C575.67,-574.64 575.67,-313.79 575.67,-313.79"/>
|
||||
<polygon fill="none" stroke="black" points="575.67,-313.64 571.67,-307.64 575.67,-301.64 579.67,-307.64 575.67,-313.64"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="609" y="-425.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">physical/mailing</text>
|
||||
</g>
|
||||
<!-- ReservationStatusEnum -->
|
||||
<g id="node15" class="node">
|
||||
<title>ReservationStatusEnum</title>
|
||||
<polygon fill="lightgray" stroke="black" points="254.88,-411.25 254.88,-450.75 417.12,-450.75 417.12,-411.25 254.88,-411.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="336" y="-433.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">enum</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="336" y="-417.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">ReservationStatusEnum</text>
|
||||
</g>
|
||||
<!-- Reservation->ReservationStatusEnum -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>Reservation->ReservationStatusEnum</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M546.33,-574.81C546.33,-530.4 546.33,-420 546.33,-420 546.33,-420 428.84,-420 428.84,-420"/>
|
||||
<polygon fill="black" stroke="black" points="418.84,-420 428.84,-415.5 422.62,-420 428.84,-420 428.84,-420 428.84,-420 422.62,-420 428.84,-424.5 418.84,-420"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="350.25" y="-496.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
||||
</g>
|
||||
<!-- AccomodationManager -->
|
||||
<g id="node3" class="node">
|
||||
<title>AccomodationManager</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1026.5,-735.25 1026.5,-908.75 1375.5,-908.75 1375.5,-735.25 1026.5,-735.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1201" y="-891.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">AccomodationManager</text>
|
||||
<polyline fill="none" stroke="black" points="1026.5,-885 1375.5,-885"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-867.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ AccomodationManager(String)</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-851.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ loadAll(): void</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-836.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ retrieveAccount(String): Account</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-820.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ retrieveLoadedAccounts(): AccountList</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-804.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ newAccount(String, Address, EmailAddress): Account</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-788.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ AddAccount(Account): void</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-773.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ UpdateAccount(Account): void</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-757.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ addReservation(Account, Reservation): boolean</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-741.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ showReservationList(): void</text>
|
||||
</g>
|
||||
<!-- AccomodationManager->DataRepository -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>AccomodationManager->DataRepository</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1036.5,-735.02C1036.5,-735.02 1036.5,-306.25 1036.5,-306.25"/>
|
||||
<polygon fill="black" stroke="black" points="1036.5,-296.25 1041,-306.25 1036.5,-300.03 1036.5,-306.25 1036.5,-306.25 1036.5,-306.25 1036.5,-300.03 1032,-306.25 1036.5,-296.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1016.25" y="-496.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
||||
</g>
|
||||
<!-- Account -->
|
||||
<g id="node5" class="node">
|
||||
<title>Account</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1360.62,-413 1360.62,-449 1425.38,-449 1425.38,-413 1360.62,-413"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1393" y="-425.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Account</text>
|
||||
</g>
|
||||
<!-- AccomodationManager->Account -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>AccomodationManager->Account</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1268.38,-734.82C1268.38,-622.63 1268.38,-442 1268.38,-442 1268.38,-442 1349.04,-442 1349.04,-442"/>
|
||||
<polygon fill="black" stroke="black" points="1359.04,-442 1349.04,-446.5 1355.26,-442 1349.04,-442 1349.04,-442 1349.04,-442 1355.26,-442 1349.04,-437.5 1359.04,-442"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1211.12" y="-587.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">manages</text>
|
||||
</g>
|
||||
<!-- AccountList -->
|
||||
<g id="node6" class="node">
|
||||
<title>AccountList</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1311.12,-553.5 1311.12,-632.5 1474.88,-632.5 1474.88,-553.5 1311.12,-553.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1393" y="-615.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">AccountList</text>
|
||||
<polyline fill="none" stroke="black" points="1311.12,-608.75 1474.88,-608.75"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="1319.12" y="-591.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ add(Account): boolean</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1319.12" y="-575.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ find(String): Account</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1319.12" y="-559.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ save(Account): void</text>
|
||||
</g>
|
||||
<!-- AccomodationManager->AccountList -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>AccomodationManager->AccountList</title>
|
||||
<path fill="none" stroke="black" d="M1343.31,-734.77C1343.31,-734.77 1343.31,-645.8 1343.31,-645.8"/>
|
||||
<polygon fill="black" stroke="black" points="1343.31,-645.65 1339.31,-639.65 1343.31,-633.65 1347.31,-639.65 1343.31,-645.65"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1380.5" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">has a</text>
|
||||
</g>
|
||||
<!-- Account->DataRepository -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>Account->DataRepository</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1360.4,-427C1274.15,-427 1046.5,-427 1046.5,-427 1046.5,-427 1046.5,-306.5 1046.5,-306.5"/>
|
||||
<polygon fill="black" stroke="black" points="1046.5,-296.5 1051,-306.5 1046.5,-300.28 1046.5,-306.5 1046.5,-306.5 1046.5,-306.5 1046.5,-300.28 1042,-306.5 1046.5,-296.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1283.12" y="-354.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses for Write()</text>
|
||||
</g>
|
||||
<!-- AccountReservationList -->
|
||||
<g id="node7" class="node">
|
||||
<title>AccountReservationList</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1225.62,-245.25 1225.62,-308.5 1416.38,-308.5 1416.38,-245.25 1225.62,-245.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1321" y="-291.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">AccountReservationList</text>
|
||||
<polyline fill="none" stroke="black" points="1225.62,-284.75 1416.38,-284.75"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="1233.62" y="-267.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ add(IReservation): boolean</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="1233.62" y="-251.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ find(String): Reservation</text>
|
||||
</g>
|
||||
<!-- Account->AccountReservationList -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Account->AccountReservationList</title>
|
||||
<path fill="none" stroke="black" d="M1388.5,-412.71C1388.5,-412.71 1388.5,-321.85 1388.5,-321.85"/>
|
||||
<polygon fill="black" stroke="black" points="1388.5,-321.7 1384.5,-315.7 1388.5,-309.7 1392.5,-315.7 1388.5,-321.7"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1422.5" y="-354.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">has a</text>
|
||||
</g>
|
||||
<!-- Account->Address -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Account->Address</title>
|
||||
<path fill="none" stroke="black" d="M1360.38,-435C1216.4,-435 644.94,-435 644.94,-435 644.94,-435 644.94,-313.94 644.94,-313.94"/>
|
||||
<polygon fill="none" stroke="black" points="644.94,-313.79 640.94,-307.79 644.94,-301.79 648.94,-307.79 644.94,-313.79"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1137.75" y="-354.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">mailing</text>
|
||||
</g>
|
||||
<!-- EmailAddress -->
|
||||
<g id="node14" class="node">
|
||||
<title>EmailAddress</title>
|
||||
<polygon fill="lightblue" stroke="black" points="1639.88,-253.12 1639.88,-300.62 1796.12,-300.62 1796.12,-253.12 1639.88,-253.12"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1718" y="-283.32" font-family="Helvetica,Arial,sans-serif" font-size="14.00">EmailAddress</text>
|
||||
<polyline fill="none" stroke="black" points="1639.88,-276.88 1796.12,-276.88"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="1647.88" y="-259.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ EmailAddress(String)</text>
|
||||
</g>
|
||||
<!-- Account->EmailAddress -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Account->EmailAddress</title>
|
||||
<path fill="none" stroke="black" d="M1420.88,-412.73C1420.88,-370.36 1420.88,-269 1420.88,-269 1420.88,-269 1626.49,-269 1626.49,-269"/>
|
||||
<polygon fill="none" stroke="black" points="1626.64,-269 1632.64,-265 1638.64,-269 1632.64,-273 1626.64,-269"/>
|
||||
</g>
|
||||
<!-- AccountList->Account -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>AccountList->Account</title>
|
||||
<path fill="none" stroke="black" d="M1393,-553.37C1393,-553.37 1393,-462.35 1393,-462.35"/>
|
||||
<polygon fill="black" stroke="black" points="1393,-462.2 1389,-456.2 1393,-450.2 1397,-456.2 1393,-462.2"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1403.12" y="-496.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">0..*</text>
|
||||
</g>
|
||||
<!-- AccountReservationList->IReservation -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>AccountReservationList->IReservation</title>
|
||||
<path fill="none" stroke="black" d="M1225.4,-249C968.94,-249 285.06,-249 285.06,-249 285.06,-249 285.06,-155.98 285.06,-155.98"/>
|
||||
<polygon fill="black" stroke="black" points="285.06,-155.83 281.06,-149.83 285.06,-143.83 289.06,-149.83 285.06,-155.83"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="800.12" y="-188.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">0..*</text>
|
||||
</g>
|
||||
<!-- HotelReservation -->
|
||||
<g id="node8" class="node">
|
||||
<title>HotelReservation</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="229,-790.38 229,-853.62 419,-853.62 419,-790.38 229,-790.38"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="324" y="-836.33" font-family="Helvetica,Arial,sans-serif" font-size="14.00">HotelReservation</text>
|
||||
<polyline fill="none" stroke="black" points="229,-829.88 419,-829.88"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="237" y="-812.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ HotelReservation(Address)</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="237" y="-796.83" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- HotelReservation->Reservation -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>HotelReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M336,-790.05C336,-728.39 336,-599 336,-599 336,-599 505.03,-599 505.03,-599"/>
|
||||
<polygon fill="none" stroke="black" points="505.03,-602.5 515.03,-599 505.03,-595.5 505.03,-602.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="404.62" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">extends</text>
|
||||
</g>
|
||||
<!-- CabinReservation -->
|
||||
<g id="node9" class="node">
|
||||
<title>CabinReservation</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="491.12,-790.38 491.12,-853.62 684.88,-853.62 684.88,-790.38 491.12,-790.38"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="588" y="-836.33" font-family="Helvetica,Arial,sans-serif" font-size="14.00">CabinReservation</text>
|
||||
<polyline fill="none" stroke="black" points="491.12,-829.88 684.88,-829.88"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="499.12" y="-812.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ CabinReservation(Address)</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="499.12" y="-796.83" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- CabinReservation->Reservation -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>CabinReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M561,-790.16C561,-790.16 561,-622.79 561,-622.79"/>
|
||||
<polygon fill="none" stroke="black" points="564.5,-622.79 561,-612.79 557.5,-622.79 564.5,-622.79"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="598.62" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">extends</text>
|
||||
</g>
|
||||
<!-- HouseReservation -->
|
||||
<g id="node10" class="node">
|
||||
<title>HouseReservation</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="757.25,-790.38 757.25,-853.62 954.75,-853.62 954.75,-790.38 757.25,-790.38"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="856" y="-836.33" font-family="Helvetica,Arial,sans-serif" font-size="14.00">HouseReservation</text>
|
||||
<polyline fill="none" stroke="black" points="757.25,-829.88 954.75,-829.88"/>
|
||||
<text xml:space="preserve" text-anchor="start" x="765.25" y="-812.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ HouseReservation(Address)</text>
|
||||
<text xml:space="preserve" text-anchor="start" x="765.25" y="-796.83" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ calculatePrice(): float</text>
|
||||
</g>
|
||||
<!-- HouseReservation->Reservation -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>HouseReservation->Reservation</title>
|
||||
<path fill="none" stroke="black" d="M852.38,-790.05C852.38,-728.39 852.38,-599 852.38,-599 852.38,-599 616.77,-599 616.77,-599"/>
|
||||
<polygon fill="none" stroke="black" points="616.77,-595.5 606.77,-599 616.77,-602.5 616.77,-595.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="807.62" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">extends</text>
|
||||
</g>
|
||||
<!-- TestReservations -->
|
||||
<g id="node11" class="node">
|
||||
<title>TestReservations</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1141.25,-1011.5 1141.25,-1047.5 1260.75,-1047.5 1260.75,-1011.5 1141.25,-1011.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1201" y="-1024.08" font-family="Helvetica,Arial,sans-serif" font-size="14.00">TestReservations</text>
|
||||
</g>
|
||||
<!-- TestReservations->AccomodationManager -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>TestReservations->AccomodationManager</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1201,-1011.09C1201,-1011.09 1201,-920.37 1201,-920.37"/>
|
||||
<polygon fill="black" stroke="black" points="1201,-910.37 1205.5,-920.37 1201,-914.15 1201,-920.37 1201,-920.37 1201,-920.37 1201,-914.15 1196.5,-920.37 1201,-910.37"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1215.25" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
||||
</g>
|
||||
<!-- TestReservations->Account -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>TestReservations->Account</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1261.11,-1018C1352.19,-1018 1514.67,-1018 1514.67,-1018 1514.67,-1018 1514.67,-431 1514.67,-431 1514.67,-431 1436.82,-431 1436.82,-431"/>
|
||||
<polygon fill="black" stroke="black" points="1426.82,-431 1436.82,-426.5 1430.6,-431 1436.82,-431 1436.82,-431 1436.82,-431 1430.6,-431 1436.82,-435.5 1426.82,-431"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1527.25" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
||||
</g>
|
||||
<!-- TestReservations->HotelReservation -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>TestReservations->HotelReservation</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1141.07,-1041C943.3,-1041 324,-1041 324,-1041 324,-1041 324,-865.06 324,-865.06"/>
|
||||
<polygon fill="black" stroke="black" points="324,-855.06 328.5,-865.06 324,-858.84 324,-865.06 324,-865.06 324,-865.06 324,-858.84 319.5,-865.06 324,-855.06"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="491.12" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
||||
</g>
|
||||
<!-- TestReservations->CabinReservation -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>TestReservations->CabinReservation</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1140.83,-1026C986.38,-1026 588,-1026 588,-1026 588,-1026 588,-865.09 588,-865.09"/>
|
||||
<polygon fill="black" stroke="black" points="588,-855.09 592.5,-865.09 588,-858.88 588,-865.09 588,-865.09 588,-865.09 588,-858.88 583.5,-865.09 588,-855.09"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="683.12" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
||||
</g>
|
||||
<!-- TestReservations->HouseReservation -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>TestReservations->HouseReservation</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1140.91,-1018C1042.06,-1018 856,-1018 856,-1018 856,-1018 856,-865.15 856,-865.15"/>
|
||||
<polygon fill="black" stroke="black" points="856,-855.15 860.5,-865.15 856,-858.93 856,-865.15 856,-865.15 856,-865.15 856,-858.93 851.5,-865.15 856,-855.15"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="990.12" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
||||
</g>
|
||||
<!-- TestReservations.getRepositoryConfig -->
|
||||
<g id="node12" class="node">
|
||||
<title>TestReservations.getRepositoryConfig</title>
|
||||
<polygon fill="lightyellow" stroke="black" points="1594.25,-804 1594.25,-840 1839.75,-840 1839.75,-804 1594.25,-804"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1717" y="-816.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">TestReservations.getRepositoryConfig</text>
|
||||
</g>
|
||||
<!-- TestReservations->TestReservations.getRepositoryConfig -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>TestReservations->TestReservations.getRepositoryConfig</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1261.2,-1033C1397.32,-1033 1717,-1033 1717,-1033 1717,-1033 1717,-851.57 1717,-851.57"/>
|
||||
<polygon fill="black" stroke="black" points="1717,-841.57 1721.5,-851.57 1717,-845.36 1717,-851.57 1717,-851.57 1717,-851.57 1717,-845.36 1712.5,-851.57 1717,-841.57"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1731.25" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
||||
</g>
|
||||
<!-- TestReservations->Address -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>TestReservations->Address</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1140.98,-1033C965.18,-1033 463.75,-1033 463.75,-1033 463.75,-1033 463.75,-311.97 463.75,-311.97"/>
|
||||
<polygon fill="black" stroke="black" points="463.75,-301.97 468.25,-311.97 463.75,-305.75 463.75,-311.97 463.75,-311.97 463.75,-311.97 463.75,-305.75 459.25,-311.97 463.75,-301.97"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="22.12" y="-587.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
||||
</g>
|
||||
<!-- TestReservations->EmailAddress -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>TestReservations->EmailAddress</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1260.96,-1026C1361.8,-1026 1554.46,-1026 1554.46,-1026 1554.46,-1026 1554.46,-285 1554.46,-285 1554.46,-285 1628.36,-285 1628.36,-285"/>
|
||||
<polygon fill="black" stroke="black" points="1638.36,-285 1628.36,-289.5 1634.58,-285 1628.36,-285 1628.36,-285 1628.36,-285 1634.58,-285 1628.36,-280.5 1638.36,-285"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="1971.12" y="-587.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
||||
</g>
|
||||
<!-- DuplicateObjectException -->
|
||||
<g id="node16" class="node">
|
||||
<title>DuplicateObjectException</title>
|
||||
<polygon fill="lightpink" stroke="black" points="2058.38,-802.25 2058.38,-841.75 2229.62,-841.75 2229.62,-802.25 2058.38,-802.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="2144" y="-824.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">exception</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="2144" y="-808.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">DuplicateObjectException</text>
|
||||
</g>
|
||||
<!-- TestReservations->DuplicateObjectException -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>TestReservations->DuplicateObjectException</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1261.06,-1041C1468.77,-1041 2144,-1041 2144,-1041 2144,-1041 2144,-853.43 2144,-853.43"/>
|
||||
<polygon fill="black" stroke="black" points="2144,-843.43 2148.5,-853.43 2144,-847.21 2144,-853.43 2144,-853.43 2144,-853.43 2144,-847.21 2139.5,-853.43 2144,-843.43"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="2167.25" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">catches</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 26 KiB |
129
uml/classdiagram3.dot
Executable file
129
uml/classdiagram3.dot
Executable file
@@ -0,0 +1,129 @@
|
||||
digraph G {
|
||||
fontname = "Bitstream Vera Sans"
|
||||
fontsize = 8
|
||||
|
||||
node [
|
||||
fontname = "Bitstream Vera Sans"
|
||||
fontsize = 8
|
||||
shape = "record"
|
||||
]
|
||||
|
||||
edge [
|
||||
fontname = "Bitstream Vera Sans"
|
||||
fontsize = 8
|
||||
]
|
||||
|
||||
rankdir = BT
|
||||
|
||||
// Interfaces
|
||||
IReservation [
|
||||
label = "{<<interface>>\nIReservation|+ ReservationType()\l+ checkValid()\l+ calculatePrice()\l+ getReservation_number()\l+ getAccountNumber()\l+ getPhysical_address()\l}"
|
||||
style=filled, fillcolor=lightblue
|
||||
];
|
||||
|
||||
// Abstract Classes
|
||||
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- ...\l- price: Float\l- accountNumber: String\l|+ getReservation_number()\l+ setReservation_number()\l+ ...\l+ Write()\l+ Change()\l+ update()\l# ReservationType()\l}"
|
||||
style=filled, fillcolor=lightgrey
|
||||
];
|
||||
|
||||
// Concrete Classes
|
||||
HotelReservation [
|
||||
label = "{HotelReservation|+ calculatePrice()\l+ checkValid()\l+ ReservationType()\l}"
|
||||
];
|
||||
HouseReservation [
|
||||
label = "{HouseReservation|+ calculatePrice()\l+ checkValid()\l+ ReservationType()\l}"
|
||||
];
|
||||
CabinReservation [
|
||||
label = "{CabinReservation|+ calculatePrice()\l+ checkValid()\l+ ReservationType()\l}"
|
||||
];
|
||||
|
||||
Account [
|
||||
label = "{Account|- account_number: String\l- phone_number: String\l- mailing_address: Address\l- email_address: EmailAddress\l- reservations: AccountReservationList\l|+ add(Reservation)\l+ Write(Account)\l+ findReservation(String)\l+ ...\l}"
|
||||
];
|
||||
|
||||
AccountList [
|
||||
label = "{AccountList|+ add(Account)\l+ save(Account)\l+ find(String)\l+ getListOfReservations()\l}"
|
||||
];
|
||||
|
||||
AccountReservationList [
|
||||
label = "{AccountReservationList|+ add(IReservation)\l+ find(String)\l+ update(...)\l}"
|
||||
];
|
||||
|
||||
AccomodationManager [
|
||||
label = "{AccomodationManager|- accounts: AccountList\l|+ loadAll()\l+ retrieveAccount(String)\l+ AddAccount(Account)\l+ addReservation(Account, Reservation)\l+ findReservation(String)\l}"
|
||||
];
|
||||
|
||||
DataRepository [
|
||||
label = "{<<static>>\nDataRepository|- instance: DataRepository\l- directoryPath: String\l|+ getInstance()\l+ setDataStoreRoot(String)\l+ getPath()\l+ Reservation(String)\l+ WalkFileSystemTree(...)\l+ LoadAccount(Path)\l}"
|
||||
];
|
||||
|
||||
TestReservations [
|
||||
label = "{TestReservations|+ main(String[])\l}"
|
||||
];
|
||||
|
||||
// Data/Value Objects
|
||||
Address [
|
||||
label = "{Address|- street: String\l- city: String\l- state: String\l- zip: String\l}"
|
||||
shape=box, style=filled, fillcolor=beige
|
||||
];
|
||||
EmailAddress [
|
||||
label = "{EmailAddress|- email: String\l}"
|
||||
shape=box, style=filled, fillcolor=beige
|
||||
];
|
||||
|
||||
// Enums
|
||||
KitchenTypeEnum [
|
||||
label = "{<<enum>>\nKitchenTypeEnum|None\l|Kitchenette\l|FullKitchen\l}"
|
||||
shape=box, style=filled, fillcolor=lightyellow
|
||||
];
|
||||
ReservationStatusEnum [
|
||||
label = "{<<enum>>\nReservationStatusEnum|Draft\l|Completed\l|Canceled\l}"
|
||||
shape=box, style=filled, fillcolor=lightyellow
|
||||
];
|
||||
|
||||
// Relationships
|
||||
|
||||
// Inheritance
|
||||
edge [arrowhead=empty, style=solid];
|
||||
HotelReservation -> Reservation;
|
||||
HouseReservation -> Reservation;
|
||||
CabinReservation -> Reservation;
|
||||
AccountList -> "java.util.ArrayList<Account>" [style=dashed, label="extends"];
|
||||
AccountReservationList -> "java.util.ArrayList<IReservation>" [style=dashed, label="extends"];
|
||||
|
||||
// Implementation
|
||||
edge [arrowhead=empty, style=dashed];
|
||||
Reservation -> IReservation;
|
||||
|
||||
// Composition
|
||||
edge [arrowhead=diamond, style=solid];
|
||||
AccomodationManager -> AccountList [label="1..1 accounts"];
|
||||
Account -> AccountReservationList [label="1..1 reservations"];
|
||||
Account -> Address [label="1..1 mailing_address"];
|
||||
Account -> EmailAddress [label="1..1 email_address"];
|
||||
|
||||
// Aggregation
|
||||
edge [arrowhead=odiamond, style=solid];
|
||||
AccountReservationList -> IReservation [label="0..*"];
|
||||
AccountList -> Account [label="0..*"];
|
||||
Reservation -> Address [label="0..2\n(physical, mailing)"];
|
||||
|
||||
// Dependency
|
||||
edge [arrowhead=vee, style=dashed];
|
||||
AccomodationManager -> DataRepository [label="uses"];
|
||||
AccomodationManager -> Account;
|
||||
TestReservations -> AccomodationManager [label="uses"];
|
||||
TestReservations -> HotelReservation [label="creates"];
|
||||
TestReservations -> HouseReservation [label="creates"];
|
||||
TestReservations -> CabinReservation [label="creates"];
|
||||
DataRepository -> AccomodationManager [label="uses"];
|
||||
DataRepository -> Account [label="creates"];
|
||||
DataRepository -> HotelReservation [label="creates"];
|
||||
DataRepository -> HouseReservation [label="creates"];
|
||||
DataRepository -> CabinReservation [label="creates"];
|
||||
Account -> DataRepository [label="uses"];
|
||||
Reservation -> DataRepository [label="uses"];
|
||||
Reservation -> KitchenTypeEnum [label="uses"];
|
||||
Reservation -> ReservationStatusEnum [label="uses"];
|
||||
}
|
||||
Reference in New Issue
Block a user