doc update

This commit is contained in:
2025-09-20 23:44:13 -04:00
parent 6cafda5911
commit daeab34d7c
2 changed files with 272 additions and 270 deletions

View File

@@ -5,7 +5,8 @@
| -------- | ------- |
| Java | 21 |
| json lib | gson-2.13.1 |
| VSCode | 1.103 |
| VSCode | 1.103 |
| graphviz | 2.42.4 |
###
| extension |
@@ -23,6 +24,7 @@ java -cp .\libs\gson-2.13.1.jar;.\libs\reservationsystem.jar lodge.TestReservati
gradle clean build jar
### Dot file review for classdiagram
### dot -Tsvg classdiagram.dot -o classdiagram.svg
Install Graphviz in your OS
dot -Tsvg classdiagram.dot -o classdiagram.svg

View File

@@ -1,144 +1,144 @@
<?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="1881pt" height="1353pt"
viewBox="0.00 0.00 1881.00 1353.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="1900pt" height="1353pt"
viewBox="0.00 0.00 1900.00 1353.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 1349)">
<title>LodgeReservationSystem</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1349 1877,-1349 1877,4 -4,4"/>
<g id="clust4" class="cluster">
<title>cluster_lodge</title>
<polygon fill="lightcoral" stroke="lightcoral" points="1563,-1248 1563,-1337 1745,-1337 1745,-1248 1563,-1248"/>
<text text-anchor="middle" x="1654" y="-1321.8" font-family="Times New Roman,serif" font-size="14.00">lodge</text>
</g>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1349 1896,-1349 1896,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_data</title>
<polygon fill="lightgrey" stroke="lightgrey" points="8,-8 8,-963 1339,-963 1339,-8 8,-8"/>
<text text-anchor="middle" x="673.5" y="-947.8" font-family="Times New Roman,serif" font-size="14.00">lodge.data</text>
<polygon fill="lightgrey" stroke="lightgrey" points="8,-8 8,-963 1350,-963 1350,-8 8,-8"/>
<text text-anchor="middle" x="679" y="-947.8" font-family="Times,serif" font-size="14.00">lodge.data</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_reservation</title>
<polygon fill="lightblue" stroke="lightblue" points="839,-16 839,-532 1331,-532 1331,-16 839,-16"/>
<text text-anchor="middle" x="1085" y="-516.8" font-family="Times New Roman,serif" font-size="14.00">lodge.reservation</text>
<polygon fill="lightblue" stroke="lightblue" points="842,-16 842,-532 1342,-532 1342,-16 842,-16"/>
<text text-anchor="middle" x="1092" y="-516.8" font-family="Times,serif" font-size="14.00">lodge.reservation</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_reservationsystem</title>
<polygon fill="lightyellow" stroke="lightyellow" points="1347,-602.5 1347,-1220 1865,-1220 1865,-602.5 1347,-602.5"/>
<text text-anchor="middle" x="1606" y="-1204.8" font-family="Times New Roman,serif" font-size="14.00">lodge.reservationsystem</text>
<polygon fill="lightyellow" stroke="lightyellow" points="1358,-602.5 1358,-1220 1884,-1220 1884,-602.5 1358,-602.5"/>
<text text-anchor="middle" x="1621" y="-1204.8" font-family="Times,serif" font-size="14.00">lodge.reservationsystem</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_lodge</title>
<polygon fill="lightcoral" stroke="lightcoral" points="1577,-1248 1577,-1337 1761,-1337 1761,-1248 1577,-1248"/>
<text text-anchor="middle" x="1669" y="-1321.8" font-family="Times,serif" font-size="14.00">lodge</text>
</g>
<!-- Account -->
<g id="node1" class="node">
<title>Account</title>
<polygon fill="none" stroke="black" points="835.5,-568.5 835.5,-757.5 1068.5,-757.5 1068.5,-568.5 835.5,-568.5"/>
<text text-anchor="middle" x="952" y="-745.5" font-family="Arial" font-size="10.00">Account</text>
<polyline fill="none" stroke="black" points="835.5,-738.5 1068.5,-738.5 "/>
<text text-anchor="start" x="843.5" y="-726.5" font-family="Arial" font-size="10.00">+ account_number: String</text>
<text text-anchor="start" x="843.5" y="-715.5" font-family="Arial" font-size="10.00">+ phone_number: String</text>
<text text-anchor="start" x="843.5" y="-704.5" font-family="Arial" font-size="10.00">+ mailing_address: Address</text>
<text text-anchor="start" x="843.5" y="-693.5" font-family="Arial" font-size="10.00">+ email_address: EmailAddress</text>
<text text-anchor="start" x="843.5" y="-682.5" font-family="Arial" font-size="10.00">&#45; reservations: AccountReservationList</text>
<polyline fill="none" stroke="black" points="835.5,-675.5 1068.5,-675.5 "/>
<text text-anchor="start" x="843.5" y="-663.5" font-family="Arial" font-size="10.00">+ Account()</text>
<text text-anchor="start" x="843.5" y="-652.5" font-family="Arial" font-size="10.00">+ Account(String, String, Address, EmailAddress)</text>
<text text-anchor="start" x="843.5" y="-641.5" font-family="Arial" font-size="10.00">+ Account(String, Address, EmailAddress)</text>
<text text-anchor="start" x="843.5" y="-630.5" font-family="Arial" font-size="10.00">+ add(Reservation): boolean</text>
<text text-anchor="start" x="843.5" y="-619.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
<text text-anchor="start" x="843.5" y="-608.5" font-family="Arial" font-size="10.00">+ getAllReservations(): ListIterator&lt;IReservation&gt;</text>
<text text-anchor="start" x="843.5" y="-597.5" font-family="Arial" font-size="10.00">+ update(Account): void</text>
<text text-anchor="start" x="843.5" y="-586.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<text text-anchor="start" x="843.5" y="-575.5" font-family="Arial" font-size="10.00">+ static Write(Account): void</text>
<polygon fill="none" stroke="black" points="839,-568.5 839,-757.5 1073,-757.5 1073,-568.5 839,-568.5"/>
<text text-anchor="middle" x="956" y="-745.5" font-family="Arial" font-size="10.00">Account</text>
<polyline fill="none" stroke="black" points="839,-738.5 1073,-738.5 "/>
<text text-anchor="start" x="847" y="-726.5" font-family="Arial" font-size="10.00">+ account_number: String</text>
<text text-anchor="start" x="847" y="-715.5" font-family="Arial" font-size="10.00">+ phone_number: String</text>
<text text-anchor="start" x="847" y="-704.5" font-family="Arial" font-size="10.00">+ mailing_address: Address</text>
<text text-anchor="start" x="847" y="-693.5" font-family="Arial" font-size="10.00">+ email_address: EmailAddress</text>
<text text-anchor="start" x="847" y="-682.5" font-family="Arial" font-size="10.00">&#45; reservations: AccountReservationList</text>
<polyline fill="none" stroke="black" points="839,-675.5 1073,-675.5 "/>
<text text-anchor="start" x="847" y="-663.5" font-family="Arial" font-size="10.00">+ Account()</text>
<text text-anchor="start" x="847" y="-652.5" font-family="Arial" font-size="10.00">+ Account(String, String, Address, EmailAddress)</text>
<text text-anchor="start" x="847" y="-641.5" font-family="Arial" font-size="10.00">+ Account(String, Address, EmailAddress)</text>
<text text-anchor="start" x="847" y="-630.5" font-family="Arial" font-size="10.00">+ add(Reservation): boolean</text>
<text text-anchor="start" x="847" y="-619.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
<text text-anchor="start" x="847" y="-608.5" font-family="Arial" font-size="10.00">+ getAllReservations(): ListIterator&lt;IReservation&gt;</text>
<text text-anchor="start" x="847" y="-597.5" font-family="Arial" font-size="10.00">+ update(Account): void</text>
<text text-anchor="start" x="847" y="-586.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<text text-anchor="start" x="847" y="-575.5" font-family="Arial" font-size="10.00">+ static Write(Account): void</text>
</g>
<!-- Address -->
<g id="node3" class="node">
<title>Address</title>
<polygon fill="none" stroke="black" points="204,-24.5 204,-158.5 392,-158.5 392,-24.5 204,-24.5"/>
<polygon fill="none" stroke="black" points="204.5,-24.5 204.5,-158.5 391.5,-158.5 391.5,-24.5 204.5,-24.5"/>
<text text-anchor="middle" x="298" y="-146.5" font-family="Arial" font-size="10.00">Address</text>
<polyline fill="none" stroke="black" points="204,-139.5 392,-139.5 "/>
<text text-anchor="start" x="212" y="-127.5" font-family="Arial" font-size="10.00">+ street: String</text>
<text text-anchor="start" x="212" y="-116.5" font-family="Arial" font-size="10.00">+ city: String</text>
<text text-anchor="start" x="212" y="-105.5" font-family="Arial" font-size="10.00">+ state: String</text>
<text text-anchor="start" x="212" y="-94.5" font-family="Arial" font-size="10.00">+ zip: String</text>
<polyline fill="none" stroke="black" points="204,-87.5 392,-87.5 "/>
<text text-anchor="start" x="212" y="-75.5" font-family="Arial" font-size="10.00">+ Address(String, String, String, String)</text>
<text text-anchor="start" x="212" y="-64.5" font-family="Arial" font-size="10.00">+ getters/setters</text>
<text text-anchor="start" x="212" y="-53.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="212" y="-42.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="212" y="-31.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<polyline fill="none" stroke="black" points="204.5,-139.5 391.5,-139.5 "/>
<text text-anchor="start" x="212.5" y="-127.5" font-family="Arial" font-size="10.00">+ street: String</text>
<text text-anchor="start" x="212.5" y="-116.5" font-family="Arial" font-size="10.00">+ city: String</text>
<text text-anchor="start" x="212.5" y="-105.5" font-family="Arial" font-size="10.00">+ state: String</text>
<text text-anchor="start" x="212.5" y="-94.5" font-family="Arial" font-size="10.00">+ zip: String</text>
<polyline fill="none" stroke="black" points="204.5,-87.5 391.5,-87.5 "/>
<text text-anchor="start" x="212.5" y="-75.5" font-family="Arial" font-size="10.00">+ Address(String, String, String, String)</text>
<text text-anchor="start" x="212.5" y="-64.5" font-family="Arial" font-size="10.00">+ getters/setters</text>
<text text-anchor="start" x="212.5" y="-53.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="212.5" y="-42.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="212.5" y="-31.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
</g>
<!-- Account&#45;&gt;Address -->
<g id="edge6" class="edge">
<title>Account&#45;&gt;Address</title>
<path fill="none" stroke="black" d="M835.42,-650.02C754.97,-635.47 651.92,-603.27 591,-532 564.91,-501.47 552,-204.78 523,-177 486.05,-141.6 456.47,-173.43 403.67,-159.14"/>
<polygon fill="black" stroke="black" points="403.45,-159.07 396.5,-161.01 392.04,-155.35 398.98,-153.41 403.45,-159.07"/>
<text text-anchor="middle" x="626.5" y="-355.8" font-family="Arial" font-size="9.00">mailing_address</text>
<path fill="none" stroke="black" d="M838.89,-642.37C762.29,-624.51 664,-591.48 595,-532 459.29,-415.02 518.83,-314.53 404,-177 401.28,-173.74 398.41,-170.52 395.44,-167.35"/>
<polygon fill="black" stroke="black" points="395.21,-167.11 388.15,-165.64 386.79,-158.56 393.85,-160.03 395.21,-167.11"/>
<text text-anchor="middle" x="629.5" y="-355.8" font-family="Arial" font-size="9.00">mailing_address</text>
</g>
<!-- EmailAddress -->
<g id="node4" class="node">
<title>EmailAddress</title>
<polygon fill="none" stroke="black" points="671,-302 671,-414 829,-414 829,-302 671,-302"/>
<text text-anchor="middle" x="750" y="-402" font-family="Arial" font-size="10.00">EmailAddress</text>
<polyline fill="none" stroke="black" points="671,-395 829,-395 "/>
<text text-anchor="start" x="679" y="-383" font-family="Arial" font-size="10.00">+ email_address: String</text>
<polyline fill="none" stroke="black" points="671,-376 829,-376 "/>
<text text-anchor="start" x="679" y="-364" font-family="Arial" font-size="10.00">+ EmailAddress(String)</text>
<text text-anchor="start" x="679" y="-353" font-family="Arial" font-size="10.00">+ getEmail_address(): String</text>
<text text-anchor="start" x="679" y="-342" font-family="Arial" font-size="10.00">+ setEmail_address(String): void</text>
<text text-anchor="start" x="679" y="-331" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="679" y="-320" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="679" y="-309" font-family="Arial" font-size="10.00">+ toString(): String</text>
<polygon fill="none" stroke="black" points="673.5,-302 673.5,-414 832.5,-414 832.5,-302 673.5,-302"/>
<text text-anchor="middle" x="753" y="-402" font-family="Arial" font-size="10.00">EmailAddress</text>
<polyline fill="none" stroke="black" points="673.5,-395 832.5,-395 "/>
<text text-anchor="start" x="681.5" y="-383" font-family="Arial" font-size="10.00">+ email_address: String</text>
<polyline fill="none" stroke="black" points="673.5,-376 832.5,-376 "/>
<text text-anchor="start" x="681.5" y="-364" font-family="Arial" font-size="10.00">+ EmailAddress(String)</text>
<text text-anchor="start" x="681.5" y="-353" font-family="Arial" font-size="10.00">+ getEmail_address(): String</text>
<text text-anchor="start" x="681.5" y="-342" font-family="Arial" font-size="10.00">+ setEmail_address(String): void</text>
<text text-anchor="start" x="681.5" y="-331" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="681.5" y="-320" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="681.5" y="-309" font-family="Arial" font-size="10.00">+ toString(): String</text>
</g>
<!-- Account&#45;&gt;EmailAddress -->
<g id="edge7" class="edge">
<title>Account&#45;&gt;EmailAddress</title>
<path fill="none" stroke="black" d="M862.27,-568.27C852.58,-556.44 843.25,-544.2 835,-532 812.43,-498.63 792.29,-458.39 777.28,-425.11"/>
<polygon fill="black" stroke="black" points="777.27,-425.08 771.18,-421.22 772.4,-414.12 778.49,-417.97 777.27,-425.08"/>
<text text-anchor="middle" x="878" y="-542.8" font-family="Arial" font-size="9.00">email_address</text>
<path fill="none" stroke="black" d="M865.48,-568.33C855.7,-556.49 846.31,-544.23 838,-532 815.36,-498.68 795.21,-458.44 780.22,-425.15"/>
<polygon fill="black" stroke="black" points="780.21,-425.12 774.12,-421.26 775.34,-414.15 781.43,-418.01 780.21,-425.12"/>
<text text-anchor="middle" x="880.5" y="-542.8" font-family="Arial" font-size="9.00">email_address</text>
</g>
<!-- AccountReservationList -->
<g id="node11" class="node">
<title>AccountReservationList</title>
<polygon fill="none" stroke="black" points="847.5,-307.5 847.5,-408.5 1056.5,-408.5 1056.5,-307.5 847.5,-307.5"/>
<text text-anchor="middle" x="952" y="-396.5" font-family="Arial" font-size="10.00">AccountReservationList</text>
<polyline fill="none" stroke="black" points="847.5,-389.5 1056.5,-389.5 "/>
<text text-anchor="middle" x="952" y="-377.5" font-family="Arial" font-size="10.00">extends ArrayList&lt;IReservation&gt;</text>
<polyline fill="none" stroke="black" points="847.5,-370.5 1056.5,-370.5 "/>
<text text-anchor="start" x="855.5" y="-358.5" font-family="Arial" font-size="10.00">&#45; static reservationSerial(Reservation): String</text>
<text text-anchor="start" x="855.5" y="-347.5" font-family="Arial" font-size="10.00">+ add(IReservation): boolean</text>
<text text-anchor="start" x="855.5" y="-336.5" font-family="Arial" font-size="10.00">+ find(String): Reservation</text>
<text text-anchor="start" x="855.5" y="-325.5" font-family="Arial" font-size="10.00">+ update(AccountReservationList): void</text>
<text text-anchor="start" x="855.5" y="-314.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<polygon fill="none" stroke="black" points="850,-307.5 850,-408.5 1062,-408.5 1062,-307.5 850,-307.5"/>
<text text-anchor="middle" x="956" y="-396.5" font-family="Arial" font-size="10.00">AccountReservationList</text>
<polyline fill="none" stroke="black" points="850,-389.5 1062,-389.5 "/>
<text text-anchor="middle" x="956" y="-377.5" font-family="Arial" font-size="10.00">extends ArrayList&lt;IReservation&gt;</text>
<polyline fill="none" stroke="black" points="850,-370.5 1062,-370.5 "/>
<text text-anchor="start" x="858" y="-358.5" font-family="Arial" font-size="10.00">&#45; static reservationSerial(Reservation): String</text>
<text text-anchor="start" x="858" y="-347.5" font-family="Arial" font-size="10.00">+ add(IReservation): boolean</text>
<text text-anchor="start" x="858" y="-336.5" font-family="Arial" font-size="10.00">+ find(String): Reservation</text>
<text text-anchor="start" x="858" y="-325.5" font-family="Arial" font-size="10.00">+ update(AccountReservationList): void</text>
<text text-anchor="start" x="858" y="-314.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
</g>
<!-- Account&#45;&gt;AccountReservationList -->
<g id="edge5" class="edge">
<title>Account&#45;&gt;AccountReservationList</title>
<path fill="none" stroke="black" d="M952,-568.2C952,-520.27 952,-463.28 952,-420.9"/>
<polygon fill="black" stroke="black" points="952,-420.79 948,-414.79 952,-408.79 956,-414.79 952,-420.79"/>
<text text-anchor="middle" x="970" y="-542.8" font-family="Arial" font-size="9.00">contains</text>
<path fill="none" stroke="black" d="M956,-568.2C956,-520.27 956,-463.28 956,-420.9"/>
<polygon fill="black" stroke="black" points="956,-420.79 952,-414.79 956,-408.79 960,-414.79 956,-420.79"/>
<text text-anchor="middle" x="973.5" y="-542.8" font-family="Arial" font-size="9.00">contains</text>
</g>
<!-- AccountList -->
<g id="node2" class="node">
<title>AccountList</title>
<polygon fill="none" stroke="black" points="1010,-819.5 1010,-931.5 1268,-931.5 1268,-819.5 1010,-819.5"/>
<text text-anchor="middle" x="1139" y="-919.5" font-family="Arial" font-size="10.00">AccountList</text>
<polyline fill="none" stroke="black" points="1010,-912.5 1268,-912.5 "/>
<text text-anchor="middle" x="1139" y="-900.5" font-family="Arial" font-size="10.00">extends ArrayList&lt;Account&gt;</text>
<polyline fill="none" stroke="black" points="1010,-893.5 1268,-893.5 "/>
<text text-anchor="start" x="1018" y="-881.5" font-family="Arial" font-size="10.00">+ static accountSerial(...): String</text>
<text text-anchor="start" x="1018" y="-870.5" font-family="Arial" font-size="10.00">+ add(Account): boolean</text>
<text text-anchor="start" x="1018" y="-859.5" font-family="Arial" font-size="10.00">+ save(Account): void</text>
<text text-anchor="start" x="1018" y="-848.5" font-family="Arial" font-size="10.00">+ find(String): Account</text>
<text text-anchor="start" x="1018" y="-837.5" font-family="Arial" font-size="10.00">+ getListOfReservations(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="1018" y="-826.5" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
<polygon fill="none" stroke="black" points="1014,-819.5 1014,-931.5 1278,-931.5 1278,-819.5 1014,-819.5"/>
<text text-anchor="middle" x="1146" y="-919.5" font-family="Arial" font-size="10.00">AccountList</text>
<polyline fill="none" stroke="black" points="1014,-912.5 1278,-912.5 "/>
<text text-anchor="middle" x="1146" y="-900.5" font-family="Arial" font-size="10.00">extends ArrayList&lt;Account&gt;</text>
<polyline fill="none" stroke="black" points="1014,-893.5 1278,-893.5 "/>
<text text-anchor="start" x="1022" y="-881.5" font-family="Arial" font-size="10.00">+ static accountSerial(...): String</text>
<text text-anchor="start" x="1022" y="-870.5" font-family="Arial" font-size="10.00">+ add(Account): boolean</text>
<text text-anchor="start" x="1022" y="-859.5" font-family="Arial" font-size="10.00">+ save(Account): void</text>
<text text-anchor="start" x="1022" y="-848.5" font-family="Arial" font-size="10.00">+ find(String): Account</text>
<text text-anchor="start" x="1022" y="-837.5" font-family="Arial" font-size="10.00">+ getListOfReservations(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="1022" y="-826.5" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
</g>
<!-- AccountList&#45;&gt;Account -->
<g id="edge8" class="edge">
<title>AccountList&#45;&gt;Account</title>
<path fill="none" stroke="black" d="M1090.11,-819.47C1075.83,-803.39 1059.73,-785.27 1043.7,-767.23"/>
<polygon fill="black" stroke="black" points="1043.31,-766.78 1036.33,-764.95 1035.34,-757.81 1042.31,-759.64 1043.31,-766.78"/>
<text text-anchor="middle" x="1075" y="-778.8" font-family="Arial" font-size="9.00">contains</text>
<path fill="none" stroke="black" d="M1096.33,-819.47C1081.68,-803.24 1065.16,-784.94 1048.73,-766.73"/>
<polygon fill="none" stroke="black" points="1048.72,-766.72 1041.73,-764.95 1040.68,-757.81 1047.66,-759.59 1048.72,-766.72"/>
<text text-anchor="middle" x="1080.5" y="-778.8" font-family="Arial" font-size="9.00">contains</text>
</g>
<!-- KitchenTypeEnum -->
<g id="node5" class="node">
@@ -155,11 +155,11 @@
<!-- ReservationStatusEnum -->
<g id="node6" class="node">
<title>ReservationStatusEnum</title>
<polygon fill="none" stroke="black" points="524.5,-52 524.5,-131 645.5,-131 645.5,-52 524.5,-52"/>
<text text-anchor="middle" x="585" y="-119" font-family="Arial" font-size="10.00">ReservationStatusEnum</text>
<polyline fill="none" stroke="black" points="524.5,-112 645.5,-112 "/>
<text text-anchor="middle" x="585" y="-100" font-family="Arial" font-size="10.00">&lt;&lt;enumeration&gt;&gt;</text>
<polyline fill="none" stroke="black" points="524.5,-93 645.5,-93 "/>
<polygon fill="none" stroke="black" points="524.5,-52 524.5,-131 647.5,-131 647.5,-52 524.5,-52"/>
<text text-anchor="middle" x="586" y="-119" font-family="Arial" font-size="10.00">ReservationStatusEnum</text>
<polyline fill="none" stroke="black" points="524.5,-112 647.5,-112 "/>
<text text-anchor="middle" x="586" y="-100" font-family="Arial" font-size="10.00">&lt;&lt;enumeration&gt;&gt;</text>
<polyline fill="none" stroke="black" points="524.5,-93 647.5,-93 "/>
<text text-anchor="start" x="532.5" y="-81" font-family="Arial" font-size="10.00">Draft</text>
<text text-anchor="start" x="532.5" y="-70" font-family="Arial" font-size="10.00">Canceled</text>
<text text-anchor="start" x="532.5" y="-59" font-family="Arial" font-size="10.00">Completed</text>
@@ -178,292 +178,292 @@
<!-- IllegalOperationException -->
<g id="node8" class="node">
<title>IllegalOperationException</title>
<polygon fill="none" stroke="black" points="663.5,-57.5 663.5,-125.5 830.5,-125.5 830.5,-57.5 663.5,-57.5"/>
<text text-anchor="middle" x="747" y="-113.5" font-family="Arial" font-size="10.00">IllegalOperationException</text>
<polyline fill="none" stroke="black" points="663.5,-106.5 830.5,-106.5 "/>
<text text-anchor="middle" x="747" y="-94.5" font-family="Arial" font-size="10.00">extends RuntimeException</text>
<polyline fill="none" stroke="black" points="663.5,-87.5 830.5,-87.5 "/>
<text text-anchor="start" x="671.5" y="-75.5" font-family="Arial" font-size="10.00">+ IllegalOperationException()</text>
<text text-anchor="start" x="671.5" y="-64.5" font-family="Arial" font-size="10.00">+ IllegalOperationException(String)</text>
<polygon fill="none" stroke="black" points="666,-57.5 666,-125.5 834,-125.5 834,-57.5 666,-57.5"/>
<text text-anchor="middle" x="750" y="-113.5" font-family="Arial" font-size="10.00">IllegalOperationException</text>
<polyline fill="none" stroke="black" points="666,-106.5 834,-106.5 "/>
<text text-anchor="middle" x="750" y="-94.5" font-family="Arial" font-size="10.00">extends RuntimeException</text>
<polyline fill="none" stroke="black" points="666,-87.5 834,-87.5 "/>
<text text-anchor="start" x="674" y="-75.5" font-family="Arial" font-size="10.00">+ IllegalOperationException()</text>
<text text-anchor="start" x="674" y="-64.5" font-family="Arial" font-size="10.00">+ IllegalOperationException(String)</text>
</g>
<!-- IReservation -->
<g id="node9" class="node">
<title>IReservation</title>
<polygon fill="none" stroke="black" points="993,-24.5 993,-158.5 1157,-158.5 1157,-24.5 993,-24.5"/>
<text text-anchor="middle" x="1075" y="-146.5" font-family="Arial" font-size="10.00">IReservation</text>
<polyline fill="none" stroke="black" points="993,-139.5 1157,-139.5 "/>
<text text-anchor="middle" x="1075" y="-127.5" font-family="Arial" font-size="10.00">&lt;&lt;interface&gt;&gt;</text>
<polyline fill="none" stroke="black" points="993,-120.5 1157,-120.5 "/>
<text text-anchor="start" x="1001" y="-108.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1001" y="-97.5" font-family="Arial" font-size="10.00">+ static copy(String): Reservation</text>
<text text-anchor="start" x="1001" y="-86.5" font-family="Arial" font-size="10.00">+ getReservation_number(): String</text>
<text text-anchor="start" x="1001" y="-75.5" font-family="Arial" font-size="10.00">+ getAccountNumber(): String</text>
<text text-anchor="start" x="1001" y="-64.5" font-family="Arial" font-size="10.00">+ getPhysical_address(): Address</text>
<text text-anchor="start" x="1001" y="-53.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1001" y="-42.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<text text-anchor="start" x="1001" y="-31.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<polygon fill="none" stroke="black" points="953.5,-24.5 953.5,-158.5 1120.5,-158.5 1120.5,-24.5 953.5,-24.5"/>
<text text-anchor="middle" x="1037" y="-146.5" font-family="Arial" font-size="10.00">IReservation</text>
<polyline fill="none" stroke="black" points="953.5,-139.5 1120.5,-139.5 "/>
<text text-anchor="middle" x="1037" y="-127.5" font-family="Arial" font-size="10.00">&lt;&lt;interface&gt;&gt;</text>
<polyline fill="none" stroke="black" points="953.5,-120.5 1120.5,-120.5 "/>
<text text-anchor="start" x="961.5" y="-108.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="961.5" y="-97.5" font-family="Arial" font-size="10.00">+ static copy(String): Reservation</text>
<text text-anchor="start" x="961.5" y="-86.5" font-family="Arial" font-size="10.00">+ getReservation_number(): String</text>
<text text-anchor="start" x="961.5" y="-75.5" font-family="Arial" font-size="10.00">+ getAccountNumber(): String</text>
<text text-anchor="start" x="961.5" y="-64.5" font-family="Arial" font-size="10.00">+ getPhysical_address(): Address</text>
<text text-anchor="start" x="961.5" y="-53.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="961.5" y="-42.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<text text-anchor="start" x="961.5" y="-31.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
</g>
<!-- Reservation -->
<g id="node10" class="node">
<title>Reservation</title>
<polygon fill="none" stroke="black" points="1075,-215.5 1075,-500.5 1323,-500.5 1323,-215.5 1075,-215.5"/>
<text text-anchor="middle" x="1199" y="-488.5" font-family="Arial" font-size="10.00">Reservation</text>
<polyline fill="none" stroke="black" points="1075,-481.5 1323,-481.5 "/>
<text text-anchor="middle" x="1199" y="-469.5" font-family="Arial" font-size="10.00">&lt;&lt;abstract&gt;&gt;</text>
<polyline fill="none" stroke="black" points="1075,-462.5 1323,-462.5 "/>
<text text-anchor="start" x="1083" y="-450.5" font-family="Arial" font-size="10.00"># type: char</text>
<text text-anchor="start" x="1083" y="-439.5" font-family="Arial" font-size="10.00"># reservation_number: String</text>
<text text-anchor="start" x="1083" y="-428.5" font-family="Arial" font-size="10.00"># physical_address: Address</text>
<text text-anchor="start" x="1083" y="-417.5" font-family="Arial" font-size="10.00"># mailing_address: Address</text>
<text text-anchor="start" x="1083" y="-406.5" font-family="Arial" font-size="10.00"># reservation_start_date: ZonedDateTime</text>
<text text-anchor="start" x="1083" y="-395.5" font-family="Arial" font-size="10.00"># reservation_end_date: ZonedDateTime</text>
<text text-anchor="start" x="1083" y="-384.5" font-family="Arial" font-size="10.00"># reservation_status: ReservationStatusEnum</text>
<text text-anchor="start" x="1083" y="-373.5" font-family="Arial" font-size="10.00"># kitchen: KitchenTypeEnum</text>
<text text-anchor="start" x="1083" y="-362.5" font-family="Arial" font-size="10.00"># numberOfBeds: Integer</text>
<text text-anchor="start" x="1083" y="-351.5" font-family="Arial" font-size="10.00"># numberOfBedRooms: Integer</text>
<text text-anchor="start" x="1083" y="-340.5" font-family="Arial" font-size="10.00"># numberOfBathRooms: Integer</text>
<text text-anchor="start" x="1083" y="-329.5" font-family="Arial" font-size="10.00"># numberOfFloors: Integer</text>
<text text-anchor="start" x="1083" y="-318.5" font-family="Arial" font-size="10.00"># squareFeet: Integer</text>
<text text-anchor="start" x="1083" y="-307.5" font-family="Arial" font-size="10.00"># price: Float</text>
<text text-anchor="start" x="1083" y="-296.5" font-family="Arial" font-size="10.00"># accountNumber: String</text>
<polyline fill="none" stroke="black" points="1075,-289.5 1323,-289.5 "/>
<text text-anchor="start" x="1083" y="-277.5" font-family="Arial" font-size="10.00"># Reservation()</text>
<text text-anchor="start" x="1083" y="-266.5" font-family="Arial" font-size="10.00">+ getters/setters</text>
<text text-anchor="start" x="1083" y="-255.5" font-family="Arial" font-size="10.00">+ Write(Reservation): void</text>
<text text-anchor="start" x="1083" y="-244.5" font-family="Arial" font-size="10.00">+ Change(Reservation, ReservationStatusEnum): void</text>
<text text-anchor="start" x="1083" y="-233.5" font-family="Arial" font-size="10.00">+ update(Reservation): void</text>
<text text-anchor="start" x="1083" y="-222.5" font-family="Arial" font-size="10.00">+ abstract ReservationType(): String</text>
<polygon fill="none" stroke="black" points="1080,-215.5 1080,-500.5 1334,-500.5 1334,-215.5 1080,-215.5"/>
<text text-anchor="middle" x="1207" y="-488.5" font-family="Arial" font-size="10.00">Reservation</text>
<polyline fill="none" stroke="black" points="1080,-481.5 1334,-481.5 "/>
<text text-anchor="middle" x="1207" y="-469.5" font-family="Arial" font-size="10.00">&lt;&lt;abstract&gt;&gt;</text>
<polyline fill="none" stroke="black" points="1080,-462.5 1334,-462.5 "/>
<text text-anchor="start" x="1088" y="-450.5" font-family="Arial" font-size="10.00"># type: char</text>
<text text-anchor="start" x="1088" y="-439.5" font-family="Arial" font-size="10.00"># reservation_number: String</text>
<text text-anchor="start" x="1088" y="-428.5" font-family="Arial" font-size="10.00"># physical_address: Address</text>
<text text-anchor="start" x="1088" y="-417.5" font-family="Arial" font-size="10.00"># mailing_address: Address</text>
<text text-anchor="start" x="1088" y="-406.5" font-family="Arial" font-size="10.00"># reservation_start_date: ZonedDateTime</text>
<text text-anchor="start" x="1088" y="-395.5" font-family="Arial" font-size="10.00"># reservation_end_date: ZonedDateTime</text>
<text text-anchor="start" x="1088" y="-384.5" font-family="Arial" font-size="10.00"># reservation_status: ReservationStatusEnum</text>
<text text-anchor="start" x="1088" y="-373.5" font-family="Arial" font-size="10.00"># kitchen: KitchenTypeEnum</text>
<text text-anchor="start" x="1088" y="-362.5" font-family="Arial" font-size="10.00"># numberOfBeds: Integer</text>
<text text-anchor="start" x="1088" y="-351.5" font-family="Arial" font-size="10.00"># numberOfBedRooms: Integer</text>
<text text-anchor="start" x="1088" y="-340.5" font-family="Arial" font-size="10.00"># numberOfBathRooms: Integer</text>
<text text-anchor="start" x="1088" y="-329.5" font-family="Arial" font-size="10.00"># numberOfFloors: Integer</text>
<text text-anchor="start" x="1088" y="-318.5" font-family="Arial" font-size="10.00"># squareFeet: Integer</text>
<text text-anchor="start" x="1088" y="-307.5" font-family="Arial" font-size="10.00"># price: Float</text>
<text text-anchor="start" x="1088" y="-296.5" font-family="Arial" font-size="10.00"># accountNumber: String</text>
<polyline fill="none" stroke="black" points="1080,-289.5 1334,-289.5 "/>
<text text-anchor="start" x="1088" y="-277.5" font-family="Arial" font-size="10.00"># Reservation()</text>
<text text-anchor="start" x="1088" y="-266.5" font-family="Arial" font-size="10.00">+ getters/setters</text>
<text text-anchor="start" x="1088" y="-255.5" font-family="Arial" font-size="10.00">+ Write(Reservation): void</text>
<text text-anchor="start" x="1088" y="-244.5" font-family="Arial" font-size="10.00">+ Change(Reservation, ReservationStatusEnum): void</text>
<text text-anchor="start" x="1088" y="-233.5" font-family="Arial" font-size="10.00">+ update(Reservation): void</text>
<text text-anchor="start" x="1088" y="-222.5" font-family="Arial" font-size="10.00">+ abstract ReservationType(): String</text>
</g>
<!-- Reservation&#45;&gt;Address -->
<g id="edge10" class="edge">
<title>Reservation&#45;&gt;Address</title>
<path fill="none" stroke="black" d="M1074.6,-219.76C1071.44,-218.06 1068.24,-216.47 1065,-215 1018.03,-193.65 651.92,-205.34 601,-197 569.91,-191.91 563.81,-183.59 533,-177 478.72,-165.39 459,-177.79 403.6,-159.48"/>
<polygon fill="black" stroke="black" points="403.34,-159.39 396.35,-161.16 392.02,-155.4 399.01,-153.62 403.34,-159.39"/>
<text text-anchor="middle" x="638" y="-189.8" font-family="Arial" font-size="9.00">physical_address</text>
<text text-anchor="middle" x="638" y="-179.8" font-family="Arial" font-size="9.00">mailing_address</text>
<path fill="none" stroke="black" d="M1079.78,-219.25C1076.89,-217.74 1073.96,-216.32 1071,-215 1015.37,-190.16 583.07,-207.15 523,-197 470.5,-188.13 454.42,-183.65 402.58,-159.54"/>
<polygon fill="black" stroke="black" points="402.58,-159.54 395.45,-160.62 391.71,-154.45 398.84,-153.37 402.58,-159.54"/>
<text text-anchor="middle" x="559.5" y="-189.8" font-family="Arial" font-size="9.00">physical_address</text>
<text text-anchor="middle" x="559.5" y="-179.8" font-family="Arial" font-size="9.00">mailing_address</text>
</g>
<!-- Reservation&#45;&gt;KitchenTypeEnum -->
<g id="edge11" class="edge">
<title>Reservation&#45;&gt;KitchenTypeEnum</title>
<path fill="none" stroke="black" d="M1074.57,-219.82C1071.42,-218.11 1068.23,-216.49 1065,-215 995.93,-183.03 796.93,-215.06 723,-197 702.13,-191.9 699.71,-182.69 679,-177 608.29,-157.58 579.84,-193.23 515,-159 506.21,-154.36 498.19,-147.75 491.12,-140.48"/>
<polygon fill="black" stroke="black" points="490.67,-139.98 483.69,-138.16 482.69,-131.02 489.67,-132.84 490.67,-139.98"/>
<text text-anchor="middle" x="738" y="-184.8" font-family="Arial" font-size="9.00">kitchen</text>
<path fill="none" stroke="black" d="M1079.76,-219.3C1076.87,-217.78 1073.95,-216.34 1071,-215 1031.2,-196.92 721.23,-203.46 678,-197 642.61,-191.71 634.85,-185.15 600,-177 562.4,-168.2 548.21,-178.7 515,-159 506.72,-154.09 499.06,-147.54 492.2,-140.47"/>
<polygon fill="black" stroke="black" points="491.99,-140.24 485.01,-138.45 483.97,-131.31 490.96,-133.1 491.99,-140.24"/>
<text text-anchor="middle" x="693" y="-184.8" font-family="Arial" font-size="9.00">kitchen</text>
</g>
<!-- Reservation&#45;&gt;ReservationStatusEnum -->
<g id="edge12" class="edge">
<title>Reservation&#45;&gt;ReservationStatusEnum</title>
<path fill="none" stroke="black" d="M1074.97,-220.18C1071.69,-218.34 1068.36,-216.61 1065,-215 1017.94,-192.52 882.4,-205.84 831,-197 797.42,-191.22 790.26,-184.38 757,-177 711.63,-166.93 695.43,-180.05 654,-159 644.09,-153.96 634.65,-147.03 626.11,-139.52"/>
<polygon fill="black" stroke="black" points="625.99,-139.41 618.88,-138.24 617.22,-131.22 624.34,-132.39 625.99,-139.41"/>
<text text-anchor="middle" x="869.5" y="-184.8" font-family="Arial" font-size="9.00">reservation_status</text>
<path fill="none" stroke="black" d="M1079.72,-219.39C1076.85,-217.84 1073.94,-216.37 1071,-215 1017.12,-189.82 862.71,-206.48 804,-197 770.69,-191.62 686.56,-175.26 657,-159 647.33,-153.68 637.97,-146.74 629.39,-139.36"/>
<polygon fill="black" stroke="black" points="629.3,-139.28 622.17,-138.22 620.41,-131.23 627.54,-132.29 629.3,-139.28"/>
<text text-anchor="middle" x="842" y="-184.8" font-family="Arial" font-size="9.00">reservation_status</text>
</g>
<!-- Reservation&#45;&gt;IllegalOperationException -->
<g id="edge24" class="edge">
<title>Reservation&#45;&gt;IllegalOperationException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1074.58,-220.91C1071.42,-218.85 1068.22,-216.87 1065,-215 1053.63,-208.39 846.88,-164.64 835,-159 819.96,-151.86 804.98,-141.9 791.76,-131.86"/>
<polygon fill="black" stroke="black" points="783.77,-125.62 794.42,-128.23 787.71,-128.7 791.65,-131.78 791.65,-131.78 791.65,-131.78 787.71,-128.7 788.88,-135.32 783.77,-125.62 783.77,-125.62"/>
<text text-anchor="middle" x="1009" y="-184.8" font-family="Arial" font-size="9.00">throws</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1079.92,-220.13C1076.98,-218.34 1074,-216.63 1071,-215 1032.82,-194.33 1017.29,-206.81 975,-197 913.45,-182.72 894.65,-186.99 838,-159 823.21,-151.7 808.42,-141.78 795.29,-131.83"/>
<polygon fill="black" stroke="black" points="787.35,-125.66 798,-128.25 791.29,-128.73 795.24,-131.8 795.24,-131.8 795.24,-131.8 791.29,-128.73 792.48,-135.35 787.35,-125.66 787.35,-125.66"/>
<text text-anchor="middle" x="989" y="-184.8" font-family="Arial" font-size="9.00">throws</text>
</g>
<!-- Reservation&#45;&gt;IReservation -->
<g id="edge1" class="edge">
<title>Reservation&#45;&gt;IReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1132.64,-215.46C1124.97,-199.08 1117.38,-182.9 1110.35,-167.91"/>
<polygon fill="none" stroke="black" points="1113.47,-166.32 1106.06,-158.75 1107.13,-169.29 1113.47,-166.32"/>
<text text-anchor="middle" x="1148" y="-184.8" font-family="Arial" font-size="9.00">implements</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1116.03,-215.46C1105.4,-198.93 1094.9,-182.59 1085.2,-167.49"/>
<polygon fill="none" stroke="black" points="1087.93,-165.27 1079.58,-158.75 1082.04,-169.05 1087.93,-165.27"/>
<text text-anchor="middle" x="1126" y="-184.8" font-family="Arial" font-size="9.00">implements</text>
</g>
<!-- AccountReservationList&#45;&gt;DuplicateObjectException -->
<g id="edge23" class="edge">
<title>AccountReservationList&#45;&gt;DuplicateObjectException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M928.21,-307.49C909.79,-275.12 881,-235.21 843,-215 814.3,-199.73 583.39,-199.73 551,-197 392.44,-183.66 343.86,-215.21 195,-159 178.12,-152.63 161.45,-142.48 146.95,-132.01"/>
<polygon fill="black" stroke="black" points="138.67,-125.83 149.38,-128.21 142.68,-128.82 146.69,-131.81 146.69,-131.81 146.69,-131.81 142.68,-128.82 144,-135.42 138.67,-125.83 138.67,-125.83"/>
<text text-anchor="middle" x="565" y="-184.8" font-family="Arial" font-size="9.00">throws</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M931.96,-307.32C913.36,-274.87 884.31,-234.94 846,-215 809.2,-195.84 514.32,-200.81 473,-197 348.82,-185.54 311,-204.77 195,-159 178.21,-152.38 161.57,-142.15 147.07,-131.7"/>
<polygon fill="black" stroke="black" points="138.79,-125.53 149.5,-127.89 142.8,-128.52 146.81,-131.5 146.81,-131.5 146.81,-131.5 142.8,-128.52 144.13,-135.11 138.79,-125.53 138.79,-125.53"/>
<text text-anchor="middle" x="487" y="-184.8" font-family="Arial" font-size="9.00">throws</text>
</g>
<!-- AccountReservationList&#45;&gt;IReservation -->
<g id="edge9" class="edge">
<title>AccountReservationList&#45;&gt;IReservation</title>
<path fill="none" stroke="black" d="M975.14,-307.25C993.16,-268.48 1018.51,-213.97 1039.16,-169.57"/>
<polygon fill="none" stroke="black" points="1039.24,-169.4 1038.14,-162.27 1044.3,-158.52 1045.4,-165.64 1039.24,-169.4"/>
<text text-anchor="middle" x="1062" y="-184.8" font-family="Arial" font-size="9.00">contains 0..*</text>
<path fill="none" stroke="black" d="M971.24,-307.25C983.06,-268.65 999.66,-214.43 1013.22,-170.14"/>
<polygon fill="none" stroke="black" points="1013.27,-169.99 1011.2,-163.08 1016.78,-158.52 1018.85,-165.43 1013.27,-169.99"/>
<text text-anchor="middle" x="1036.5" y="-184.8" font-family="Arial" font-size="9.00">contains 0..*</text>
</g>
<!-- CabinReservation -->
<g id="node12" class="node">
<title>CabinReservation</title>
<polygon fill="none" stroke="black" points="1355.5,-616.5 1355.5,-709.5 1498.5,-709.5 1498.5,-616.5 1355.5,-616.5"/>
<text text-anchor="middle" x="1427" y="-697.5" font-family="Arial" font-size="10.00">CabinReservation</text>
<polyline fill="none" stroke="black" points="1355.5,-690.5 1498.5,-690.5 "/>
<text text-anchor="start" x="1363.5" y="-678.5" font-family="Arial" font-size="10.00">+ CabinReservation()</text>
<text text-anchor="start" x="1363.5" y="-667.5" font-family="Arial" font-size="10.00">+ CabinReservation(Address)</text>
<text text-anchor="start" x="1363.5" y="-656.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1363.5" y="-645.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="1363.5" y="-634.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1363.5" y="-623.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<polygon fill="none" stroke="black" points="1366,-616.5 1366,-709.5 1512,-709.5 1512,-616.5 1366,-616.5"/>
<text text-anchor="middle" x="1439" y="-697.5" font-family="Arial" font-size="10.00">CabinReservation</text>
<polyline fill="none" stroke="black" points="1366,-690.5 1512,-690.5 "/>
<text text-anchor="start" x="1374" y="-678.5" font-family="Arial" font-size="10.00">+ CabinReservation()</text>
<text text-anchor="start" x="1374" y="-667.5" font-family="Arial" font-size="10.00">+ CabinReservation(Address)</text>
<text text-anchor="start" x="1374" y="-656.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1374" y="-645.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="1374" y="-634.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1374" y="-623.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
</g>
<!-- CabinReservation&#45;&gt;Reservation -->
<g id="edge2" class="edge">
<title>CabinReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M1392.62,-616.31C1370.84,-587.37 1341.32,-548.14 1311.9,-509.04"/>
<polygon fill="none" stroke="black" points="1314.44,-506.59 1305.63,-500.71 1308.85,-510.8 1314.44,-506.59"/>
<text text-anchor="middle" x="1357.5" y="-542.8" font-family="Arial" font-size="9.00">extends</text>
<path fill="none" stroke="black" d="M1404.02,-616.31C1381.86,-587.37 1351.82,-548.14 1321.88,-509.04"/>
<polygon fill="none" stroke="black" points="1324.36,-506.52 1315.5,-500.71 1318.8,-510.77 1324.36,-506.52"/>
<text text-anchor="middle" x="1367.5" y="-542.8" font-family="Arial" font-size="9.00">extends</text>
</g>
<!-- HotelReservation -->
<g id="node13" class="node">
<title>HotelReservation</title>
<polygon fill="none" stroke="black" points="1695.5,-611 1695.5,-715 1856.5,-715 1856.5,-611 1695.5,-611"/>
<text text-anchor="middle" x="1776" y="-703" font-family="Arial" font-size="10.00">HotelReservation</text>
<polyline fill="none" stroke="black" points="1695.5,-696 1856.5,-696 "/>
<text text-anchor="start" x="1703.5" y="-684" font-family="Arial" font-size="10.00">+ HotelReservation()</text>
<text text-anchor="start" x="1703.5" y="-673" font-family="Arial" font-size="10.00">+ HotelReservation(Address)</text>
<text text-anchor="start" x="1703.5" y="-662" font-family="Arial" font-size="10.00">+ static copy(String): Reservation</text>
<text text-anchor="start" x="1703.5" y="-651" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1703.5" y="-640" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="1703.5" y="-629" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1703.5" y="-618" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<polygon fill="none" stroke="black" points="1712,-611 1712,-715 1876,-715 1876,-611 1712,-611"/>
<text text-anchor="middle" x="1794" y="-703" font-family="Arial" font-size="10.00">HotelReservation</text>
<polyline fill="none" stroke="black" points="1712,-696 1876,-696 "/>
<text text-anchor="start" x="1720" y="-684" font-family="Arial" font-size="10.00">+ HotelReservation()</text>
<text text-anchor="start" x="1720" y="-673" font-family="Arial" font-size="10.00">+ HotelReservation(Address)</text>
<text text-anchor="start" x="1720" y="-662" font-family="Arial" font-size="10.00">+ static copy(String): Reservation</text>
<text text-anchor="start" x="1720" y="-651" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1720" y="-640" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="1720" y="-629" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1720" y="-618" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
</g>
<!-- HotelReservation&#45;&gt;Reservation -->
<g id="edge3" class="edge">
<title>HotelReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M1734.56,-610.74C1720.58,-595.62 1704.15,-579.95 1687,-568 1577.29,-491.54 1435.18,-434.61 1332.64,-399.64"/>
<polygon fill="none" stroke="black" points="1333.75,-396.32 1323.15,-396.43 1331.5,-402.95 1333.75,-396.32"/>
<text text-anchor="middle" x="1667.5" y="-542.8" font-family="Arial" font-size="9.00">extends</text>
<path fill="none" stroke="black" d="M1751.5,-610.71C1737.21,-595.6 1720.43,-579.93 1703,-568 1591.49,-491.68 1447.69,-434.89 1343.66,-399.92"/>
<polygon fill="none" stroke="black" points="1344.63,-396.56 1334.04,-396.71 1342.41,-403.2 1344.63,-396.56"/>
<text text-anchor="middle" x="1682.5" y="-542.8" font-family="Arial" font-size="9.00">extends</text>
</g>
<!-- HouseReservation -->
<g id="node14" class="node">
<title>HouseReservation</title>
<polygon fill="none" stroke="black" points="1516.5,-611 1516.5,-715 1677.5,-715 1677.5,-611 1516.5,-611"/>
<text text-anchor="middle" x="1597" y="-703" font-family="Arial" font-size="10.00">HouseReservation</text>
<polyline fill="none" stroke="black" points="1516.5,-696 1677.5,-696 "/>
<text text-anchor="start" x="1524.5" y="-684" font-family="Arial" font-size="10.00">+ HouseReservation()</text>
<text text-anchor="start" x="1524.5" y="-673" font-family="Arial" font-size="10.00">+ HouseReservation(Address)</text>
<text text-anchor="start" x="1524.5" y="-662" font-family="Arial" font-size="10.00">+ static copy(String): Reservation</text>
<text text-anchor="start" x="1524.5" y="-651" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1524.5" y="-640" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="1524.5" y="-629" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1524.5" y="-618" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<polygon fill="none" stroke="black" points="1530,-611 1530,-715 1694,-715 1694,-611 1530,-611"/>
<text text-anchor="middle" x="1612" y="-703" font-family="Arial" font-size="10.00">HouseReservation</text>
<polyline fill="none" stroke="black" points="1530,-696 1694,-696 "/>
<text text-anchor="start" x="1538" y="-684" font-family="Arial" font-size="10.00">+ HouseReservation()</text>
<text text-anchor="start" x="1538" y="-673" font-family="Arial" font-size="10.00">+ HouseReservation(Address)</text>
<text text-anchor="start" x="1538" y="-662" font-family="Arial" font-size="10.00">+ static copy(String): Reservation</text>
<text text-anchor="start" x="1538" y="-651" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="1538" y="-640" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="1538" y="-629" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="1538" y="-618" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
</g>
<!-- HouseReservation&#45;&gt;Reservation -->
<g id="edge4" class="edge">
<title>HouseReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M1551.68,-610.75C1537.92,-596.3 1522.36,-580.98 1507,-568 1452.54,-521.98 1387.81,-476.8 1331.78,-440.29"/>
<polygon fill="none" stroke="black" points="1333.52,-437.25 1323.23,-434.74 1329.71,-443.12 1333.52,-437.25"/>
<text text-anchor="middle" x="1500.5" y="-542.8" font-family="Arial" font-size="9.00">extends</text>
<path fill="none" stroke="black" d="M1566.18,-610.7C1552.27,-596.24 1536.53,-580.94 1521,-568 1465.6,-521.86 1399.77,-476.75 1342.74,-440.32"/>
<polygon fill="none" stroke="black" points="1344.34,-437.19 1334.02,-434.78 1340.58,-443.1 1344.34,-437.19"/>
<text text-anchor="middle" x="1514.5" y="-542.8" font-family="Arial" font-size="9.00">extends</text>
</g>
<!-- AccomodationManager -->
<g id="node15" class="node">
<title>AccomodationManager</title>
<polygon fill="none" stroke="black" points="1355.5,-999.5 1355.5,-1188.5 1598.5,-1188.5 1598.5,-999.5 1355.5,-999.5"/>
<text text-anchor="middle" x="1477" y="-1176.5" font-family="Arial" font-size="10.00">AccomodationManager</text>
<polyline fill="none" stroke="black" points="1355.5,-1169.5 1598.5,-1169.5 "/>
<text text-anchor="start" x="1363.5" y="-1157.5" font-family="Arial" font-size="10.00">&#45; accounts: AccountList</text>
<polyline fill="none" stroke="black" points="1355.5,-1150.5 1598.5,-1150.5 "/>
<text text-anchor="start" x="1363.5" y="-1138.5" font-family="Arial" font-size="10.00">+ AccomodationManager(String)</text>
<text text-anchor="start" x="1363.5" y="-1127.5" font-family="Arial" font-size="10.00">+ setDataStoreRoot(String): void</text>
<text text-anchor="start" x="1363.5" y="-1116.5" font-family="Arial" font-size="10.00">+ loadAll(): void</text>
<text text-anchor="start" x="1363.5" y="-1105.5" font-family="Arial" font-size="10.00">+ load(Path): void</text>
<text text-anchor="start" x="1363.5" y="-1094.5" font-family="Arial" font-size="10.00">+ retrieveLoadedAccounts(): List&lt;Account&gt;</text>
<text text-anchor="start" x="1363.5" y="-1083.5" font-family="Arial" font-size="10.00">+ retrieveAccount(String): Account</text>
<text text-anchor="start" x="1363.5" y="-1072.5" font-family="Arial" font-size="10.00">+ AddAccount(Account): void</text>
<text text-anchor="start" x="1363.5" y="-1061.5" font-family="Arial" font-size="10.00">+ UpdateAccount(Account): void</text>
<text text-anchor="start" x="1363.5" y="-1050.5" font-family="Arial" font-size="10.00">+ newAccount(...): Account</text>
<text text-anchor="start" x="1363.5" y="-1039.5" font-family="Arial" font-size="10.00">+ addReservation(Account, Reservation): boolean</text>
<text text-anchor="start" x="1363.5" y="-1028.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
<text text-anchor="start" x="1363.5" y="-1017.5" font-family="Arial" font-size="10.00">+ getReservationList(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="1363.5" y="-1006.5" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
<polygon fill="none" stroke="black" points="1366,-999.5 1366,-1188.5 1614,-1188.5 1614,-999.5 1366,-999.5"/>
<text text-anchor="middle" x="1490" y="-1176.5" font-family="Arial" font-size="10.00">AccomodationManager</text>
<polyline fill="none" stroke="black" points="1366,-1169.5 1614,-1169.5 "/>
<text text-anchor="start" x="1374" y="-1157.5" font-family="Arial" font-size="10.00">&#45; accounts: AccountList</text>
<polyline fill="none" stroke="black" points="1366,-1150.5 1614,-1150.5 "/>
<text text-anchor="start" x="1374" y="-1138.5" font-family="Arial" font-size="10.00">+ AccomodationManager(String)</text>
<text text-anchor="start" x="1374" y="-1127.5" font-family="Arial" font-size="10.00">+ setDataStoreRoot(String): void</text>
<text text-anchor="start" x="1374" y="-1116.5" font-family="Arial" font-size="10.00">+ loadAll(): void</text>
<text text-anchor="start" x="1374" y="-1105.5" font-family="Arial" font-size="10.00">+ load(Path): void</text>
<text text-anchor="start" x="1374" y="-1094.5" font-family="Arial" font-size="10.00">+ retrieveLoadedAccounts(): List&lt;Account&gt;</text>
<text text-anchor="start" x="1374" y="-1083.5" font-family="Arial" font-size="10.00">+ retrieveAccount(String): Account</text>
<text text-anchor="start" x="1374" y="-1072.5" font-family="Arial" font-size="10.00">+ AddAccount(Account): void</text>
<text text-anchor="start" x="1374" y="-1061.5" font-family="Arial" font-size="10.00">+ UpdateAccount(Account): void</text>
<text text-anchor="start" x="1374" y="-1050.5" font-family="Arial" font-size="10.00">+ newAccount(...): Account</text>
<text text-anchor="start" x="1374" y="-1039.5" font-family="Arial" font-size="10.00">+ addReservation(Account, Reservation): boolean</text>
<text text-anchor="start" x="1374" y="-1028.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
<text text-anchor="start" x="1374" y="-1017.5" font-family="Arial" font-size="10.00">+ getReservationList(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="1374" y="-1006.5" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
</g>
<!-- AccomodationManager&#45;&gt;AccountList -->
<g id="edge13" class="edge">
<title>AccomodationManager&#45;&gt;AccountList</title>
<path fill="none" stroke="black" d="M1355.45,-1015.14C1316.01,-989.88 1272.81,-962.21 1235.45,-938.28"/>
<polygon fill="black" stroke="black" points="1235.19,-938.11 1227.98,-938.24 1225.08,-931.64 1232.29,-931.51 1235.19,-938.11"/>
<text text-anchor="middle" x="1317" y="-973.8" font-family="Arial" font-size="9.00">accounts</text>
<path fill="none" stroke="black" d="M1365.81,-1014.84C1325.79,-989.65 1282.02,-962.1 1244.14,-938.27"/>
<polygon fill="black" stroke="black" points="1243.78,-938.04 1236.57,-938.23 1233.63,-931.65 1240.83,-931.46 1243.78,-938.04"/>
<text text-anchor="middle" x="1326.5" y="-973.8" font-family="Arial" font-size="9.00">accounts</text>
</g>
<!-- DataRepository -->
<g id="node16" class="node">
<title>DataRepository</title>
<polygon fill="none" stroke="black" points="1381.5,-804.5 1381.5,-946.5 1572.5,-946.5 1572.5,-804.5 1381.5,-804.5"/>
<text text-anchor="middle" x="1477" y="-934.5" font-family="Arial" font-size="10.00">DataRepository</text>
<polyline fill="none" stroke="black" points="1381.5,-927.5 1572.5,-927.5 "/>
<text text-anchor="middle" x="1477" y="-915.5" font-family="Arial" font-size="10.00">&lt;&lt;singleton&gt;&gt;</text>
<polyline fill="none" stroke="black" points="1381.5,-908.5 1572.5,-908.5 "/>
<text text-anchor="start" x="1389.5" y="-896.5" font-family="Arial" font-size="10.00">&#45; directoryPath: String</text>
<text text-anchor="start" x="1389.5" y="-885.5" font-family="Arial" font-size="10.00">&#45; static instance: DataRepository</text>
<polyline fill="none" stroke="black" points="1381.5,-878.5 1572.5,-878.5 "/>
<text text-anchor="start" x="1389.5" y="-866.5" font-family="Arial" font-size="10.00">+ static getInstance(): DataRepository</text>
<text text-anchor="start" x="1389.5" y="-855.5" font-family="Arial" font-size="10.00">+ static setDataStoreRoot(String): void</text>
<text text-anchor="start" x="1389.5" y="-844.5" font-family="Arial" font-size="10.00">+ static getPath(): String</text>
<text text-anchor="start" x="1389.5" y="-833.5" font-family="Arial" font-size="10.00">+ static Reservation(String): Reservation</text>
<text text-anchor="start" x="1389.5" y="-822.5" font-family="Arial" font-size="10.00">+ static WalkFileSystemTree(...): void</text>
<text text-anchor="start" x="1389.5" y="-811.5" font-family="Arial" font-size="10.00">+ static LoadAccount(Path): Account</text>
<polygon fill="none" stroke="black" points="1392.5,-804.5 1392.5,-946.5 1587.5,-946.5 1587.5,-804.5 1392.5,-804.5"/>
<text text-anchor="middle" x="1490" y="-934.5" font-family="Arial" font-size="10.00">DataRepository</text>
<polyline fill="none" stroke="black" points="1392.5,-927.5 1587.5,-927.5 "/>
<text text-anchor="middle" x="1490" y="-915.5" font-family="Arial" font-size="10.00">&lt;&lt;singleton&gt;&gt;</text>
<polyline fill="none" stroke="black" points="1392.5,-908.5 1587.5,-908.5 "/>
<text text-anchor="start" x="1400.5" y="-896.5" font-family="Arial" font-size="10.00">&#45; directoryPath: String</text>
<text text-anchor="start" x="1400.5" y="-885.5" font-family="Arial" font-size="10.00">&#45; static instance: DataRepository</text>
<polyline fill="none" stroke="black" points="1392.5,-878.5 1587.5,-878.5 "/>
<text text-anchor="start" x="1400.5" y="-866.5" font-family="Arial" font-size="10.00">+ static getInstance(): DataRepository</text>
<text text-anchor="start" x="1400.5" y="-855.5" font-family="Arial" font-size="10.00">+ static setDataStoreRoot(String): void</text>
<text text-anchor="start" x="1400.5" y="-844.5" font-family="Arial" font-size="10.00">+ static getPath(): String</text>
<text text-anchor="start" x="1400.5" y="-833.5" font-family="Arial" font-size="10.00">+ static Reservation(String): Reservation</text>
<text text-anchor="start" x="1400.5" y="-822.5" font-family="Arial" font-size="10.00">+ static WalkFileSystemTree(...): void</text>
<text text-anchor="start" x="1400.5" y="-811.5" font-family="Arial" font-size="10.00">+ static LoadAccount(Path): Account</text>
</g>
<!-- AccomodationManager&#45;&gt;DataRepository -->
<g id="edge14" class="edge">
<title>AccomodationManager&#45;&gt;DataRepository</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1477,-999.3C1477,-985.05 1477,-970.45 1477,-956.52"/>
<polygon fill="black" stroke="black" points="1477,-946.51 1481.5,-956.51 1477,-951.51 1477,-956.51 1477,-956.51 1477,-956.51 1477,-951.51 1472.5,-956.51 1477,-946.51 1477,-946.51"/>
<text text-anchor="middle" x="1488" y="-973.8" font-family="Arial" font-size="9.00">uses</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1490,-999.3C1490,-985.05 1490,-970.45 1490,-956.52"/>
<polygon fill="black" stroke="black" points="1490,-946.51 1494.5,-956.51 1490,-951.51 1490,-956.51 1490,-956.51 1490,-956.51 1490,-951.51 1485.5,-956.51 1490,-946.51 1490,-946.51"/>
<text text-anchor="middle" x="1500" y="-973.8" font-family="Arial" font-size="9.00">uses</text>
</g>
<!-- DataRepository&#45;&gt;Account -->
<g id="edge15" class="edge">
<title>DataRepository&#45;&gt;Account</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1381.18,-822.02C1368.47,-815.67 1355.51,-809.5 1343,-804 1256.44,-765.96 1155.95,-730.15 1078.53,-704.27"/>
<polygon fill="black" stroke="black" points="1068.72,-701.01 1079.63,-699.9 1073.47,-702.59 1078.21,-704.17 1078.21,-704.17 1078.21,-704.17 1073.47,-702.59 1076.79,-708.44 1068.72,-701.01 1068.72,-701.01"/>
<text text-anchor="middle" x="1306.5" y="-778.8" font-family="Arial" font-size="9.00">creates</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1392.36,-821.82C1379.59,-815.54 1366.57,-809.44 1354,-804 1265.01,-765.51 1161.64,-729.39 1082.55,-703.49"/>
<polygon fill="black" stroke="black" points="1073.03,-700.38 1083.93,-699.2 1077.78,-701.93 1082.54,-703.48 1082.54,-703.48 1082.54,-703.48 1077.78,-701.93 1081.14,-707.76 1073.03,-700.38 1073.03,-700.38"/>
<text text-anchor="middle" x="1317.5" y="-778.8" font-family="Arial" font-size="9.00">creates</text>
</g>
<!-- DataRepository&#45;&gt;CabinReservation -->
<g id="edge16" class="edge">
<title>DataRepository&#45;&gt;CabinReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1460.35,-804.41C1453.81,-776.85 1446.4,-745.66 1440.23,-719.69"/>
<polygon fill="black" stroke="black" points="1437.84,-709.64 1444.53,-718.33 1439,-714.51 1440.15,-719.37 1440.15,-719.37 1440.15,-719.37 1439,-714.51 1435.77,-720.41 1437.84,-709.64 1437.84,-709.64"/>
<text text-anchor="middle" x="1470.5" y="-778.8" font-family="Arial" font-size="9.00">creates</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1458.51,-804.1C1456.43,-798.05 1454.56,-791.96 1453,-786 1447.45,-764.73 1444.1,-740.79 1442.08,-719.8"/>
<polygon fill="black" stroke="black" points="1441.19,-709.75 1446.55,-719.32 1441.63,-714.73 1442.07,-719.71 1442.07,-719.71 1442.07,-719.71 1441.63,-714.73 1437.59,-720.11 1441.19,-709.75 1441.19,-709.75"/>
<text text-anchor="middle" x="1468.5" y="-778.8" font-family="Arial" font-size="9.00">creates</text>
</g>
<!-- DataRepository&#45;&gt;HotelReservation -->
<g id="edge17" class="edge">
<title>DataRepository&#45;&gt;HotelReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1572.57,-829.41C1609.87,-809.83 1651.99,-785.15 1687,-758 1700.51,-747.52 1713.85,-734.97 1725.93,-722.51"/>
<polygon fill="black" stroke="black" points="1732.88,-715.19 1729.25,-725.54 1729.44,-718.82 1725.99,-722.44 1725.99,-722.44 1725.99,-722.44 1729.44,-718.82 1722.73,-719.34 1732.88,-715.19 1732.88,-715.19"/>
<text text-anchor="middle" x="1675.5" y="-778.8" font-family="Arial" font-size="9.00">creates</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1587.62,-828.99C1625.24,-809.47 1667.63,-784.95 1703,-758 1716.74,-747.53 1730.36,-734.98 1742.7,-722.51"/>
<polygon fill="black" stroke="black" points="1749.81,-715.2 1746.07,-725.51 1746.33,-718.78 1742.84,-722.37 1742.84,-722.37 1742.84,-722.37 1746.33,-718.78 1739.61,-719.23 1749.81,-715.2 1749.81,-715.2"/>
<text text-anchor="middle" x="1691.5" y="-778.8" font-family="Arial" font-size="9.00">creates</text>
</g>
<!-- DataRepository&#45;&gt;HouseReservation -->
<g id="edge18" class="edge">
<title>DataRepository&#45;&gt;HouseReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1507.34,-804.38C1512.01,-794.72 1516.96,-785.03 1522,-776 1531.76,-758.51 1543.38,-740.2 1554.52,-723.57"/>
<polygon fill="black" stroke="black" points="1560.29,-715.04 1558.42,-725.85 1557.49,-719.18 1554.69,-723.32 1554.69,-723.32 1554.69,-723.32 1557.49,-719.18 1550.96,-720.8 1560.29,-715.04 1560.29,-715.04"/>
<text text-anchor="middle" x="1537.5" y="-778.8" font-family="Arial" font-size="9.00">creates</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1516.81,-804.39C1521.21,-794.68 1525.98,-784.97 1531,-776 1540.93,-758.26 1553.16,-739.99 1565.08,-723.49"/>
<polygon fill="black" stroke="black" points="1571.27,-715.03 1569,-725.76 1568.32,-719.07 1565.36,-723.1 1565.36,-723.1 1565.36,-723.1 1568.32,-719.07 1561.73,-720.44 1571.27,-715.03 1571.27,-715.03"/>
<text text-anchor="middle" x="1546.5" y="-778.8" font-family="Arial" font-size="9.00">creates</text>
</g>
<!-- TestReservations -->
<g id="node17" class="node">
<title>TestReservations</title>
<polygon fill="none" stroke="black" points="1571,-1256.5 1571,-1305.5 1737,-1305.5 1737,-1256.5 1571,-1256.5"/>
<text text-anchor="middle" x="1654" y="-1293.5" font-family="Arial" font-size="10.00">TestReservations</text>
<polyline fill="none" stroke="black" points="1571,-1286.5 1737,-1286.5 "/>
<text text-anchor="start" x="1579" y="-1274.5" font-family="Arial" font-size="10.00">+ static main(String[]): void</text>
<text text-anchor="start" x="1579" y="-1263.5" font-family="Arial" font-size="10.00">+ static class getRepositoryConfig</text>
<polygon fill="none" stroke="black" points="1585,-1256.5 1585,-1305.5 1753,-1305.5 1753,-1256.5 1585,-1256.5"/>
<text text-anchor="middle" x="1669" y="-1293.5" font-family="Arial" font-size="10.00">TestReservations</text>
<polyline fill="none" stroke="black" points="1585,-1286.5 1753,-1286.5 "/>
<text text-anchor="start" x="1593" y="-1274.5" font-family="Arial" font-size="10.00">+ static main(String[]): void</text>
<text text-anchor="start" x="1593" y="-1263.5" font-family="Arial" font-size="10.00">+ static class getRepositoryConfig</text>
</g>
<!-- TestReservations&#45;&gt;CabinReservation -->
<g id="edge20" class="edge">
<title>TestReservations&#45;&gt;CabinReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1652.18,-1256.48C1644.51,-1157.31 1615.06,-778.25 1613,-776 1580.71,-740.77 1548.54,-781.62 1507,-758 1489.71,-748.17 1474.44,-733.11 1462,-717.91"/>
<polygon fill="black" stroke="black" points="1455.75,-709.97 1465.47,-715.05 1458.85,-713.9 1461.94,-717.83 1461.94,-717.83 1461.94,-717.83 1458.85,-713.9 1458.4,-720.61 1455.75,-709.97 1455.75,-709.97"/>
<text text-anchor="middle" x="1645.5" y="-973.8" font-family="Arial" font-size="9.00">creates</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1667.18,-1256.48C1659.51,-1157.31 1630.06,-778.25 1628,-776 1595.39,-740.47 1563.09,-781.54 1521,-758 1503.46,-748.19 1487.86,-733.13 1475.09,-717.93"/>
<polygon fill="black" stroke="black" points="1468.68,-709.99 1478.47,-714.94 1471.83,-713.88 1474.97,-717.77 1474.97,-717.77 1474.97,-717.77 1471.83,-713.88 1471.47,-720.59 1468.68,-709.99 1468.68,-709.99"/>
<text text-anchor="middle" x="1660.5" y="-973.8" font-family="Arial" font-size="9.00">creates</text>
</g>
<!-- TestReservations&#45;&gt;HotelReservation -->
<g id="edge21" class="edge">
<title>TestReservations&#45;&gt;HotelReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1665.5,-1256.28C1668.14,-1250.38 1670.82,-1244.02 1673,-1238 1675.83,-1230.19 1676.17,-1228.1 1678,-1220 1718.38,-1041.68 1751.95,-828.02 1767.19,-725.2"/>
<polygon fill="black" stroke="black" points="1768.65,-715.31 1771.64,-725.86 1767.92,-720.25 1767.19,-725.2 1767.19,-725.2 1767.19,-725.2 1767.92,-720.25 1762.74,-724.54 1768.65,-715.31 1768.65,-715.31"/>
<text text-anchor="middle" x="1741.5" y="-973.8" font-family="Arial" font-size="9.00">creates</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1680.5,-1256.28C1683.14,-1250.38 1685.82,-1244.02 1688,-1238 1690.83,-1230.19 1691.14,-1228.09 1693,-1220 1733.89,-1041.62 1768.81,-827.99 1784.76,-725.19"/>
<polygon fill="black" stroke="black" points="1786.29,-715.29 1789.21,-725.86 1785.52,-720.24 1784.76,-725.18 1784.76,-725.18 1784.76,-725.18 1785.52,-720.24 1780.31,-724.49 1786.29,-715.29 1786.29,-715.29"/>
<text text-anchor="middle" x="1757.5" y="-973.8" font-family="Arial" font-size="9.00">creates</text>
</g>
<!-- TestReservations&#45;&gt;HouseReservation -->
<g id="edge22" class="edge">
<title>TestReservations&#45;&gt;HouseReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1656.78,-1256.45C1664.66,-1183.7 1683.88,-956.54 1641,-776 1636.94,-758.92 1630.81,-740.99 1624.4,-724.61"/>
<polygon fill="black" stroke="black" points="1620.61,-715.16 1628.51,-722.76 1622.47,-719.8 1624.33,-724.44 1624.33,-724.44 1624.33,-724.44 1622.47,-719.8 1620.16,-726.12 1620.61,-715.16 1620.61,-715.16"/>
<text text-anchor="middle" x="1681.5" y="-973.8" font-family="Arial" font-size="9.00">creates</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1671.78,-1256.45C1679.66,-1183.7 1698.88,-956.54 1656,-776 1651.94,-758.92 1645.81,-740.99 1639.4,-724.61"/>
<polygon fill="black" stroke="black" points="1635.61,-715.16 1643.51,-722.76 1637.47,-719.8 1639.33,-724.44 1639.33,-724.44 1639.33,-724.44 1637.47,-719.8 1635.16,-726.12 1635.61,-715.16 1635.61,-715.16"/>
<text text-anchor="middle" x="1696.5" y="-973.8" font-family="Arial" font-size="9.00">creates</text>
</g>
<!-- TestReservations&#45;&gt;AccomodationManager -->
<g id="edge19" class="edge">
<title>TestReservations&#45;&gt;AccomodationManager</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1614.61,-1256.48C1606.45,-1250.87 1598.16,-1244.58 1591,-1238 1577.26,-1225.38 1563.82,-1211.02 1551.27,-1196.39"/>
<polygon fill="black" stroke="black" points="1544.79,-1188.71 1554.68,-1193.45 1548.02,-1192.53 1551.24,-1196.35 1551.24,-1196.35 1551.24,-1196.35 1548.02,-1192.53 1547.81,-1199.26 1544.79,-1188.71 1544.79,-1188.71"/>
<text text-anchor="middle" x="1602" y="-1230.8" font-family="Arial" font-size="9.00">uses</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1631.3,-1256.47C1623.29,-1250.82 1615.11,-1244.52 1608,-1238 1594.16,-1225.31 1580.5,-1210.98 1567.66,-1196.42"/>
<polygon fill="black" stroke="black" points="1561.02,-1188.79 1570.98,-1193.38 1564.3,-1192.56 1567.58,-1196.33 1567.58,-1196.33 1567.58,-1196.33 1564.3,-1192.56 1564.19,-1199.29 1561.02,-1188.79 1561.02,-1188.79"/>
<text text-anchor="middle" x="1618" y="-1230.8" font-family="Arial" font-size="9.00">uses</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB