doc update

This commit is contained in:
2025-09-19 15:32:40 -04:00
parent 55c278dcba
commit b3a66024d0
3 changed files with 641 additions and 448 deletions

View File

@@ -1,451 +1,453 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.1 (20200629.0846)
<!-- Generated by graphviz version 2.42.4 (0)
-->
<!-- Title: LodgeReservationSystem Pages: 1 -->
<svg width="1415pt" height="1382pt"
viewBox="0.00 0.00 1414.74 1381.50" 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 1377.5)">
<svg width="2054pt" height="1733pt"
viewBox="0.00 0.00 2054.27 1733.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1729)">
<title>LodgeReservationSystem</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1377.5 1410.74,-1377.5 1410.74,4 -4,4"/>
<g id="clust3" class="cluster">
<title>cluster_reservationsystem</title>
<polygon fill="lightyellow" stroke="lightyellow" points="470,-1100.5 470,-1307.5 1232,-1307.5 1232,-1100.5 470,-1100.5"/>
<text text-anchor="middle" x="851" y="-1292.3" font-family="Times New Roman,serif" font-size="14.00">lodge.reservationsystem</text>
</g>
<g id="clust1" class="cluster">
<title>cluster_data</title>
<polygon fill="lightgrey" stroke="lightgrey" points="8,-8 8,-685.5 1011,-685.5 1011,-8 8,-8"/>
<text text-anchor="middle" x="509.5" y="-670.3" font-family="Times New Roman,serif" font-size="14.00">lodge.data</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_reservation</title>
<polygon fill="lightblue" stroke="lightblue" points="1019,-532 1019,-1073.5 1283,-1073.5 1283,-532 1019,-532"/>
<text text-anchor="middle" x="1151" y="-1058.3" font-family="Times New Roman,serif" font-size="14.00">lodge.reservation</text>
</g>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1729 2050.27,-1729 2050.27,4 -4,4"/>
<!-- Account -->
<g id="node1" class="node">
<title>Account</title>
<polygon fill="none" stroke="black" points="484,-349.5 484,-494.5 712,-494.5 712,-349.5 484,-349.5"/>
<text text-anchor="middle" x="598" y="-482.5" font-family="Arial" font-size="10.00">Account</text>
<polyline fill="none" stroke="black" points="484,-475.5 712,-475.5 "/>
<text text-anchor="start" x="492" y="-463.5" font-family="Arial" font-size="10.00">+ account_number: String</text>
<text text-anchor="start" x="492" y="-452.5" font-family="Arial" font-size="10.00">+ phone_number: String</text>
<text text-anchor="start" x="492" y="-441.5" font-family="Arial" font-size="10.00">+ mailing_address: Address</text>
<text text-anchor="start" x="492" y="-430.5" font-family="Arial" font-size="10.00">+ email_address: EmailAddress</text>
<text text-anchor="start" x="492" y="-419.5" font-family="Arial" font-size="10.00">+ reservations: AccountReservationList</text>
<polyline fill="none" stroke="black" points="484,-412.5 712,-412.5 "/>
<text text-anchor="start" x="492" y="-400.5" font-family="Arial" font-size="10.00">+ add(Reservation): boolean</text>
<text text-anchor="start" x="492" y="-389.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
<text text-anchor="start" x="492" y="-378.5" font-family="Arial" font-size="10.00">+ getAllReservations(): ListIterator&lt;IReservation&gt;</text>
<text text-anchor="start" x="492" y="-367.5" font-family="Arial" font-size="10.00">+ update(Account): void</text>
<text text-anchor="start" x="492" y="-356.5" font-family="Arial" font-size="10.00">+ Write(Account): void</text>
<polygon fill="lightyellow" stroke="black" points="720.77,-572.5 720.77,-971.5 1167.77,-971.5 1167.77,-572.5 720.77,-572.5"/>
<text text-anchor="middle" x="944.27" y="-956.3" font-family="Times,serif" font-size="14.00">Account</text>
<polyline fill="none" stroke="black" points="720.77,-948.5 1167.77,-948.5 "/>
<text text-anchor="start" x="728.77" y="-933.3" font-family="Times,serif" font-size="14.00">&#45; account_number: String</text>
<text text-anchor="start" x="728.77" y="-918.3" font-family="Times,serif" font-size="14.00"> &#45; phone_number: String</text>
<text text-anchor="start" x="728.77" y="-903.3" font-family="Times,serif" font-size="14.00"> &#45; mailing_address: Address</text>
<text text-anchor="start" x="728.77" y="-888.3" font-family="Times,serif" font-size="14.00"> &#45; email_address: EmailAddress</text>
<text text-anchor="start" x="728.77" y="-873.3" font-family="Times,serif" font-size="14.00"> &#45; reservations: AccountReservationList</text>
<polyline fill="none" stroke="black" points="720.77,-865.5 1167.77,-865.5 "/>
<text text-anchor="start" x="728.77" y="-850.3" font-family="Times,serif" font-size="14.00">+ Account()</text>
<text text-anchor="start" x="728.77" y="-835.3" font-family="Times,serif" font-size="14.00"> + Account(account_number, phone_number, mailing_address, email_address)</text>
<text text-anchor="start" x="728.77" y="-820.3" font-family="Times,serif" font-size="14.00"> + Account(phone_number, mailing_address, email_address)</text>
<text text-anchor="start" x="728.77" y="-805.3" font-family="Times,serif" font-size="14.00"> + toString(): String</text>
<text text-anchor="start" x="728.77" y="-790.3" font-family="Times,serif" font-size="14.00"> + add(rsrv: Reservation): boolean</text>
<text text-anchor="start" x="728.77" y="-775.3" font-family="Times,serif" font-size="14.00"> + Write(acct: Account): void</text>
<text text-anchor="start" x="728.77" y="-760.3" font-family="Times,serif" font-size="14.00"> + getAccount_number(): String</text>
<text text-anchor="start" x="728.77" y="-745.3" font-family="Times,serif" font-size="14.00"> + setAccount_number(account_number: String): void</text>
<text text-anchor="start" x="728.77" y="-730.3" font-family="Times,serif" font-size="14.00"> + getPhone_number(): String</text>
<text text-anchor="start" x="728.77" y="-715.3" font-family="Times,serif" font-size="14.00"> + setPhone_number(phone_number: String): void</text>
<text text-anchor="start" x="728.77" y="-700.3" font-family="Times,serif" font-size="14.00"> + getMailing_address(): Address</text>
<text text-anchor="start" x="728.77" y="-685.3" font-family="Times,serif" font-size="14.00"> + setMailing_address(mailing_address: Address): void</text>
<text text-anchor="start" x="728.77" y="-670.3" font-family="Times,serif" font-size="14.00"> + getEmail_address(): EmailAddress</text>
<text text-anchor="start" x="728.77" y="-655.3" font-family="Times,serif" font-size="14.00"> + setEmail_address(email_address: EmailAddress): void</text>
<text text-anchor="start" x="728.77" y="-640.3" font-family="Times,serif" font-size="14.00"> + hashCode(): int</text>
<text text-anchor="start" x="728.77" y="-625.3" font-family="Times,serif" font-size="14.00"> + findReservation(reservation_number: String): Reservation</text>
<text text-anchor="start" x="728.77" y="-610.3" font-family="Times,serif" font-size="14.00"> + equals(obj: Object): boolean</text>
<text text-anchor="start" x="728.77" y="-595.3" font-family="Times,serif" font-size="14.00"> + update(acct: Account): void</text>
<text text-anchor="start" x="728.77" y="-580.3" font-family="Times,serif" font-size="14.00"> + getAllReservations(): ListIterator&lt;IReservation&gt;</text>
</g>
<!-- AccountReservationList -->
<g id="node3" class="node">
<title>AccountReservationList</title>
<polygon fill="none" stroke="black" points="596.5,-158.5 596.5,-248.5 781.5,-248.5 781.5,-158.5 596.5,-158.5"/>
<text text-anchor="middle" x="689" y="-236.5" font-family="Arial" font-size="10.00">AccountReservationList</text>
<polyline fill="none" stroke="black" points="596.5,-229.5 781.5,-229.5 "/>
<text text-anchor="middle" x="689" y="-217.5" font-family="Arial" font-size="10.00">extends ArrayList&lt;IReservation&gt;</text>
<polyline fill="none" stroke="black" points="596.5,-210.5 781.5,-210.5 "/>
<text text-anchor="start" x="604.5" y="-198.5" font-family="Arial" font-size="10.00">+ add(IReservation): boolean</text>
<text text-anchor="start" x="604.5" y="-187.5" font-family="Arial" font-size="10.00">+ find(String): Reservation</text>
<text text-anchor="start" x="604.5" y="-176.5" font-family="Arial" font-size="10.00">+ update(AccountReservationList): void</text>
<text text-anchor="start" x="604.5" y="-165.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<polygon fill="lightyellow" stroke="black" points="1034.77,-316.5 1034.77,-445.5 1423.77,-445.5 1423.77,-316.5 1034.77,-316.5"/>
<text text-anchor="middle" x="1229.27" y="-430.3" font-family="Times,serif" font-size="14.00">AccountReservationList</text>
<polyline fill="none" stroke="black" points="1034.77,-422.5 1423.77,-422.5 "/>
<text text-anchor="middle" x="1229.27" y="-407.3" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="1034.77,-399.5 1423.77,-399.5 "/>
<text text-anchor="start" x="1042.77" y="-384.3" font-family="Times,serif" font-size="14.00">&#45; reservationSerial(reservation: Reservation): String</text>
<text text-anchor="start" x="1042.77" y="-369.3" font-family="Times,serif" font-size="14.00"> + add(reservation: IReservation): boolean</text>
<text text-anchor="start" x="1042.77" y="-354.3" font-family="Times,serif" font-size="14.00"> + toString(): String</text>
<text text-anchor="start" x="1042.77" y="-339.3" font-family="Times,serif" font-size="14.00"> + find(reservation_number: String): Reservation</text>
<text text-anchor="start" x="1042.77" y="-324.3" font-family="Times,serif" font-size="14.00"> + update(incoming_reservation_list: AccountReservationList): void</text>
</g>
<!-- Account&#45;&gt;AccountReservationList -->
<g id="edge1" class="edge">
<g id="edge9" class="edge">
<title>Account&#45;&gt;AccountReservationList</title>
<path fill="none" stroke="black" d="M628.18,-349.21C640.4,-320.13 654.29,-287.08 665.71,-259.91"/>
<polygon fill="black" stroke="black" points="665.79,-259.71 664.43,-252.63 670.44,-248.65 671.8,-255.73 665.79,-259.71"/>
<text text-anchor="middle" x="641.5" y="-324.6" font-family="Arial" font-size="8.00">1</text>
<path fill="none" stroke="black" d="M1089.9,-572.23C1120.47,-530.5 1150.85,-489.04 1175.4,-455.52"/>
<polygon fill="black" stroke="black" points="1175.41,-455.52 1175.73,-448.31 1182.5,-445.84 1182.18,-453.04 1175.41,-455.52"/>
<text text-anchor="middle" x="1116.77" y="-542.8" font-family="Times,serif" font-size="14.00">1</text>
</g>
<!-- Address -->
<g id="node4" class="node">
<title>Address</title>
<polygon fill="none" stroke="black" points="857,-103.5 857,-303.5 985,-303.5 985,-103.5 857,-103.5"/>
<text text-anchor="middle" x="921" y="-291.5" font-family="Arial" font-size="10.00">Address</text>
<polyline fill="none" stroke="black" points="857,-284.5 985,-284.5 "/>
<text text-anchor="start" x="865" y="-272.5" font-family="Arial" font-size="10.00">+ street: String</text>
<text text-anchor="start" x="865" y="-261.5" font-family="Arial" font-size="10.00">+ city: String</text>
<text text-anchor="start" x="865" y="-250.5" font-family="Arial" font-size="10.00">+ state: String</text>
<text text-anchor="start" x="865" y="-239.5" font-family="Arial" font-size="10.00">+ zip: String</text>
<polyline fill="none" stroke="black" points="857,-232.5 985,-232.5 "/>
<text text-anchor="start" x="865" y="-220.5" font-family="Arial" font-size="10.00">+ getStreet(): String</text>
<text text-anchor="start" x="865" y="-209.5" font-family="Arial" font-size="10.00">+ setStreet(String): void</text>
<text text-anchor="start" x="865" y="-198.5" font-family="Arial" font-size="10.00">+ getCity(): String</text>
<text text-anchor="start" x="865" y="-187.5" font-family="Arial" font-size="10.00">+ setCity(String): void</text>
<text text-anchor="start" x="865" y="-176.5" font-family="Arial" font-size="10.00">+ getState(): String</text>
<text text-anchor="start" x="865" y="-165.5" font-family="Arial" font-size="10.00">+ setState(String): void</text>
<text text-anchor="start" x="865" y="-154.5" font-family="Arial" font-size="10.00">+ getZip(): String</text>
<text text-anchor="start" x="865" y="-143.5" font-family="Arial" font-size="10.00">+ setZip(String): void</text>
<text text-anchor="start" x="865" y="-132.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="865" y="-121.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="865" y="-110.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<polygon fill="lightyellow" stroke="black" points="517.27,-241.5 517.27,-520.5 711.27,-520.5 711.27,-241.5 517.27,-241.5"/>
<text text-anchor="middle" x="614.27" y="-505.3" font-family="Times,serif" font-size="14.00">Address</text>
<polyline fill="none" stroke="black" points="517.27,-497.5 711.27,-497.5 "/>
<text text-anchor="start" x="525.27" y="-482.3" font-family="Times,serif" font-size="14.00">&#45; street: String</text>
<text text-anchor="start" x="525.27" y="-467.3" font-family="Times,serif" font-size="14.00"> &#45; city: String</text>
<text text-anchor="start" x="525.27" y="-452.3" font-family="Times,serif" font-size="14.00"> &#45; state: String</text>
<text text-anchor="start" x="525.27" y="-437.3" font-family="Times,serif" font-size="14.00"> &#45; zip: String</text>
<polyline fill="none" stroke="black" points="517.27,-429.5 711.27,-429.5 "/>
<text text-anchor="start" x="525.27" y="-414.3" font-family="Times,serif" font-size="14.00">+ Address(street, city, state, zip)</text>
<text text-anchor="start" x="525.27" y="-399.3" font-family="Times,serif" font-size="14.00"> + getStreet(): String</text>
<text text-anchor="start" x="525.27" y="-384.3" font-family="Times,serif" font-size="14.00"> + setStreet(street: String): void</text>
<text text-anchor="start" x="525.27" y="-369.3" font-family="Times,serif" font-size="14.00"> + getCity(): String</text>
<text text-anchor="start" x="525.27" y="-354.3" font-family="Times,serif" font-size="14.00"> + setCity(city: String): void</text>
<text text-anchor="start" x="525.27" y="-339.3" font-family="Times,serif" font-size="14.00"> + getState(): String</text>
<text text-anchor="start" x="525.27" y="-324.3" font-family="Times,serif" font-size="14.00"> + setState(state: String): void</text>
<text text-anchor="start" x="525.27" y="-309.3" font-family="Times,serif" font-size="14.00"> + getZip(): String</text>
<text text-anchor="start" x="525.27" y="-294.3" font-family="Times,serif" font-size="14.00"> + setZip(zip: String): void</text>
<text text-anchor="start" x="525.27" y="-279.3" font-family="Times,serif" font-size="14.00"> + hashCode(): int</text>
<text text-anchor="start" x="525.27" y="-264.3" font-family="Times,serif" font-size="14.00"> + equals(obj: Object): boolean</text>
<text text-anchor="start" x="525.27" y="-249.3" font-family="Times,serif" font-size="14.00"> + toString(): String</text>
</g>
<!-- Account&#45;&gt;Address -->
<g id="edge2" class="edge">
<g id="edge10" class="edge">
<title>Account&#45;&gt;Address</title>
<path fill="none" stroke="black" d="M712.17,-354.07C738.08,-338.15 765.25,-320.88 790,-304 808.9,-291.11 828.8,-276.55 847.22,-262.62"/>
<polygon fill="black" stroke="black" points="847.45,-262.45 849.8,-255.63 857,-255.18 854.64,-262 847.45,-262.45"/>
<text text-anchor="middle" x="762.5" y="-324.6" font-family="Arial" font-size="8.00">1</text>
<path fill="none" stroke="black" d="M763.72,-572.32C748.85,-555.11 734.2,-537.84 720.27,-521 719.91,-520.56 719.54,-520.12 719.18,-519.68"/>
<polygon fill="black" stroke="black" points="719.1,-519.59 712.21,-517.47 711.51,-510.3 718.4,-512.41 719.1,-519.59"/>
<text text-anchor="middle" x="747.77" y="-542.8" font-family="Times,serif" font-size="14.00">1</text>
</g>
<!-- EmailAddress -->
<g id="node5" class="node">
<title>EmailAddress</title>
<polygon fill="none" stroke="black" points="420,-153 420,-254 578,-254 578,-153 420,-153"/>
<text text-anchor="middle" x="499" y="-242" font-family="Arial" font-size="10.00">EmailAddress</text>
<polyline fill="none" stroke="black" points="420,-235 578,-235 "/>
<text text-anchor="start" x="428" y="-223" font-family="Arial" font-size="10.00">+ email_address: String</text>
<polyline fill="none" stroke="black" points="420,-216 578,-216 "/>
<text text-anchor="start" x="428" y="-204" font-family="Arial" font-size="10.00">+ getEmail_address(): String</text>
<text text-anchor="start" x="428" y="-193" font-family="Arial" font-size="10.00">+ setEmail_address(String): void</text>
<text text-anchor="start" x="428" y="-182" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="428" y="-171" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="428" y="-160" font-family="Arial" font-size="10.00">+ toString(): String</text>
<polygon fill="lightyellow" stroke="black" points="729.77,-309 729.77,-453 1016.77,-453 1016.77,-309 729.77,-309"/>
<text text-anchor="middle" x="873.27" y="-437.8" font-family="Times,serif" font-size="14.00">EmailAddress</text>
<polyline fill="none" stroke="black" points="729.77,-430 1016.77,-430 "/>
<text text-anchor="start" x="737.77" y="-414.8" font-family="Times,serif" font-size="14.00">&#45; email_address: String</text>
<polyline fill="none" stroke="black" points="729.77,-407 1016.77,-407 "/>
<text text-anchor="start" x="737.77" y="-391.8" font-family="Times,serif" font-size="14.00">+ EmailAddress(email_address: String)</text>
<text text-anchor="start" x="737.77" y="-376.8" font-family="Times,serif" font-size="14.00"> + getEmail_address(): String</text>
<text text-anchor="start" x="737.77" y="-361.8" font-family="Times,serif" font-size="14.00"> + setEmail_address(email_address: String): void</text>
<text text-anchor="start" x="737.77" y="-346.8" font-family="Times,serif" font-size="14.00"> + hashCode(): int</text>
<text text-anchor="start" x="737.77" y="-331.8" font-family="Times,serif" font-size="14.00"> + equals(obj: Object): boolean</text>
<text text-anchor="start" x="737.77" y="-316.8" font-family="Times,serif" font-size="14.00"> + toString(): String</text>
</g>
<!-- Account&#45;&gt;EmailAddress -->
<g id="edge3" class="edge">
<g id="edge11" class="edge">
<title>Account&#45;&gt;EmailAddress</title>
<path fill="none" stroke="black" d="M565.17,-349.21C552.77,-322.08 538.78,-291.5 526.87,-265.46"/>
<polygon fill="black" stroke="black" points="526.73,-265.13 520.59,-261.34 521.74,-254.22 527.87,-258.01 526.73,-265.13"/>
<text text-anchor="middle" x="557.5" y="-324.6" font-family="Arial" font-size="8.00">1</text>
<path fill="none" stroke="black" d="M907.99,-572.23C901.09,-534.4 894.22,-496.78 888.44,-465.11"/>
<polygon fill="black" stroke="black" points="888.43,-465.08 883.42,-459.9 886.28,-453.28 891.29,-458.46 888.43,-465.08"/>
<text text-anchor="middle" x="908.77" y="-542.8" font-family="Times,serif" font-size="14.00">1</text>
</g>
<!-- AccountList -->
<g id="node2" class="node">
<title>AccountList</title>
<polygon fill="none" stroke="black" points="306,-542 306,-654 564,-654 564,-542 306,-542"/>
<text text-anchor="middle" x="435" y="-642" font-family="Arial" font-size="10.00">AccountList</text>
<polyline fill="none" stroke="black" points="306,-635 564,-635 "/>
<text text-anchor="middle" x="435" y="-623" font-family="Arial" font-size="10.00">extends ArrayList&lt;Account&gt;</text>
<polyline fill="none" stroke="black" points="306,-616 564,-616 "/>
<text text-anchor="start" x="314" y="-604" font-family="Arial" font-size="10.00">+ accountSerial(String, Address, EmailAddress): String</text>
<text text-anchor="start" x="314" y="-593" font-family="Arial" font-size="10.00">+ add(Account): boolean</text>
<text text-anchor="start" x="314" y="-582" font-family="Arial" font-size="10.00">+ find(String): Account</text>
<text text-anchor="start" x="314" y="-571" font-family="Arial" font-size="10.00">+ save(Account): void</text>
<text text-anchor="start" x="314" y="-560" font-family="Arial" font-size="10.00">+ getListOfReservations(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="314" y="-549" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
<polygon fill="lightyellow" stroke="black" points="977.77,-1031 977.77,-1175 1392.77,-1175 1392.77,-1031 977.77,-1031"/>
<text text-anchor="middle" x="1185.27" y="-1159.8" font-family="Times,serif" font-size="14.00">AccountList</text>
<polyline fill="none" stroke="black" points="977.77,-1152 1392.77,-1152 "/>
<text text-anchor="middle" x="1185.27" y="-1136.8" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="977.77,-1129 1392.77,-1129 "/>
<text text-anchor="start" x="985.77" y="-1113.8" font-family="Times,serif" font-size="14.00">+ accountSerial(phone_number, mailing_address, email_address): String</text>
<text text-anchor="start" x="985.77" y="-1098.8" font-family="Times,serif" font-size="14.00"> + add(account: Account): boolean</text>
<text text-anchor="start" x="985.77" y="-1083.8" font-family="Times,serif" font-size="14.00"> + save(acct: Account): void</text>
<text text-anchor="start" x="985.77" y="-1068.8" font-family="Times,serif" font-size="14.00"> + find(account_number: String): Account</text>
<text text-anchor="start" x="985.77" y="-1053.8" font-family="Times,serif" font-size="14.00"> + getListOfReservations(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="985.77" y="-1038.8" font-family="Times,serif" font-size="14.00"> + showReservationList(): void</text>
</g>
<!-- AccountList&#45;&gt;Account -->
<g id="edge4" class="edge">
<g id="edge13" class="edge">
<title>AccountList&#45;&gt;Account</title>
<path fill="none" stroke="black" d="M486.57,-541.95C498.02,-529.73 510.37,-516.54 522.55,-503.54"/>
<polygon fill="none" stroke="black" points="522.73,-503.35 523.92,-496.23 530.94,-494.59 529.75,-501.7 522.73,-503.35"/>
<text text-anchor="middle" x="519.5" y="-515.6" font-family="Arial" font-size="8.00">0...*</text>
<path fill="none" stroke="black" d="M1132.98,-1030.61C1121.88,-1015.46 1109.63,-998.74 1096.87,-981.32"/>
<polygon fill="none" stroke="black" points="1096.82,-981.25 1090.04,-978.77 1089.73,-971.57 1096.5,-974.04 1096.82,-981.25"/>
<text text-anchor="middle" x="1117.77" y="-993.8" font-family="Times,serif" font-size="14.00">*</text>
</g>
<!-- DuplicateObjectException -->
<g id="node9" class="node">
<title>DuplicateObjectException</title>
<polygon fill="none" stroke="black" points="660,-16.5 660,-65.5 830,-65.5 830,-16.5 660,-16.5"/>
<text text-anchor="middle" x="745" y="-53.5" font-family="Arial" font-size="10.00">DuplicateObjectException</text>
<polyline fill="none" stroke="black" points="660,-46.5 830,-46.5 "/>
<text text-anchor="start" x="668" y="-34.5" font-family="Arial" font-size="10.00">+ DuplicateObjectException()</text>
<text text-anchor="start" x="668" y="-23.5" font-family="Arial" font-size="10.00">+ DuplicateObjectException(String)</text>
<!-- ArrayList -->
<g id="node20" class="node">
<title>ArrayList</title>
<polygon fill="white" stroke="black" points="1353.27,-77 1353.27,-113 1447.27,-113 1447.27,-77 1353.27,-77"/>
<text text-anchor="middle" x="1400.27" y="-91.3" font-family="Times,serif" font-size="14.00">ArrayList&lt;T&gt;</text>
</g>
<!-- AccountList&#45;&gt;DuplicateObjectException -->
<g id="edge21" class="edge">
<title>AccountList&#45;&gt;DuplicateObjectException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M547.21,-541.96C555.86,-538.39 564.52,-535.02 573,-532 636.86,-509.22 670.68,-540.44 721,-495 786.64,-435.72 817.64,-187.02 790,-103 786.6,-92.67 780.71,-82.66 774.29,-73.83"/>
<polygon fill="black" stroke="black" points="768.04,-65.76 777.72,-70.91 771.1,-69.71 774.16,-73.67 774.16,-73.67 774.16,-73.67 771.1,-69.71 770.61,-76.42 768.04,-65.76 768.04,-65.76"/>
</g>
<!-- AccountReservationList&#45;&gt;DuplicateObjectException -->
<g id="edge22" class="edge">
<title>AccountReservationList&#45;&gt;DuplicateObjectException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M704.45,-158.22C713.57,-132.08 724.93,-99.51 733.31,-75.51"/>
<polygon fill="black" stroke="black" points="736.7,-65.79 737.65,-76.72 735.05,-70.51 733.4,-75.23 733.4,-75.23 733.4,-75.23 735.05,-70.51 729.16,-73.75 736.7,-65.79 736.7,-65.79"/>
<!-- AccountList&#45;&gt;ArrayList -->
<g id="edge1" class="edge">
<title>AccountList&#45;&gt;ArrayList</title>
<path fill="none" stroke="black" d="M1226.74,-1030.79C1286.18,-924.18 1392.77,-714.85 1432.27,-521 1457.11,-399.06 1445.76,-364.71 1432.27,-241 1427.72,-199.23 1415.99,-151.87 1408.07,-122.97"/>
<polygon fill="none" stroke="black" points="1411.4,-121.9 1405.34,-113.21 1404.66,-123.78 1411.4,-121.9"/>
</g>
<!-- IReservation -->
<g id="node11" class="node">
<title>IReservation</title>
<polygon fill="none" stroke="black" points="1048,-540.5 1048,-655.5 1212,-655.5 1212,-540.5 1048,-540.5"/>
<text text-anchor="start" x="1056" y="-643.5" font-family="Arial" font-size="10.00">«interface»</text>
<text text-anchor="middle" x="1130" y="-632.5" font-family="Arial" font-size="10.00">IReservation</text>
<polyline fill="none" stroke="black" points="1048,-625.5 1212,-625.5 "/>
<text text-anchor="start" x="1056" y="-613.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1056" y="-602.5" font-family="Arial" font-size="10.00">+ getReservation_number(): String</text>
<text text-anchor="start" x="1056" y="-591.5" font-family="Arial" font-size="10.00">+ getAccountNumber(): String</text>
<text text-anchor="start" x="1056" y="-580.5" font-family="Arial" font-size="10.00">+ getPhysical_address(): Address</text>
<text text-anchor="start" x="1056" y="-569.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1056" y="-558.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<text text-anchor="start" x="1056" y="-547.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<polygon fill="lightgreen" stroke="black" points="340.27,-0.5 340.27,-189.5 552.27,-189.5 552.27,-0.5 340.27,-0.5"/>
<text text-anchor="middle" x="446.27" y="-174.3" font-family="Times,serif" font-size="14.00">«interface»</text>
<text text-anchor="middle" x="446.27" y="-159.3" font-family="Times,serif" font-size="14.00">IReservation</text>
<polyline fill="none" stroke="black" points="340.27,-151.5 552.27,-151.5 "/>
<text text-anchor="middle" x="446.27" y="-136.3" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="340.27,-128.5 552.27,-128.5 "/>
<text text-anchor="start" x="348.27" y="-113.3" font-family="Times,serif" font-size="14.00">+ ReservationType(): String</text>
<text text-anchor="start" x="348.27" y="-98.3" font-family="Times,serif" font-size="14.00"> + copy(type: String): Reservation</text>
<text text-anchor="start" x="348.27" y="-83.3" font-family="Times,serif" font-size="14.00"> + getReservation_number(): String</text>
<text text-anchor="start" x="348.27" y="-68.3" font-family="Times,serif" font-size="14.00"> + getAccountNumber(): String</text>
<text text-anchor="start" x="348.27" y="-53.3" font-family="Times,serif" font-size="14.00"> + getPhysical_address(): Address</text>
<text text-anchor="start" x="348.27" y="-38.3" font-family="Times,serif" font-size="14.00"> + getPricePerNight(): float</text>
<text text-anchor="start" x="348.27" y="-23.3" font-family="Times,serif" font-size="14.00"> + calculatePrice(): float</text>
<text text-anchor="start" x="348.27" y="-8.3" font-family="Times,serif" font-size="14.00"> + checkValid(): boolean</text>
</g>
<!-- AccountReservationList&#45;&gt;IReservation -->
<g id="edge5" class="edge">
<g id="edge14" class="edge">
<title>AccountReservationList&#45;&gt;IReservation</title>
<path fill="none" stroke="black" d="M738.63,-248.67C816.38,-317.87 967.28,-452.18 1057.29,-532.29"/>
<polygon fill="none" stroke="black" points="1057.38,-532.37 1064.52,-533.37 1066.35,-540.35 1059.2,-539.35 1057.38,-532.37"/>
<text text-anchor="middle" x="1017.5" y="-420.1" font-family="Arial" font-size="8.00">0...*</text>
<path fill="none" stroke="black" d="M1149.81,-316.19C1113.58,-289.71 1069.06,-260.65 1025.27,-241 873.54,-172.92 684.49,-133.21 564.55,-113.06"/>
<polygon fill="none" stroke="black" points="564.28,-113.02 557.71,-115.98 552.45,-111.05 559.02,-108.09 564.28,-113.02"/>
<text text-anchor="middle" x="993.77" y="-211.8" font-family="Times,serif" font-size="14.00">0...*</text>
</g>
<!-- AccountReservationList&#45;&gt;ArrayList -->
<g id="edge2" class="edge">
<title>AccountReservationList&#45;&gt;ArrayList</title>
<path fill="none" stroke="black" d="M1267.65,-316.26C1304.52,-255.02 1358.41,-165.52 1384.7,-121.87"/>
<polygon fill="none" stroke="black" points="1387.86,-123.4 1390.02,-113.03 1381.86,-119.79 1387.86,-123.4"/>
</g>
<!-- DataRepository -->
<g id="node6" class="node">
<title>DataRepository</title>
<polygon fill="none" stroke="black" points="16.5,-542 16.5,-654 287.5,-654 287.5,-542 16.5,-542"/>
<text text-anchor="middle" x="152" y="-642" font-family="Arial" font-size="10.00">DataRepository</text>
<polyline fill="none" stroke="black" points="16.5,-635 287.5,-635 "/>
<text text-anchor="start" x="24.5" y="-623" font-family="Arial" font-size="10.00">&#45; directoryPath: String</text>
<text text-anchor="start" x="24.5" y="-612" font-family="Arial" font-size="10.00">&#45; instance: DataRepository</text>
<polyline fill="none" stroke="black" points="16.5,-605 287.5,-605 "/>
<text text-anchor="start" x="24.5" y="-593" font-family="Arial" font-size="10.00">+ setDataStoreRoot(String): void</text>
<text text-anchor="start" x="24.5" y="-582" font-family="Arial" font-size="10.00">+ getPath(): String</text>
<text text-anchor="start" x="24.5" y="-571" font-family="Arial" font-size="10.00">+ Reservation(String): Reservation</text>
<text text-anchor="start" x="24.5" y="-560" font-family="Arial" font-size="10.00">+ WalkFileSystemTree(AccomodationManager, Path): void</text>
<text text-anchor="start" x="24.5" y="-549" font-family="Arial" font-size="10.00">+ LoadAccount(Path): Account</text>
<polygon fill="lightyellow" stroke="black" points="689.27,-1535.5 689.27,-1724.5 1199.27,-1724.5 1199.27,-1535.5 689.27,-1535.5"/>
<text text-anchor="middle" x="944.27" y="-1709.3" font-family="Times,serif" font-size="14.00">DataRepository</text>
<polyline fill="none" stroke="black" points="689.27,-1701.5 1199.27,-1701.5 "/>
<text text-anchor="start" x="697.27" y="-1686.3" font-family="Times,serif" font-size="14.00">&#45; directoryPath: String</text>
<text text-anchor="start" x="697.27" y="-1671.3" font-family="Times,serif" font-size="14.00"> &#45; instance: DataRepository</text>
<polyline fill="none" stroke="black" points="689.27,-1663.5 1199.27,-1663.5 "/>
<text text-anchor="start" x="697.27" y="-1648.3" font-family="Times,serif" font-size="14.00"># getInstance(): DataRepository</text>
<text text-anchor="start" x="697.27" y="-1633.3" font-family="Times,serif" font-size="14.00"> + setDataStoreRoot(directoryPath: String): void</text>
<text text-anchor="start" x="697.27" y="-1618.3" font-family="Times,serif" font-size="14.00"> + getPath(): String</text>
<text text-anchor="start" x="697.27" y="-1603.3" font-family="Times,serif" font-size="14.00"> + Reservation(type: String): Reservation</text>
<text text-anchor="start" x="697.27" y="-1588.3" font-family="Times,serif" font-size="14.00"> + WalkFileSystemTree(manager: AccomodationManager, rootDir: Path): void</text>
<text text-anchor="start" x="697.27" y="-1573.3" font-family="Times,serif" font-size="14.00"> + LoadAccount(file: Path): Account</text>
<text text-anchor="start" x="697.27" y="-1558.3" font-family="Times,serif" font-size="14.00"> &#45; loadReservationRefList(rdr: JsonReader, ac: Account): void</text>
<text text-anchor="start" x="697.27" y="-1543.3" font-family="Times,serif" font-size="14.00"> &#45; loadReservation(ac: Account, reservationType: String, reservationNumber: String): void</text>
</g>
<!-- AccomodationManager -->
<g id="node13" class="node">
<title>AccomodationManager</title>
<polygon fill="none" stroke="black" points="478.5,-1109 478.5,-1276 739.5,-1276 739.5,-1109 478.5,-1109"/>
<text text-anchor="middle" x="609" y="-1264" font-family="Arial" font-size="10.00">AccomodationManager</text>
<polyline fill="none" stroke="black" points="478.5,-1257 739.5,-1257 "/>
<text text-anchor="start" x="486.5" y="-1245" font-family="Arial" font-size="10.00">&#45; accounts: AccountList</text>
<polyline fill="none" stroke="black" points="478.5,-1238 739.5,-1238 "/>
<text text-anchor="start" x="486.5" y="-1226" font-family="Arial" font-size="10.00">+ loadAll(): void</text>
<text text-anchor="start" x="486.5" y="-1215" font-family="Arial" font-size="10.00">+ load(Path): void</text>
<text text-anchor="start" x="486.5" y="-1204" font-family="Arial" font-size="10.00">+ retrieveLoadedAccounts(): List&lt;Account&gt;</text>
<text text-anchor="start" x="486.5" y="-1193" font-family="Arial" font-size="10.00">+ retrieveAccount(String): Account</text>
<text text-anchor="start" x="486.5" y="-1182" font-family="Arial" font-size="10.00">+ AddAccount(Account): void</text>
<text text-anchor="start" x="486.5" y="-1171" font-family="Arial" font-size="10.00">+ UpdateAccount(Account): void</text>
<text text-anchor="start" x="486.5" y="-1160" font-family="Arial" font-size="10.00">+ newAccount(String, Address, EmailAddress): Account</text>
<text text-anchor="start" x="486.5" y="-1149" font-family="Arial" font-size="10.00">+ addReservation(Account, Reservation): boolean</text>
<text text-anchor="start" x="486.5" y="-1138" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
<text text-anchor="start" x="486.5" y="-1127" font-family="Arial" font-size="10.00">+ getReservationList(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="486.5" y="-1116" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
<!-- DataRepository&#45;&gt;Account -->
<g id="edge19" class="edge">
<title>DataRepository&#45;&gt;Account</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M944.27,-1535.35C944.27,-1403.22 944.27,-1158.5 944.27,-981.91"/>
<polygon fill="black" stroke="black" points="944.27,-971.7 948.77,-981.7 944.27,-976.7 944.27,-981.7 944.27,-981.7 944.27,-981.7 944.27,-976.7 939.77,-981.7 944.27,-971.7 944.27,-971.7"/>
<text text-anchor="middle" x="963.27" y="-1204.8" font-family="Times,serif" font-size="14.00">creates</text>
</g>
<!-- DataRepository&#45;&gt;AccomodationManager -->
<g id="edge14" class="edge">
<title>DataRepository&#45;&gt;AccomodationManager</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M168.34,-654.16C200.05,-752.98 278.55,-961.88 409,-1090.5 426.61,-1107.86 447.8,-1122.82 469.71,-1135.51"/>
<polygon fill="black" stroke="black" points="478.47,-1140.45 467.55,-1139.46 474.11,-1137.99 469.76,-1135.54 469.76,-1135.54 469.76,-1135.54 474.11,-1137.99 471.97,-1131.62 478.47,-1140.45 478.47,-1140.45"/>
</g>
<!-- KitchenTypeEnum -->
<g id="node7" class="node">
<title>KitchenTypeEnum</title>
<polygon fill="none" stroke="black" points="582,-562.5 582,-633.5 678,-633.5 678,-562.5 582,-562.5"/>
<text text-anchor="start" x="590" y="-621.5" font-family="Arial" font-size="10.00">«enumeration»</text>
<text text-anchor="middle" x="630" y="-610.5" font-family="Arial" font-size="10.00">KitchenTypeEnum</text>
<polyline fill="none" stroke="black" points="582,-603.5 678,-603.5 "/>
<text text-anchor="start" x="590" y="-591.5" font-family="Arial" font-size="10.00">None</text>
<text text-anchor="start" x="590" y="-580.5" font-family="Arial" font-size="10.00">Kitchenette</text>
<text text-anchor="start" x="590" y="-569.5" font-family="Arial" font-size="10.00">FullKitchen</text>
</g>
<!-- ReservationStatusEnum -->
<g id="node8" class="node">
<title>ReservationStatusEnum</title>
<polygon fill="none" stroke="black" points="696.5,-562.5 696.5,-633.5 817.5,-633.5 817.5,-562.5 696.5,-562.5"/>
<text text-anchor="start" x="704.5" y="-621.5" font-family="Arial" font-size="10.00">«enumeration»</text>
<text text-anchor="middle" x="757" y="-610.5" font-family="Arial" font-size="10.00">ReservationStatusEnum</text>
<polyline fill="none" stroke="black" points="696.5,-603.5 817.5,-603.5 "/>
<text text-anchor="start" x="704.5" y="-591.5" font-family="Arial" font-size="10.00">Draft</text>
<text text-anchor="start" x="704.5" y="-580.5" font-family="Arial" font-size="10.00">Canceled</text>
<text text-anchor="start" x="704.5" y="-569.5" font-family="Arial" font-size="10.00">Completed</text>
</g>
<!-- IllegalOperationException -->
<g id="node10" class="node">
<title>IllegalOperationException</title>
<polygon fill="none" stroke="black" points="835.5,-573.5 835.5,-622.5 1002.5,-622.5 1002.5,-573.5 835.5,-573.5"/>
<text text-anchor="middle" x="919" y="-610.5" font-family="Arial" font-size="10.00">IllegalOperationException</text>
<polyline fill="none" stroke="black" points="835.5,-603.5 1002.5,-603.5 "/>
<text text-anchor="start" x="843.5" y="-591.5" font-family="Arial" font-size="10.00">+ IllegalOperationException()</text>
<text text-anchor="start" x="843.5" y="-580.5" font-family="Arial" font-size="10.00">+ IllegalOperationException(String)</text>
<!-- DataRepository&#45;&gt;DataRepository -->
<g id="edge23" class="edge">
<title>DataRepository&#45;&gt;DataRepository</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1199.53,-1643.82C1210.74,-1640.29 1217.27,-1635.68 1217.27,-1630 1217.27,-1626.18 1214.32,-1622.85 1208.99,-1620"/>
<polygon fill="black" stroke="black" points="1199.53,-1616.18 1210.49,-1615.75 1204.16,-1618.05 1208.8,-1619.93 1208.8,-1619.93 1208.8,-1619.93 1204.16,-1618.05 1207.11,-1624.1 1199.53,-1616.18 1199.53,-1616.18"/>
<text text-anchor="middle" x="1242.27" y="-1626.3" font-family="Times,serif" font-size="14.00">singleton</text>
</g>
<!-- Reservation -->
<g id="node12" class="node">
<title>Reservation</title>
<polygon fill="none" stroke="black" points="1027,-721 1027,-1042 1275,-1042 1275,-721 1027,-721"/>
<text text-anchor="start" x="1035" y="-1030" font-family="Arial" font-size="10.00">«abstract»</text>
<text text-anchor="middle" x="1151" y="-1019" font-family="Arial" font-size="10.00">Reservation</text>
<polyline fill="none" stroke="black" points="1027,-1012 1275,-1012 "/>
<text text-anchor="start" x="1035" y="-1000" font-family="Arial" font-size="10.00"># type: char</text>
<text text-anchor="start" x="1035" y="-989" font-family="Arial" font-size="10.00"># reservation_number: String</text>
<text text-anchor="start" x="1035" y="-978" font-family="Arial" font-size="10.00"># physical_address: Address</text>
<text text-anchor="start" x="1035" y="-967" font-family="Arial" font-size="10.00"># mailing_address: Address</text>
<text text-anchor="start" x="1035" y="-956" font-family="Arial" font-size="10.00"># reservation_start_date: ZonedDateTime</text>
<text text-anchor="start" x="1035" y="-945" font-family="Arial" font-size="10.00"># reservation_end_date: ZonedDateTime</text>
<text text-anchor="start" x="1035" y="-934" font-family="Arial" font-size="10.00"># reservation_status: ReservationStatusEnum</text>
<text text-anchor="start" x="1035" y="-923" font-family="Arial" font-size="10.00"># kitchen: KitchenTypeEnum</text>
<text text-anchor="start" x="1035" y="-912" font-family="Arial" font-size="10.00"># numberOfBeds: Integer</text>
<text text-anchor="start" x="1035" y="-901" font-family="Arial" font-size="10.00"># numberOfBedRooms: Integer</text>
<text text-anchor="start" x="1035" y="-890" font-family="Arial" font-size="10.00"># numberOfBathRooms: Integer</text>
<text text-anchor="start" x="1035" y="-879" font-family="Arial" font-size="10.00"># numberOfFloors: Integer</text>
<text text-anchor="start" x="1035" y="-868" font-family="Arial" font-size="10.00"># squareFeet: Integer</text>
<text text-anchor="start" x="1035" y="-857" font-family="Arial" font-size="10.00"># price: Float</text>
<text text-anchor="start" x="1035" y="-846" font-family="Arial" font-size="10.00"># accountNumber: String</text>
<polyline fill="none" stroke="black" points="1027,-839 1275,-839 "/>
<text text-anchor="start" x="1035" y="-827" font-family="Arial" font-size="10.00">+ getReservation_number(): String</text>
<text text-anchor="start" x="1035" y="-816" font-family="Arial" font-size="10.00">+ setReservation_number(String): void</text>
<text text-anchor="start" x="1035" y="-805" font-family="Arial" font-size="10.00">+ getAccountNumber(): String</text>
<text text-anchor="start" x="1035" y="-794" font-family="Arial" font-size="10.00">+ setAccountNumber(String): void</text>
<text text-anchor="start" x="1035" y="-783" font-family="Arial" font-size="10.00">+ getPhysical_address(): Address</text>
<text text-anchor="start" x="1035" y="-772" font-family="Arial" font-size="10.00">+ setPhysical_address(Address): void</text>
<text text-anchor="start" x="1035" y="-761" font-family="Arial" font-size="10.00">+ Write(Reservation): void</text>
<text text-anchor="start" x="1035" y="-750" font-family="Arial" font-size="10.00">+ Change(Reservation, ReservationStatusEnum): void</text>
<text text-anchor="start" x="1035" y="-739" font-family="Arial" font-size="10.00">+ update(Reservation): void</text>
<text text-anchor="start" x="1035" y="-728" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<polygon fill="lightgray" stroke="black" points="319.77,-754 319.77,-790 400.77,-790 400.77,-754 319.77,-754"/>
<text text-anchor="middle" x="360.27" y="-768.3" font-family="Times,serif" font-size="14.00">Reservation</text>
</g>
<!-- DataRepository&#45;&gt;Reservation -->
<g id="edge20" class="edge">
<title>DataRepository&#45;&gt;Reservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M689.22,-1582.43C471.14,-1527.69 170.4,-1413.26 26.27,-1183 -11.46,-1122.72 -5.56,-1086.59 26.27,-1023 85.97,-903.75 232.57,-826.71 310.19,-792.85"/>
<polygon fill="black" stroke="black" points="319.75,-788.75 312.34,-796.83 315.16,-790.72 310.57,-792.69 310.57,-792.69 310.57,-792.69 315.16,-790.72 308.79,-788.56 319.75,-788.75 319.75,-788.75"/>
<text text-anchor="middle" x="63.27" y="-1204.8" font-family="Times,serif" font-size="14.00">creates</text>
</g>
<!-- AccomodationManager -->
<g id="node13" class="node">
<title>AccomodationManager</title>
<polygon fill="lightyellow" stroke="black" points="972.77,-1234.5 972.77,-1483.5 1397.77,-1483.5 1397.77,-1234.5 972.77,-1234.5"/>
<text text-anchor="middle" x="1185.27" y="-1468.3" font-family="Times,serif" font-size="14.00">AccomodationManager</text>
<polyline fill="none" stroke="black" points="972.77,-1460.5 1397.77,-1460.5 "/>
<text text-anchor="start" x="980.77" y="-1445.3" font-family="Times,serif" font-size="14.00">&#45; accounts: AccountList</text>
<polyline fill="none" stroke="black" points="972.77,-1437.5 1397.77,-1437.5 "/>
<text text-anchor="start" x="980.77" y="-1422.3" font-family="Times,serif" font-size="14.00">+ AccomodationManager(home: String)</text>
<text text-anchor="start" x="980.77" y="-1407.3" font-family="Times,serif" font-size="14.00"> + setDataStoreRoot(home: String): void</text>
<text text-anchor="start" x="980.77" y="-1392.3" font-family="Times,serif" font-size="14.00"> + loadAll(): void</text>
<text text-anchor="start" x="980.77" y="-1377.3" font-family="Times,serif" font-size="14.00"> + load(file: Path): void</text>
<text text-anchor="start" x="980.77" y="-1362.3" font-family="Times,serif" font-size="14.00"> + retrieveLoadedAccounts(): List&lt;Account&gt;</text>
<text text-anchor="start" x="980.77" y="-1347.3" font-family="Times,serif" font-size="14.00"> + retrieveAccount(acct_id: String): Account</text>
<text text-anchor="start" x="980.77" y="-1332.3" font-family="Times,serif" font-size="14.00"> + AddAccount(acct: Account): void</text>
<text text-anchor="start" x="980.77" y="-1317.3" font-family="Times,serif" font-size="14.00"> + UpdateAccount(acct: Account): void</text>
<text text-anchor="start" x="980.77" y="-1302.3" font-family="Times,serif" font-size="14.00"> + newAccount(phone_number, mailing_address, email_address): Account</text>
<text text-anchor="start" x="980.77" y="-1287.3" font-family="Times,serif" font-size="14.00"> + addReservation(account: Account, reservation: Reservation): boolean</text>
<text text-anchor="start" x="980.77" y="-1272.3" font-family="Times,serif" font-size="14.00"> + findReservation(reservation_number: String): Reservation</text>
<text text-anchor="start" x="980.77" y="-1257.3" font-family="Times,serif" font-size="14.00"> + getReservationList(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="980.77" y="-1242.3" font-family="Times,serif" font-size="14.00"> + showReservationList(): void</text>
</g>
<!-- DataRepository&#45;&gt;AccomodationManager -->
<g id="edge18" class="edge">
<title>DataRepository&#45;&gt;AccomodationManager</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1028.22,-1535.29C1040.95,-1521.09 1054.27,-1506.22 1067.55,-1491.39"/>
<polygon fill="black" stroke="black" points="1074.49,-1483.65 1071.17,-1494.1 1071.15,-1487.38 1067.82,-1491.1 1067.82,-1491.1 1067.82,-1491.1 1071.15,-1487.38 1064.46,-1488.1 1074.49,-1483.65 1074.49,-1483.65"/>
<text text-anchor="middle" x="1070.27" y="-1505.8" font-family="Times,serif" font-size="14.00">uses</text>
</g>
<!-- KitchenTypeEnum -->
<g id="node7" class="node">
<title>KitchenTypeEnum</title>
<polygon fill="lightblue" stroke="black" points="379.27,-335.5 379.27,-426.5 499.27,-426.5 499.27,-335.5 379.27,-335.5"/>
<text text-anchor="middle" x="439.27" y="-411.3" font-family="Times,serif" font-size="14.00">«enumeration»</text>
<text text-anchor="middle" x="439.27" y="-396.3" font-family="Times,serif" font-size="14.00">KitchenTypeEnum</text>
<polyline fill="none" stroke="black" points="379.27,-388.5 499.27,-388.5 "/>
<text text-anchor="start" x="387.27" y="-373.3" font-family="Times,serif" font-size="14.00">None</text>
<text text-anchor="start" x="387.27" y="-358.3" font-family="Times,serif" font-size="14.00"> Kitchenette</text>
<text text-anchor="start" x="387.27" y="-343.3" font-family="Times,serif" font-size="14.00"> FullKitchen</text>
</g>
<!-- ReservationStatusEnum -->
<g id="node8" class="node">
<title>ReservationStatusEnum</title>
<polygon fill="lightblue" stroke="black" points="213.77,-335.5 213.77,-426.5 360.77,-426.5 360.77,-335.5 213.77,-335.5"/>
<text text-anchor="middle" x="287.27" y="-411.3" font-family="Times,serif" font-size="14.00">«enumeration»</text>
<text text-anchor="middle" x="287.27" y="-396.3" font-family="Times,serif" font-size="14.00">ReservationStatusEnum</text>
<polyline fill="none" stroke="black" points="213.77,-388.5 360.77,-388.5 "/>
<text text-anchor="start" x="221.77" y="-373.3" font-family="Times,serif" font-size="14.00">Draft</text>
<text text-anchor="start" x="221.77" y="-358.3" font-family="Times,serif" font-size="14.00"> Canceled</text>
<text text-anchor="start" x="221.77" y="-343.3" font-family="Times,serif" font-size="14.00"> Completed</text>
</g>
<!-- DuplicateObjectException -->
<g id="node9" class="node">
<title>DuplicateObjectException</title>
<polygon fill="lightcoral" stroke="black" points="1484.27,-1588 1484.27,-1672 1756.27,-1672 1756.27,-1588 1484.27,-1588"/>
<text text-anchor="middle" x="1620.27" y="-1656.8" font-family="Times,serif" font-size="14.00">DuplicateObjectException</text>
<polyline fill="none" stroke="black" points="1484.27,-1649 1756.27,-1649 "/>
<text text-anchor="middle" x="1620.27" y="-1633.8" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="1484.27,-1626 1756.27,-1626 "/>
<text text-anchor="start" x="1492.27" y="-1610.8" font-family="Times,serif" font-size="14.00">+ DuplicateObjectException()</text>
<text text-anchor="start" x="1492.27" y="-1595.8" font-family="Times,serif" font-size="14.00"> + DuplicateObjectException(message: String)</text>
</g>
<!-- RuntimeException -->
<g id="node19" class="node">
<title>RuntimeException</title>
<polygon fill="white" stroke="black" points="1707.77,-1341 1707.77,-1377 1826.77,-1377 1826.77,-1341 1707.77,-1341"/>
<text text-anchor="middle" x="1767.27" y="-1355.3" font-family="Times,serif" font-size="14.00">RuntimeException</text>
</g>
<!-- DuplicateObjectException&#45;&gt;RuntimeException -->
<g id="edge3" class="edge">
<title>DuplicateObjectException&#45;&gt;RuntimeException</title>
<path fill="none" stroke="black" d="M1642.76,-1587.85C1673.38,-1531.81 1727.32,-1433.11 1752.96,-1386.19"/>
<polygon fill="none" stroke="black" points="1756.11,-1387.71 1757.84,-1377.26 1749.97,-1384.36 1756.11,-1387.71"/>
</g>
<!-- IllegalOperationException -->
<g id="node10" class="node">
<title>IllegalOperationException</title>
<polygon fill="lightcoral" stroke="black" points="1774.27,-1588 1774.27,-1672 2046.27,-1672 2046.27,-1588 1774.27,-1588"/>
<text text-anchor="middle" x="1910.27" y="-1656.8" font-family="Times,serif" font-size="14.00">IllegalOperationException</text>
<polyline fill="none" stroke="black" points="1774.27,-1649 2046.27,-1649 "/>
<text text-anchor="middle" x="1910.27" y="-1633.8" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="1774.27,-1626 2046.27,-1626 "/>
<text text-anchor="start" x="1782.27" y="-1610.8" font-family="Times,serif" font-size="14.00">+ IllegalOperationException()</text>
<text text-anchor="start" x="1782.27" y="-1595.8" font-family="Times,serif" font-size="14.00"> + IllegalOperationException(message: String)</text>
</g>
<!-- IllegalOperationException&#45;&gt;RuntimeException -->
<g id="edge4" class="edge">
<title>IllegalOperationException&#45;&gt;RuntimeException</title>
<path fill="none" stroke="black" d="M1888.4,-1587.85C1858.6,-1531.81 1806.13,-1433.11 1781.19,-1386.19"/>
<polygon fill="none" stroke="black" points="1784.23,-1384.45 1776.45,-1377.26 1778.05,-1387.73 1784.23,-1384.45"/>
</g>
<!-- Reservation&#45;&gt;Address -->
<g id="edge11" class="edge">
<g id="edge15" class="edge">
<title>Reservation&#45;&gt;Address</title>
<path fill="none" stroke="black" d="M1275.02,-808.7C1317.77,-776.91 1360.73,-735.32 1384,-685.5 1412.87,-623.69 1415.36,-592.59 1384,-532 1302.27,-374.07 1105.41,-275.97 996.55,-231.89"/>
<polygon fill="black" stroke="black" points="996.48,-231.86 989.42,-233.35 985.33,-227.41 992.39,-225.92 996.48,-231.86"/>
<text text-anchor="middle" x="1380.5" y="-515.6" font-family="Arial" font-size="8.00">1</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M371.51,-753.78C397.11,-714.58 461.88,-615.39 518.08,-529.32"/>
<polygon fill="black" stroke="black" points="523.66,-520.76 521.96,-531.6 520.93,-524.95 518.2,-529.14 518.2,-529.14 518.2,-529.14 520.93,-524.95 514.43,-526.68 523.66,-520.76 523.66,-520.76"/>
<text text-anchor="middle" x="522.27" y="-542.8" font-family="Times,serif" font-size="14.00">uses</text>
</g>
<!-- Reservation&#45;&gt;KitchenTypeEnum -->
<g id="edge12" class="edge">
<g id="edge17" class="edge">
<title>Reservation&#45;&gt;KitchenTypeEnum</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1026.81,-850C926.74,-820.65 786.74,-768.33 687,-685.5 672.89,-673.78 660.98,-657.67 651.75,-642.53"/>
<polygon fill="black" stroke="black" points="646.63,-633.77 655.56,-640.13 649.15,-638.08 651.67,-642.4 651.67,-642.4 651.67,-642.4 649.15,-638.08 647.79,-644.67 646.63,-633.77 646.63,-633.77"/>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M363.77,-753.78C374.92,-698.85 410,-526.13 428.15,-436.77"/>
<polygon fill="black" stroke="black" points="430.17,-426.82 432.59,-437.51 429.17,-431.72 428.18,-436.62 428.18,-436.62 428.18,-436.62 429.17,-431.72 423.77,-435.72 430.17,-426.82 430.17,-426.82"/>
<text text-anchor="middle" x="419.27" y="-542.8" font-family="Times,serif" font-size="14.00">uses</text>
</g>
<!-- Reservation&#45;&gt;ReservationStatusEnum -->
<g id="edge13" class="edge">
<g id="edge16" class="edge">
<title>Reservation&#45;&gt;ReservationStatusEnum</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1026.74,-819.61C963.05,-785.13 886.41,-738.37 826,-685.5 811.49,-672.8 797.74,-656.75 786.4,-641.94"/>
<polygon fill="black" stroke="black" points="780.35,-633.87 789.95,-639.18 783.35,-637.87 786.35,-641.87 786.35,-641.87 786.35,-641.87 783.35,-637.87 782.75,-644.57 780.35,-633.87 780.35,-633.87"/>
</g>
<!-- Reservation&#45;&gt;IllegalOperationException -->
<g id="edge23" class="edge">
<title>Reservation&#45;&gt;IllegalOperationException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1026.85,-729.86C995.88,-692.28 965.68,-655.64 945.16,-630.74"/>
<polygon fill="black" stroke="black" points="938.58,-622.76 948.41,-627.61 941.76,-626.62 944.94,-630.47 944.94,-630.47 944.94,-630.47 941.76,-626.62 941.47,-633.34 938.58,-622.76 938.58,-622.76"/>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M357.04,-753.78C346.73,-698.85 314.32,-526.13 297.55,-436.77"/>
<polygon fill="black" stroke="black" points="295.68,-426.82 301.95,-435.82 296.6,-431.73 297.53,-436.65 297.53,-436.65 297.53,-436.65 296.6,-431.73 293.1,-437.48 295.68,-426.82 295.68,-426.82"/>
<text text-anchor="middle" x="332.27" y="-542.8" font-family="Times,serif" font-size="14.00">uses</text>
</g>
<!-- Reservation&#45;&gt;IReservation -->
<g id="edge7" class="edge">
<g id="edge5" class="edge">
<title>Reservation&#45;&gt;IReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1139.09,-720.83C1137.65,-701.51 1136.24,-682.68 1134.98,-665.82"/>
<polygon fill="none" stroke="black" points="1138.46,-665.3 1134.22,-655.59 1131.48,-665.82 1138.46,-665.3"/>
<text text-anchor="middle" x="1157" y="-696.1" font-family="Arial" font-size="8.00">implements</text>
</g>
<!-- ZonedDateTime -->
<g id="node18" class="node">
<title>ZonedDateTime</title>
<polygon fill="none" stroke="black" points="1291,-580 1291,-616 1375,-616 1375,-580 1291,-580"/>
<text text-anchor="middle" x="1333" y="-595.5" font-family="Arial" font-size="10.00">ZonedDateTime</text>
</g>
<!-- Reservation&#45;&gt;ZonedDateTime -->
<g id="edge24" class="edge">
<title>Reservation&#45;&gt;ZonedDateTime</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1264.63,-720.84C1272.36,-708.98 1279.89,-697.12 1287,-685.5 1299.05,-665.79 1311.27,-642.64 1320.08,-625.25"/>
<polygon fill="black" stroke="black" points="1324.6,-616.24 1324.14,-627.2 1322.36,-620.71 1320.11,-625.18 1320.11,-625.18 1320.11,-625.18 1322.36,-620.71 1316.09,-623.16 1324.6,-616.24 1324.6,-616.24"/>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M344.68,-753.89C311.02,-715.65 232.3,-618.87 204.27,-521 170.01,-401.37 142.92,-349.27 204.27,-241 231.77,-192.46 282.71,-158.41 330.79,-135.56"/>
<polygon fill="none" stroke="black" points="332.43,-138.66 340.04,-131.28 329.5,-132.3 332.43,-138.66"/>
</g>
<!-- AccomodationManager&#45;&gt;AccountList -->
<g id="edge6" class="edge">
<g id="edge12" class="edge">
<title>AccomodationManager&#45;&gt;AccountList</title>
<path fill="none" stroke="black" d="M584.71,-1108.8C549.94,-990.41 486.65,-774.88 454.65,-665.91"/>
<polygon fill="black" stroke="black" points="454.57,-665.62 449.04,-660.99 451.18,-654.11 456.71,-658.74 454.57,-665.62"/>
<text text-anchor="middle" x="576.5" y="-879.6" font-family="Arial" font-size="8.00">1</text>
</g>
<!-- AccomodationManager&#45;&gt;DataRepository -->
<g id="edge16" class="edge">
<title>AccomodationManager&#45;&gt;DataRepository</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M500.6,-1108.76C489.18,-1097.61 478.35,-1085.76 469,-1073.5 364.21,-936.09 413,-856.2 306,-720.5 288.63,-698.47 266.49,-678.04 244.45,-660.45"/>
<polygon fill="black" stroke="black" points="236.34,-654.11 246.99,-656.73 240.28,-657.19 244.22,-660.27 244.22,-660.27 244.22,-660.27 240.28,-657.19 241.44,-663.81 236.34,-654.11 236.34,-654.11"/>
</g>
<!-- AccomodationManager&#45;&gt;Reservation -->
<g id="edge15" class="edge">
<title>AccomodationManager&#45;&gt;Reservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M735.01,-1108.94C739.72,-1106.06 744.39,-1103.24 749,-1100.5 837.2,-1048.03 938.83,-992.96 1017.84,-951.3"/>
<polygon fill="black" stroke="black" points="1026.87,-946.55 1020.12,-955.19 1022.44,-948.88 1018.02,-951.21 1018.02,-951.21 1018.02,-951.21 1022.44,-948.88 1015.92,-947.23 1026.87,-946.55 1026.87,-946.55"/>
<path fill="none" stroke="black" d="M1185.27,-1234.35C1185.27,-1218.48 1185.27,-1202.54 1185.27,-1187.52"/>
<polygon fill="none" stroke="black" points="1185.27,-1187.15 1181.27,-1181.15 1185.27,-1175.15 1189.27,-1181.15 1185.27,-1187.15"/>
<text text-anchor="middle" x="1188.77" y="-1204.8" font-family="Times,serif" font-size="14.00">1</text>
</g>
<!-- HotelReservation -->
<g id="node14" class="node">
<title>HotelReservation</title>
<polygon fill="none" stroke="black" points="758,-1131 758,-1254 898,-1254 898,-1131 758,-1131"/>
<text text-anchor="middle" x="828" y="-1242" font-family="Arial" font-size="10.00">HotelReservation</text>
<polyline fill="none" stroke="black" points="758,-1235 898,-1235 "/>
<text text-anchor="middle" x="828" y="-1223" font-family="Arial" font-size="10.00">extends Reservation</text>
<polyline fill="none" stroke="black" points="758,-1216 898,-1216 "/>
<text text-anchor="start" x="766" y="-1204" font-family="Arial" font-size="10.00">+ HotelReservation()</text>
<text text-anchor="start" x="766" y="-1193" font-family="Arial" font-size="10.00">+ HotelReservation(Address)</text>
<text text-anchor="start" x="766" y="-1182" font-family="Arial" font-size="10.00">+ copy(String): Reservation</text>
<text text-anchor="start" x="766" y="-1171" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="766" y="-1160" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="766" y="-1149" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="766" y="-1138" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<polygon fill="lightyellow" stroke="black" points="334.77,-1023.5 334.77,-1182.5 613.77,-1182.5 613.77,-1023.5 334.77,-1023.5"/>
<text text-anchor="middle" x="474.27" y="-1167.3" font-family="Times,serif" font-size="14.00">HotelReservation</text>
<polyline fill="none" stroke="black" points="334.77,-1159.5 613.77,-1159.5 "/>
<text text-anchor="middle" x="474.27" y="-1144.3" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="334.77,-1136.5 613.77,-1136.5 "/>
<text text-anchor="start" x="342.77" y="-1121.3" font-family="Times,serif" font-size="14.00">+ HotelReservation()</text>
<text text-anchor="start" x="342.77" y="-1106.3" font-family="Times,serif" font-size="14.00"> + HotelReservation(physical_address: Address)</text>
<text text-anchor="start" x="342.77" y="-1091.3" font-family="Times,serif" font-size="14.00"> + copy(reservationType: String): Reservation</text>
<text text-anchor="start" x="342.77" y="-1076.3" font-family="Times,serif" font-size="14.00"> + ReservationType(): String</text>
<text text-anchor="start" x="342.77" y="-1061.3" font-family="Times,serif" font-size="14.00"> + checkValid(): boolean</text>
<text text-anchor="start" x="342.77" y="-1046.3" font-family="Times,serif" font-size="14.00"> + getPricePerNight(): float</text>
<text text-anchor="start" x="342.77" y="-1031.3" font-family="Times,serif" font-size="14.00"> + calculatePrice(): float</text>
</g>
<!-- HotelReservation&#45;&gt;Reservation -->
<g id="edge8" class="edge">
<g id="edge6" class="edge">
<title>HotelReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M878.79,-1130.81C887.96,-1120.49 897.6,-1110.04 907,-1100.5 942.09,-1064.91 981.89,-1028.02 1019.01,-994.95"/>
<polygon fill="none" stroke="black" points="1021.73,-997.21 1026.88,-987.95 1017.08,-991.97 1021.73,-997.21"/>
<text text-anchor="middle" x="941" y="-1084.1" font-family="Arial" font-size="8.00">extends</text>
</g>
<!-- CabinReservation -->
<g id="node15" class="node">
<title>CabinReservation</title>
<polygon fill="none" stroke="black" points="916.5,-1136.5 916.5,-1248.5 1059.5,-1248.5 1059.5,-1136.5 916.5,-1136.5"/>
<text text-anchor="middle" x="988" y="-1236.5" font-family="Arial" font-size="10.00">CabinReservation</text>
<polyline fill="none" stroke="black" points="916.5,-1229.5 1059.5,-1229.5 "/>
<text text-anchor="middle" x="988" y="-1217.5" font-family="Arial" font-size="10.00">extends Reservation</text>
<polyline fill="none" stroke="black" points="916.5,-1210.5 1059.5,-1210.5 "/>
<text text-anchor="start" x="924.5" y="-1198.5" font-family="Arial" font-size="10.00">+ CabinReservation()</text>
<text text-anchor="start" x="924.5" y="-1187.5" font-family="Arial" font-size="10.00">+ CabinReservation(Address)</text>
<text text-anchor="start" x="924.5" y="-1176.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="924.5" y="-1165.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="924.5" y="-1154.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="924.5" y="-1143.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
</g>
<!-- CabinReservation&#45;&gt;Reservation -->
<g id="edge9" class="edge">
<title>CabinReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M1017.14,-1136.26C1029.93,-1112 1045.71,-1082.09 1061.89,-1051.42"/>
<polygon fill="none" stroke="black" points="1065.13,-1052.79 1066.7,-1042.32 1058.93,-1049.53 1065.13,-1052.79"/>
<text text-anchor="middle" x="1061" y="-1084.1" font-family="Arial" font-size="8.00">extends</text>
<path fill="none" stroke="black" d="M446.96,-1023.2C421.93,-950.94 386.28,-848.07 369.58,-799.87"/>
<polygon fill="none" stroke="black" points="372.8,-798.48 366.22,-790.17 366.19,-800.77 372.8,-798.48"/>
</g>
<!-- HouseReservation -->
<g id="node16" class="node">
<g id="node15" class="node">
<title>HouseReservation</title>
<polygon fill="none" stroke="black" points="1078,-1131 1078,-1254 1224,-1254 1224,-1131 1078,-1131"/>
<text text-anchor="middle" x="1151" y="-1242" font-family="Arial" font-size="10.00">HouseReservation</text>
<polyline fill="none" stroke="black" points="1078,-1235 1224,-1235 "/>
<text text-anchor="middle" x="1151" y="-1223" font-family="Arial" font-size="10.00">extends Reservation</text>
<polyline fill="none" stroke="black" points="1078,-1216 1224,-1216 "/>
<text text-anchor="start" x="1086" y="-1204" font-family="Arial" font-size="10.00">+ HouseReservation()</text>
<text text-anchor="start" x="1086" y="-1193" font-family="Arial" font-size="10.00">+ HouseReservation(Address)</text>
<text text-anchor="start" x="1086" y="-1182" font-family="Arial" font-size="10.00">+ copy(String): Reservation</text>
<text text-anchor="start" x="1086" y="-1171" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1086" y="-1160" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="1086" y="-1149" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1086" y="-1138" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<polygon fill="lightyellow" stroke="black" points="632.27,-1023.5 632.27,-1182.5 916.27,-1182.5 916.27,-1023.5 632.27,-1023.5"/>
<text text-anchor="middle" x="774.27" y="-1167.3" font-family="Times,serif" font-size="14.00">HouseReservation</text>
<polyline fill="none" stroke="black" points="632.27,-1159.5 916.27,-1159.5 "/>
<text text-anchor="middle" x="774.27" y="-1144.3" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="632.27,-1136.5 916.27,-1136.5 "/>
<text text-anchor="start" x="640.27" y="-1121.3" font-family="Times,serif" font-size="14.00">+ HouseReservation()</text>
<text text-anchor="start" x="640.27" y="-1106.3" font-family="Times,serif" font-size="14.00"> + HouseReservation(physical_address: Address)</text>
<text text-anchor="start" x="640.27" y="-1091.3" font-family="Times,serif" font-size="14.00"> + copy(reservationType: String): Reservation</text>
<text text-anchor="start" x="640.27" y="-1076.3" font-family="Times,serif" font-size="14.00"> + ReservationType(): String</text>
<text text-anchor="start" x="640.27" y="-1061.3" font-family="Times,serif" font-size="14.00"> + checkValid(): boolean</text>
<text text-anchor="start" x="640.27" y="-1046.3" font-family="Times,serif" font-size="14.00"> + getPricePerNight(): float</text>
<text text-anchor="start" x="640.27" y="-1031.3" font-family="Times,serif" font-size="14.00"> + calculatePrice(): float</text>
</g>
<!-- HouseReservation&#45;&gt;Reservation -->
<g id="edge10" class="edge">
<g id="edge7" class="edge">
<title>HouseReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M1151,-1130.82C1151,-1107.89 1151,-1080.52 1151,-1052.46"/>
<polygon fill="none" stroke="black" points="1154.5,-1052.1 1151,-1042.1 1147.5,-1052.1 1154.5,-1052.1"/>
<text text-anchor="middle" x="1166" y="-1084.1" font-family="Arial" font-size="8.00">extends</text>
<path fill="none" stroke="black" d="M675.37,-1023.41C582.35,-949.49 448.86,-843.4 390.04,-796.65"/>
<polygon fill="none" stroke="black" points="391.92,-793.68 381.91,-790.2 387.56,-799.16 391.92,-793.68"/>
</g>
<!-- CabinReservation -->
<g id="node16" class="node">
<title>CabinReservation</title>
<polygon fill="lightyellow" stroke="black" points="35.77,-1031 35.77,-1175 316.77,-1175 316.77,-1031 35.77,-1031"/>
<text text-anchor="middle" x="176.27" y="-1159.8" font-family="Times,serif" font-size="14.00">CabinReservation</text>
<polyline fill="none" stroke="black" points="35.77,-1152 316.77,-1152 "/>
<text text-anchor="middle" x="176.27" y="-1136.8" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="35.77,-1129 316.77,-1129 "/>
<text text-anchor="start" x="43.77" y="-1113.8" font-family="Times,serif" font-size="14.00">+ CabinReservation()</text>
<text text-anchor="start" x="43.77" y="-1098.8" font-family="Times,serif" font-size="14.00"> + CabinReservation(physical_address: Address)</text>
<text text-anchor="start" x="43.77" y="-1083.8" font-family="Times,serif" font-size="14.00"> + ReservationType(): String</text>
<text text-anchor="start" x="43.77" y="-1068.8" font-family="Times,serif" font-size="14.00"> + checkValid(): boolean</text>
<text text-anchor="start" x="43.77" y="-1053.8" font-family="Times,serif" font-size="14.00"> + getPricePerNight(): float</text>
<text text-anchor="start" x="43.77" y="-1038.8" font-family="Times,serif" font-size="14.00"> + calculatePrice(): float</text>
</g>
<!-- CabinReservation&#45;&gt;Reservation -->
<g id="edge8" class="edge">
<title>CabinReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M216.2,-1030.61C257.01,-957.64 318.2,-848.22 345.83,-798.83"/>
<polygon fill="none" stroke="black" points="348.91,-800.49 350.73,-790.05 342.8,-797.07 348.91,-800.49"/>
</g>
<!-- TestReservations -->
<g id="node17" class="node">
<title>TestReservations</title>
<polygon fill="none" stroke="black" points="854.5,-1335 854.5,-1373 961.5,-1373 961.5,-1335 854.5,-1335"/>
<text text-anchor="middle" x="908" y="-1361" font-family="Arial" font-size="10.00">TestReservations</text>
<polyline fill="none" stroke="black" points="854.5,-1354 961.5,-1354 "/>
<text text-anchor="start" x="862.5" y="-1342" font-family="Arial" font-size="10.00">+ main(String[]): void</text>
<polygon fill="lightyellow" stroke="black" points="1292.77,-1595.5 1292.77,-1664.5 1461.77,-1664.5 1461.77,-1595.5 1292.77,-1595.5"/>
<text text-anchor="middle" x="1377.27" y="-1649.3" font-family="Times,serif" font-size="14.00">TestReservations</text>
<polyline fill="none" stroke="black" points="1292.77,-1641.5 1461.77,-1641.5 "/>
<text text-anchor="middle" x="1377.27" y="-1626.3" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="1292.77,-1618.5 1461.77,-1618.5 "/>
<text text-anchor="start" x="1300.77" y="-1603.3" font-family="Times,serif" font-size="14.00">+ main(args: String[]): void</text>
</g>
<!-- TestReservations&#45;&gt;AccomodationManager -->
<g id="edge17" class="edge">
<g id="edge21" class="edge">
<title>TestReservations&#45;&gt;AccomodationManager</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M854.41,-1343.33C822.57,-1336.23 782.09,-1324.77 749,-1307.5 735.08,-1300.23 721.24,-1291.44 707.99,-1282.01"/>
<polygon fill="black" stroke="black" points="699.83,-1276.06 710.56,-1278.31 703.87,-1279 707.91,-1281.95 707.91,-1281.95 707.91,-1281.95 703.87,-1279 705.26,-1285.58 699.83,-1276.06 699.83,-1276.06"/>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1353.34,-1595.47C1334.48,-1569.05 1306.86,-1530.36 1279.45,-1491.95"/>
<polygon fill="black" stroke="black" points="1273.61,-1483.76 1283.08,-1489.29 1276.51,-1487.83 1279.41,-1491.9 1279.41,-1491.9 1279.41,-1491.9 1276.51,-1487.83 1275.75,-1494.52 1273.61,-1483.76 1273.61,-1483.76"/>
<text text-anchor="middle" x="1305.27" y="-1505.8" font-family="Times,serif" font-size="14.00">uses</text>
</g>
<!-- TestReservations&#45;&gt;HotelReservation -->
<g id="edge18" class="edge">
<title>TestReservations&#45;&gt;HotelReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M898.82,-1334.7C890.01,-1317.14 876.14,-1289.47 863,-1263.27"/>
<polygon fill="black" stroke="black" points="858.39,-1254.08 866.89,-1261.01 860.63,-1258.55 862.87,-1263.02 862.87,-1263.02 862.87,-1263.02 860.63,-1258.55 858.85,-1265.04 858.39,-1254.08 858.39,-1254.08"/>
<!-- getRepositoryConfig -->
<g id="node18" class="node">
<title>getRepositoryConfig</title>
<polygon fill="lightyellow" stroke="black" points="1416.27,-1324.5 1416.27,-1393.5 1546.27,-1393.5 1546.27,-1324.5 1416.27,-1324.5"/>
<text text-anchor="middle" x="1481.27" y="-1378.3" font-family="Times,serif" font-size="14.00">getRepositoryConfig</text>
<polyline fill="none" stroke="black" points="1416.27,-1370.5 1546.27,-1370.5 "/>
<text text-anchor="middle" x="1481.27" y="-1355.3" font-family="Times,serif" font-size="14.00"> </text>
<polyline fill="none" stroke="black" points="1416.27,-1347.5 1546.27,-1347.5 "/>
<text text-anchor="start" x="1424.27" y="-1332.3" font-family="Times,serif" font-size="14.00">+ getPath(): String</text>
</g>
<!-- TestReservations&#45;&gt;CabinReservation -->
<g id="edge19" class="edge">
<title>TestReservations&#45;&gt;CabinReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M917.18,-1334.7C926.58,-1315.96 941.75,-1285.71 955.64,-1258.02"/>
<polygon fill="black" stroke="black" points="960.29,-1248.74 959.83,-1259.7 958.05,-1253.21 955.81,-1257.68 955.81,-1257.68 955.81,-1257.68 958.05,-1253.21 951.79,-1255.66 960.29,-1248.74 960.29,-1248.74"/>
</g>
<!-- TestReservations&#45;&gt;HouseReservation -->
<g id="edge20" class="edge">
<title>TestReservations&#45;&gt;HouseReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M961.5,-1346.8C994.55,-1340.9 1036.5,-1329.48 1068,-1307.5 1084.99,-1295.64 1099.83,-1279.16 1112.06,-1262.41"/>
<polygon fill="black" stroke="black" points="1117.86,-1254.19 1115.78,-1264.95 1114.98,-1258.27 1112.1,-1262.36 1112.1,-1262.36 1112.1,-1262.36 1114.98,-1258.27 1108.42,-1259.77 1117.86,-1254.19 1117.86,-1254.19"/>
<!-- TestReservations&#45;&gt;getRepositoryConfig -->
<g id="edge22" class="edge">
<title>TestReservations&#45;&gt;getRepositoryConfig</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1390.23,-1595.47C1409.04,-1546.82 1443.92,-1456.6 1464.62,-1403.07"/>
<polygon fill="black" stroke="black" points="1468.31,-1393.52 1468.9,-1404.47 1466.51,-1398.19 1464.7,-1402.85 1464.7,-1402.85 1464.7,-1402.85 1466.51,-1398.19 1460.51,-1401.23 1468.31,-1393.52 1468.31,-1393.52"/>
<text text-anchor="middle" x="1438.27" y="-1505.8" font-family="Times,serif" font-size="14.00">uses</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 38 KiB