add documentation

This commit is contained in:
2025-09-19 20:23:02 -04:00
parent e37852c3e7
commit f74c6970e7
3 changed files with 437 additions and 483 deletions

View File

@@ -4,504 +4,466 @@
<!-- Generated by graphviz version 2.44.1 (20200629.0846)
-->
<!-- Title: LodgeReservationSystem Pages: 1 -->
<svg width="1209pt" height="1834pt"
viewBox="0.00 0.00 1208.96 1834.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1830)">
<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">
<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,-1830 1204.96,-1830 1204.96,4 -4,4"/>
<g id="clust3" class="cluster">
<title>cluster_reservationsystem</title>
<polygon fill="none" stroke="red" stroke-dasharray="5,2" points="288.96,-1419 288.96,-1818 1060.96,-1818 1060.96,-1419 288.96,-1419"/>
<text text-anchor="middle" x="674.96" y="-1802.8" font-family="Times New Roman,serif" font-size="14.00">lodge.reservationsystem</text>
<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>
<g id="clust1" class="cluster">
<title>cluster_data</title>
<polygon fill="none" stroke="blue" stroke-dasharray="5,2" points="21.96,-66 21.96,-837 735.96,-837 735.96,-66 21.96,-66"/>
<text text-anchor="middle" x="378.96" y="-821.8" font-family="Times New Roman,serif" font-size="14.00">lodge.data</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_main</title>
<polygon fill="none" stroke="purple" stroke-dasharray="5,2" points="1068.96,-1494.5 1068.96,-1775.5 1192.96,-1775.5 1192.96,-1494.5 1068.96,-1494.5"/>
<text text-anchor="middle" x="1130.96" y="-1760.3" font-family="Times New Roman,serif" font-size="14.00">lodge</text>
<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>
</g>
<g id="clust2" class="cluster">
<title>cluster_reservation</title>
<polygon fill="none" stroke="green" stroke-dasharray="5,2" points="743.96,-678 743.96,-1391 1013.96,-1391 1013.96,-678 743.96,-678"/>
<text text-anchor="middle" x="878.96" y="-1375.8" font-family="Times New Roman,serif" font-size="14.00">lodge.reservation</text>
<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>
</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>
</g>
<!-- Account -->
<g id="node1" class="node">
<title>Account</title>
<polygon fill="none" stroke="black" points="181.46,-395.5 181.46,-639.5 414.46,-639.5 414.46,-395.5 181.46,-395.5"/>
<text text-anchor="middle" x="297.96" y="-627.5" font-family="Arial" font-size="10.00">Account</text>
<polyline fill="none" stroke="black" points="181.46,-620.5 414.46,-620.5 "/>
<text text-anchor="start" x="189.46" y="-608.5" font-family="Arial" font-size="10.00">+ Account()</text>
<text text-anchor="start" x="189.46" y="-597.5" font-family="Arial" font-size="10.00">+ Account(String, String, Address, EmailAddress)</text>
<text text-anchor="start" x="189.46" y="-586.5" font-family="Arial" font-size="10.00">+ Account(String, Address, EmailAddress)</text>
<polyline fill="none" stroke="black" points="181.46,-579.5 414.46,-579.5 "/>
<text text-anchor="start" x="189.46" y="-567.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<text text-anchor="start" x="189.46" y="-556.5" font-family="Arial" font-size="10.00">+ add(Reservation): boolean</text>
<text text-anchor="start" x="189.46" y="-545.5" font-family="Arial" font-size="10.00">+ Write(Account): void</text>
<text text-anchor="start" x="189.46" y="-534.5" font-family="Arial" font-size="10.00">+ getAccount_number(): String</text>
<text text-anchor="start" x="189.46" y="-523.5" font-family="Arial" font-size="10.00">+ setAccount_number(String): void</text>
<text text-anchor="start" x="189.46" y="-512.5" font-family="Arial" font-size="10.00">+ getPhone_number(): String</text>
<text text-anchor="start" x="189.46" y="-501.5" font-family="Arial" font-size="10.00">+ setPhone_number(String): void</text>
<text text-anchor="start" x="189.46" y="-490.5" font-family="Arial" font-size="10.00">+ getMailing_address(): Address</text>
<text text-anchor="start" x="189.46" y="-479.5" font-family="Arial" font-size="10.00">+ setMailing_address(Address): void</text>
<text text-anchor="start" x="189.46" y="-468.5" font-family="Arial" font-size="10.00">+ getEmail_address(): EmailAddress</text>
<text text-anchor="start" x="189.46" y="-457.5" font-family="Arial" font-size="10.00">+ setEmail_address(EmailAddress): void</text>
<text text-anchor="start" x="189.46" y="-446.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
<text text-anchor="start" x="189.46" y="-435.5" font-family="Arial" font-size="10.00">+ update(Account): void</text>
<text text-anchor="start" x="189.46" y="-424.5" font-family="Arial" font-size="10.00">+ getAllReservations(): ListIterator&lt;IReservation&gt;</text>
<text text-anchor="start" x="189.46" y="-413.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="189.46" y="-402.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
</g>
<!-- AccountReservationList -->
<g id="node3" class="node">
<title>AccountReservationList</title>
<polygon fill="none" stroke="black" points="542.46,-205 542.46,-314 727.46,-314 727.46,-205 542.46,-205"/>
<text text-anchor="middle" x="634.96" y="-302" font-family="Arial" font-size="10.00">AccountReservationList</text>
<polyline fill="none" stroke="black" points="542.46,-295 727.46,-295 "/>
<text text-anchor="start" x="550.46" y="-283" font-family="Arial" font-size="10.00">+ AccountReservationList()</text>
<polyline fill="none" stroke="black" points="542.46,-276 727.46,-276 "/>
<text text-anchor="start" x="550.46" y="-264" font-family="Arial" font-size="10.00">&#45; reservationSerial(Reservation): String</text>
<polyline fill="none" stroke="black" points="542.46,-257 727.46,-257 "/>
<text text-anchor="start" x="550.46" y="-245" font-family="Arial" font-size="10.00">+ add(IReservation): boolean</text>
<text text-anchor="start" x="550.46" y="-234" font-family="Arial" font-size="10.00">+ toString(): String</text>
<text text-anchor="start" x="550.46" y="-223" font-family="Arial" font-size="10.00">+ find(String): Reservation</text>
<text text-anchor="start" x="550.46" y="-212" font-family="Arial" font-size="10.00">+ update(AccountReservationList): void</text>
</g>
<!-- Account&#45;&gt;AccountReservationList -->
<g id="edge9" class="edge">
<title>Account&#45;&gt;AccountReservationList</title>
<path fill="none" stroke="black" d="M414.88,-427.68C464.69,-389.85 521.15,-346.96 564.42,-314.09"/>
<text text-anchor="middle" x="488.96" y="-369.8" font-family="Arial" font-size="9.00">1</text>
<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>
</g>
<!-- Address -->
<g id="node4" class="node">
<g id="node3" class="node">
<title>Address</title>
<polygon fill="none" stroke="black" points="315.96,-170.5 315.96,-348.5 503.96,-348.5 503.96,-170.5 315.96,-170.5"/>
<text text-anchor="middle" x="409.96" y="-336.5" font-family="Arial" font-size="10.00">Address</text>
<polyline fill="none" stroke="black" points="315.96,-329.5 503.96,-329.5 "/>
<text text-anchor="start" x="323.96" y="-317.5" font-family="Arial" font-size="10.00">&#45; Address()</text>
<text text-anchor="start" x="323.96" y="-306.5" font-family="Arial" font-size="10.00">+ Address(String, String, String, String)</text>
<polyline fill="none" stroke="black" points="315.96,-299.5 503.96,-299.5 "/>
<text text-anchor="start" x="323.96" y="-287.5" font-family="Arial" font-size="10.00">+ getStreet(): String</text>
<text text-anchor="start" x="323.96" y="-276.5" font-family="Arial" font-size="10.00">+ setStreet(String): void</text>
<text text-anchor="start" x="323.96" y="-265.5" font-family="Arial" font-size="10.00">+ getCity(): String</text>
<text text-anchor="start" x="323.96" y="-254.5" font-family="Arial" font-size="10.00">+ setCity(String): void</text>
<text text-anchor="start" x="323.96" y="-243.5" font-family="Arial" font-size="10.00">+ getState(): String</text>
<text text-anchor="start" x="323.96" y="-232.5" font-family="Arial" font-size="10.00">+ setState(String): void</text>
<text text-anchor="start" x="323.96" y="-221.5" font-family="Arial" font-size="10.00">+ getZip(): String</text>
<text text-anchor="start" x="323.96" y="-210.5" font-family="Arial" font-size="10.00">+ setZip(String): void</text>
<text text-anchor="start" x="323.96" y="-199.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="323.96" y="-188.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="323.96" y="-177.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<polygon fill="none" stroke="black" points="204,-24.5 204,-158.5 392,-158.5 392,-24.5 204,-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>
</g>
<!-- Account&#45;&gt;Address -->
<g id="edge10" class="edge">
<g id="edge6" class="edge">
<title>Account&#45;&gt;Address</title>
<path fill="none" stroke="black" d="M351.01,-395.25C357.85,-379.61 364.75,-363.84 371.3,-348.87"/>
<text text-anchor="middle" x="362.96" y="-369.8" font-family="Arial" font-size="9.00">2</text>
<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>
</g>
<!-- EmailAddress -->
<g id="node5" class="node">
<g id="node4" class="node">
<title>EmailAddress</title>
<polygon fill="none" stroke="black" points="139.96,-209 139.96,-310 297.96,-310 297.96,-209 139.96,-209"/>
<text text-anchor="middle" x="218.96" y="-298" font-family="Arial" font-size="10.00">EmailAddress</text>
<polyline fill="none" stroke="black" points="139.96,-291 297.96,-291 "/>
<text text-anchor="start" x="147.96" y="-279" font-family="Arial" font-size="10.00">+ EmailAddress(String)</text>
<polyline fill="none" stroke="black" points="139.96,-272 297.96,-272 "/>
<text text-anchor="start" x="147.96" y="-260" font-family="Arial" font-size="10.00">+ getEmail_address(): String</text>
<text text-anchor="start" x="147.96" y="-249" font-family="Arial" font-size="10.00">+ setEmail_address(String): void</text>
<text text-anchor="start" x="147.96" y="-238" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="147.96" y="-227" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="147.96" y="-216" font-family="Arial" font-size="10.00">+ toString(): String</text>
<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>
</g>
<!-- Account&#45;&gt;EmailAddress -->
<g id="edge11" class="edge">
<g id="edge7" class="edge">
<title>Account&#45;&gt;EmailAddress</title>
<path fill="none" stroke="black" d="M260.54,-395.25C251.25,-365.14 241.81,-334.52 234.27,-310.1"/>
<text text-anchor="middle" x="255.96" y="-369.8" font-family="Arial" font-size="9.00">1</text>
<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>
</g>
<!-- DuplicateObjectException -->
<g id="node6" class="node">
<title>DuplicateObjectException</title>
<polygon fill="none" stroke="black" points="325.96,-74.5 325.96,-123.5 495.96,-123.5 495.96,-74.5 325.96,-74.5"/>
<text text-anchor="middle" x="410.96" y="-111.5" font-family="Arial" font-size="10.00">DuplicateObjectException</text>
<polyline fill="none" stroke="black" points="325.96,-104.5 495.96,-104.5 "/>
<text text-anchor="start" x="333.96" y="-92.5" font-family="Arial" font-size="10.00">+ DuplicateObjectException()</text>
<text text-anchor="start" x="333.96" y="-81.5" font-family="Arial" font-size="10.00">+ DuplicateObjectException(String)</text>
<!-- 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>
</g>
<!-- Account&#45;&gt;DuplicateObjectException -->
<g id="edge23" class="edge">
<title>Account&#45;&gt;DuplicateObjectException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M181.26,-444.08C149.94,-418.26 120.05,-386.21 102.96,-349 69.76,-276.71 53.33,-232.18 102.96,-170 129.29,-137.02 235.3,-118.39 315.65,-108.78"/>
<polygon fill="black" stroke="black" points="325.82,-107.6 316.4,-113.23 320.85,-108.18 315.88,-108.76 315.88,-108.76 315.88,-108.76 320.85,-108.18 315.36,-104.29 325.82,-107.6 325.82,-107.6"/>
<text text-anchor="middle" x="116.96" y="-257.3" font-family="Arial" font-size="9.00">throws</text>
<!-- 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>
</g>
<!-- AccountList -->
<g id="node2" class="node">
<title>AccountList</title>
<polygon fill="none" stroke="black" points="215.96,-693.5 215.96,-805.5 473.96,-805.5 473.96,-693.5 215.96,-693.5"/>
<text text-anchor="middle" x="344.96" y="-793.5" font-family="Arial" font-size="10.00">AccountList</text>
<polyline fill="none" stroke="black" points="215.96,-786.5 473.96,-786.5 "/>
<text text-anchor="start" x="223.96" y="-774.5" font-family="Arial" font-size="10.00">+ AccountList()</text>
<polyline fill="none" stroke="black" points="215.96,-767.5 473.96,-767.5 "/>
<text text-anchor="start" x="223.96" y="-755.5" font-family="Arial" font-size="10.00">+ accountSerial(String, Address, EmailAddress): String</text>
<text text-anchor="start" x="223.96" y="-744.5" font-family="Arial" font-size="10.00">+ add(Account): boolean</text>
<text text-anchor="start" x="223.96" y="-733.5" font-family="Arial" font-size="10.00">+ save(Account): void</text>
<text text-anchor="start" x="223.96" y="-722.5" font-family="Arial" font-size="10.00">+ find(String): Account</text>
<text text-anchor="start" x="223.96" y="-711.5" font-family="Arial" font-size="10.00">+ getListOfReservations(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="223.96" y="-700.5" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
<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>
</g>
<!-- AccountList&#45;&gt;Account -->
<g id="edge13" class="edge">
<title>AccountList&#45;&gt;Account</title>
<path fill="none" stroke="black" d="M333.71,-693.41C330.36,-677.06 326.57,-658.48 322.72,-639.67"/>
<text text-anchor="middle" x="329.96" y="-660.8" font-family="Arial" font-size="9.00">*</text>
</g>
<!-- AccountList&#45;&gt;DuplicateObjectException -->
<g id="edge24" class="edge">
<title>AccountList&#45;&gt;DuplicateObjectException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M390.54,-693.35C402.61,-676.9 414.8,-658.35 423.96,-640 484.38,-519 492.97,-482.76 512.96,-349 524.73,-270.32 550.03,-240.39 512.96,-170 504.1,-153.16 489.15,-139.6 473.4,-129.05"/>
<polygon fill="black" stroke="black" points="464.59,-123.51 475.45,-125.03 468.82,-126.17 473.05,-128.84 473.05,-128.84 473.05,-128.84 468.82,-126.17 470.65,-132.64 464.59,-123.51 464.59,-123.51"/>
<text text-anchor="middle" x="522.96" y="-369.8" font-family="Arial" font-size="9.00">throws</text>
</g>
<!-- ArrayList&lt;Account&gt; -->
<g id="node19" class="node">
<title>ArrayList&lt;Account&gt;</title>
<polygon fill="none" stroke="black" points="743.96,-499.5 743.96,-535.5 847.96,-535.5 847.96,-499.5 743.96,-499.5"/>
<text text-anchor="middle" x="795.96" y="-515" font-family="Arial" font-size="10.00">ArrayList&lt;Account&gt;</text>
</g>
<!-- AccountList&#45;&gt;ArrayList&lt;Account&gt; -->
<g id="edge1" class="edge">
<title>AccountList&#45;&gt;ArrayList&lt;Account&gt;</title>
<path fill="none" stroke="black" d="M443.19,-693.49C456.29,-687.6 469.77,-682.22 482.96,-678 592.94,-642.83 647.55,-709.22 739.96,-640 770.29,-617.28 784.71,-574.17 791.18,-545.89"/>
<polygon fill="none" stroke="black" points="794.66,-546.35 793.28,-535.85 787.8,-544.92 794.66,-546.35"/>
</g>
<!-- AccountReservationList&#45;&gt;DuplicateObjectException -->
<g id="edge25" class="edge">
<title>AccountReservationList&#45;&gt;DuplicateObjectException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M595.31,-204.95C576.84,-183.01 553.36,-158.86 527.96,-142 519.87,-136.63 511.01,-131.85 501.9,-127.61"/>
<polygon fill="black" stroke="black" points="492.73,-123.56 503.69,-123.48 497.3,-125.58 501.87,-127.6 501.87,-127.6 501.87,-127.6 497.3,-125.58 500.06,-131.72 492.73,-123.56 492.73,-123.56"/>
<text text-anchor="middle" x="551.96" y="-144.8" font-family="Arial" font-size="9.00">throws</text>
</g>
<!-- IReservation -->
<g id="node10" class="node">
<title>IReservation</title>
<polygon fill="none" stroke="black" points="773.96,-686.5 773.96,-812.5 937.96,-812.5 937.96,-686.5 773.96,-686.5"/>
<text text-anchor="start" x="781.96" y="-800.5" font-family="Arial" font-size="10.00">«interface»</text>
<text text-anchor="middle" x="855.96" y="-789.5" font-family="Arial" font-size="10.00">IReservation</text>
<polyline fill="none" stroke="black" points="773.96,-782.5 937.96,-782.5 "/>
<text text-anchor="start" x="781.96" y="-770.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="781.96" y="-759.5" font-family="Arial" font-size="10.00">+ copy(String): Reservation</text>
<text text-anchor="start" x="781.96" y="-748.5" font-family="Arial" font-size="10.00">+ getReservation_number(): String</text>
<text text-anchor="start" x="781.96" y="-737.5" font-family="Arial" font-size="10.00">+ getAccountNumber(): String</text>
<text text-anchor="start" x="781.96" y="-726.5" font-family="Arial" font-size="10.00">+ getPhysical_address(): Address</text>
<text text-anchor="start" x="781.96" y="-715.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="781.96" y="-704.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<text text-anchor="start" x="781.96" y="-693.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
</g>
<!-- AccountReservationList&#45;&gt;IReservation -->
<g id="edge14" class="edge">
<title>AccountReservationList&#45;&gt;IReservation</title>
<path fill="none" stroke="black" d="M727.57,-291.31C775.31,-312.44 829.2,-345.73 856.96,-395 908.17,-485.9 890.93,-611.96 873.56,-686.4"/>
<text text-anchor="middle" x="892.96" y="-515.3" font-family="Arial" font-size="9.00">*</text>
</g>
<!-- ArrayList&lt;IReservation&gt; -->
<g id="node20" class="node">
<title>ArrayList&lt;IReservation&gt;</title>
<polygon fill="none" stroke="black" points="743.96,-81 743.96,-117 863.96,-117 863.96,-81 743.96,-81"/>
<text text-anchor="middle" x="803.96" y="-96.5" font-family="Arial" font-size="10.00">ArrayList&lt;IReservation&gt;</text>
</g>
<!-- AccountReservationList&#45;&gt;ArrayList&lt;IReservation&gt; -->
<g id="edge2" class="edge">
<title>AccountReservationList&#45;&gt;ArrayList&lt;IReservation&gt;</title>
<path fill="none" stroke="black" d="M692.18,-204.84C721.3,-177.52 755.27,-145.67 778.05,-124.3"/>
<polygon fill="none" stroke="black" points="780.72,-126.6 785.62,-117.21 775.93,-121.5 780.72,-126.6"/>
</g>
<!-- RuntimeException -->
<g id="node21" class="node">
<title>RuntimeException</title>
<polygon fill="none" stroke="black" points="11.96,-0.5 11.96,-36.5 107.96,-36.5 107.96,-0.5 11.96,-0.5"/>
<text text-anchor="middle" x="59.96" y="-16" font-family="Arial" font-size="10.00">RuntimeException</text>
</g>
<!-- DuplicateObjectException&#45;&gt;RuntimeException -->
<g id="edge7" class="edge">
<title>DuplicateObjectException&#45;&gt;RuntimeException</title>
<path fill="none" stroke="black" d="M325.55,-78.9C261.23,-64.51 174.76,-45.17 118.21,-32.53"/>
<polygon fill="none" stroke="black" points="118.89,-29.09 108.36,-30.32 117.36,-35.92 118.89,-29.09"/>
</g>
<!-- IllegalOperationException -->
<g id="node7" class="node">
<title>IllegalOperationException</title>
<polygon fill="none" stroke="black" points="30.46,-725 30.46,-774 197.46,-774 197.46,-725 30.46,-725"/>
<text text-anchor="middle" x="113.96" y="-762" font-family="Arial" font-size="10.00">IllegalOperationException</text>
<polyline fill="none" stroke="black" points="30.46,-755 197.46,-755 "/>
<text text-anchor="start" x="38.46" y="-743" font-family="Arial" font-size="10.00">+ IllegalOperationException()</text>
<text text-anchor="start" x="38.46" y="-732" font-family="Arial" font-size="10.00">+ IllegalOperationException(String)</text>
</g>
<!-- IllegalOperationException&#45;&gt;RuntimeException -->
<g id="edge8" class="edge">
<title>IllegalOperationException&#45;&gt;RuntimeException</title>
<path fill="none" stroke="black" d="M102.47,-724.97C83.56,-684.03 47.96,-596.6 47.96,-518.5 47.96,-518.5 47.96,-518.5 47.96,-98 47.96,-80.8 50.81,-61.73 53.73,-46.69"/>
<polygon fill="none" stroke="black" points="57.23,-47.04 55.83,-36.54 50.38,-45.62 57.23,-47.04"/>
<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>
</g>
<!-- KitchenTypeEnum -->
<g id="node8" class="node">
<g id="node5" class="node">
<title>KitchenTypeEnum</title>
<polygon fill="none" stroke="black" points="491.96,-714 491.96,-785 587.96,-785 587.96,-714 491.96,-714"/>
<text text-anchor="start" x="499.96" y="-773" font-family="Arial" font-size="10.00">«enumeration»</text>
<text text-anchor="middle" x="539.96" y="-762" font-family="Arial" font-size="10.00">KitchenTypeEnum</text>
<polyline fill="none" stroke="black" points="491.96,-755 587.96,-755 "/>
<text text-anchor="start" x="499.96" y="-743" font-family="Arial" font-size="10.00">None</text>
<text text-anchor="start" x="499.96" y="-732" font-family="Arial" font-size="10.00">Kitchenette</text>
<text text-anchor="start" x="499.96" y="-721" font-family="Arial" font-size="10.00">FullKitchen</text>
<polygon fill="none" stroke="black" points="410,-52 410,-131 506,-131 506,-52 410,-52"/>
<text text-anchor="middle" x="458" y="-119" font-family="Arial" font-size="10.00">KitchenTypeEnum</text>
<polyline fill="none" stroke="black" points="410,-112 506,-112 "/>
<text text-anchor="middle" x="458" y="-100" font-family="Arial" font-size="10.00">&lt;&lt;enumeration&gt;&gt;</text>
<polyline fill="none" stroke="black" points="410,-93 506,-93 "/>
<text text-anchor="start" x="418" y="-81" font-family="Arial" font-size="10.00">None</text>
<text text-anchor="start" x="418" y="-70" font-family="Arial" font-size="10.00">Kitchenette</text>
<text text-anchor="start" x="418" y="-59" font-family="Arial" font-size="10.00">FullKitchen</text>
</g>
<!-- ReservationStatusEnum -->
<g id="node9" class="node">
<g id="node6" class="node">
<title>ReservationStatusEnum</title>
<polygon fill="none" stroke="black" points="606.46,-714 606.46,-785 727.46,-785 727.46,-714 606.46,-714"/>
<text text-anchor="start" x="614.46" y="-773" font-family="Arial" font-size="10.00">«enumeration»</text>
<text text-anchor="middle" x="666.96" y="-762" font-family="Arial" font-size="10.00">ReservationStatusEnum</text>
<polyline fill="none" stroke="black" points="606.46,-755 727.46,-755 "/>
<text text-anchor="start" x="614.46" y="-743" font-family="Arial" font-size="10.00">Draft</text>
<text text-anchor="start" x="614.46" y="-732" font-family="Arial" font-size="10.00">Canceled</text>
<text text-anchor="start" x="614.46" y="-721" font-family="Arial" font-size="10.00">Completed</text>
<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 "/>
<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>
</g>
<!-- DuplicateObjectException -->
<g id="node7" class="node">
<title>DuplicateObjectException</title>
<polygon fill="none" stroke="black" points="16,-57.5 16,-125.5 186,-125.5 186,-57.5 16,-57.5"/>
<text text-anchor="middle" x="101" y="-113.5" font-family="Arial" font-size="10.00">DuplicateObjectException</text>
<polyline fill="none" stroke="black" points="16,-106.5 186,-106.5 "/>
<text text-anchor="middle" x="101" y="-94.5" font-family="Arial" font-size="10.00">extends RuntimeException</text>
<polyline fill="none" stroke="black" points="16,-87.5 186,-87.5 "/>
<text text-anchor="start" x="24" y="-75.5" font-family="Arial" font-size="10.00">+ DuplicateObjectException()</text>
<text text-anchor="start" x="24" y="-64.5" font-family="Arial" font-size="10.00">+ DuplicateObjectException(String)</text>
</g>
<!-- 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>
</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>
</g>
<!-- Reservation -->
<g id="node11" class="node">
<g id="node10" class="node">
<title>Reservation</title>
<polygon fill="none" stroke="black" points="751.96,-873.5 751.96,-1359.5 1005.96,-1359.5 1005.96,-873.5 751.96,-873.5"/>
<text text-anchor="start" x="759.96" y="-1347.5" font-family="Arial" font-size="10.00">«abstract»</text>
<text text-anchor="middle" x="878.96" y="-1336.5" font-family="Arial" font-size="10.00">Reservation</text>
<polyline fill="none" stroke="black" points="751.96,-1329.5 1005.96,-1329.5 "/>
<text text-anchor="start" x="759.96" y="-1317.5" font-family="Arial" font-size="10.00"># Reservation()</text>
<polyline fill="none" stroke="black" points="751.96,-1310.5 1005.96,-1310.5 "/>
<text text-anchor="start" x="759.96" y="-1298.5" font-family="Arial" font-size="10.00">+ setReservation_number(String): void</text>
<text text-anchor="start" x="759.96" y="-1287.5" font-family="Arial" font-size="10.00">+ getReservation_number(): String</text>
<text text-anchor="start" x="759.96" y="-1276.5" font-family="Arial" font-size="10.00">+ getAccountNumber(): String</text>
<text text-anchor="start" x="759.96" y="-1265.5" font-family="Arial" font-size="10.00">+ setAccountNumber(String): void</text>
<text text-anchor="start" x="759.96" y="-1254.5" font-family="Arial" font-size="10.00">+ setPhysical_address(Address): void</text>
<text text-anchor="start" x="759.96" y="-1243.5" font-family="Arial" font-size="10.00">+ mailing_address(): Address</text>
<text text-anchor="start" x="759.96" y="-1232.5" font-family="Arial" font-size="10.00">+ setMailing_address(Address): void</text>
<text text-anchor="start" x="759.96" y="-1221.5" font-family="Arial" font-size="10.00">+ setReservation_start_date(ZonedDateTime): void</text>
<text text-anchor="start" x="759.96" y="-1210.5" font-family="Arial" font-size="10.00">+ setReservation_end_date(ZonedDateTime): void</text>
<text text-anchor="start" x="759.96" y="-1199.5" font-family="Arial" font-size="10.00">+ setReservation_status(ReservationStatusEnum): void</text>
<text text-anchor="start" x="759.96" y="-1188.5" font-family="Arial" font-size="10.00">+ getKitchen(): KitchenTypeEnum</text>
<text text-anchor="start" x="759.96" y="-1177.5" font-family="Arial" font-size="10.00">+ setKitchen(KitchenTypeEnum): void</text>
<text text-anchor="start" x="759.96" y="-1166.5" font-family="Arial" font-size="10.00">+ setNumberOfBeds(Integer): void</text>
<text text-anchor="start" x="759.96" y="-1155.5" font-family="Arial" font-size="10.00">+ numberOfBedRooms(): Integer</text>
<text text-anchor="start" x="759.96" y="-1144.5" font-family="Arial" font-size="10.00">+ setNumberOfBedRooms(Integer): void</text>
<text text-anchor="start" x="759.96" y="-1133.5" font-family="Arial" font-size="10.00">+ setNumberOfBathRooms(Integer): void</text>
<text text-anchor="start" x="759.96" y="-1122.5" font-family="Arial" font-size="10.00">+ setNumberOfFloors(Integer): void</text>
<text text-anchor="start" x="759.96" y="-1111.5" font-family="Arial" font-size="10.00">+ setSquareFeet(Integer): void</text>
<text text-anchor="start" x="759.96" y="-1100.5" font-family="Arial" font-size="10.00">+ setPrice(Float): void</text>
<text text-anchor="start" x="759.96" y="-1089.5" font-family="Arial" font-size="10.00">+ getType(): char</text>
<text text-anchor="start" x="759.96" y="-1078.5" font-family="Arial" font-size="10.00">+ setType(char): void</text>
<text text-anchor="start" x="759.96" y="-1067.5" font-family="Arial" font-size="10.00">+ getPhysical_address(): Address</text>
<text text-anchor="start" x="759.96" y="-1056.5" font-family="Arial" font-size="10.00">+ getMailing_address(): Address</text>
<text text-anchor="start" x="759.96" y="-1045.5" font-family="Arial" font-size="10.00">+ getReservation_start_date(): ZonedDateTime</text>
<text text-anchor="start" x="759.96" y="-1034.5" font-family="Arial" font-size="10.00">+ getReservation_end_date(): ZonedDateTime</text>
<text text-anchor="start" x="759.96" y="-1023.5" font-family="Arial" font-size="10.00">+ getReservation_status(): ReservationStatusEnum</text>
<text text-anchor="start" x="759.96" y="-1012.5" font-family="Arial" font-size="10.00">+ getNumberOfBeds(): Integer</text>
<text text-anchor="start" x="759.96" y="-1001.5" font-family="Arial" font-size="10.00">+ getNumberOfBedRooms(): Integer</text>
<text text-anchor="start" x="759.96" y="-990.5" font-family="Arial" font-size="10.00">+ getNumberOfBathRooms(): Integer</text>
<text text-anchor="start" x="759.96" y="-979.5" font-family="Arial" font-size="10.00">+ getNumberOfFloors(): Integer</text>
<text text-anchor="start" x="759.96" y="-968.5" font-family="Arial" font-size="10.00">+ getSquareFeet(): Integer</text>
<text text-anchor="start" x="759.96" y="-957.5" font-family="Arial" font-size="10.00">+ getPrice(): Float</text>
<text text-anchor="start" x="759.96" y="-946.5" font-family="Arial" font-size="10.00">+ hashCode(): int</text>
<text text-anchor="start" x="759.96" y="-935.5" font-family="Arial" font-size="10.00">+ equals(Object): boolean</text>
<text text-anchor="start" x="759.96" y="-924.5" font-family="Arial" font-size="10.00">+ toString(): String</text>
<text text-anchor="start" x="759.96" y="-913.5" font-family="Arial" font-size="10.00">+ Write(Reservation): void</text>
<text text-anchor="start" x="759.96" y="-902.5" font-family="Arial" font-size="10.00">+ Change(Reservation, ReservationStatusEnum): void</text>
<text text-anchor="start" x="759.96" y="-891.5" font-family="Arial" font-size="10.00">+ update(Reservation): void</text>
<text text-anchor="start" x="759.96" y="-880.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<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>
</g>
<!-- Reservation&#45;&gt;Address -->
<g id="edge15" class="edge">
<g id="edge10" class="edge">
<title>Reservation&#45;&gt;Address</title>
<path fill="none" stroke="black" d="M967.38,-873.1C1008.12,-714.15 1023.53,-514.37 898.96,-395 839.94,-338.44 610.11,-378.76 533.96,-349 523.86,-345.05 513.82,-340.1 504.07,-334.56"/>
<text text-anchor="middle" x="1006.96" y="-660.8" font-family="Arial" font-size="9.00">uses</text>
</g>
<!-- Reservation&#45;&gt;IllegalOperationException -->
<g id="edge26" class="edge">
<title>Reservation&#45;&gt;IllegalOperationException</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M751.66,-1035.6C660.56,-981.89 533.26,-913.72 412.96,-873 324.93,-843.2 290.2,-878.35 206.96,-837 180.58,-823.89 156.41,-800.91 139.32,-781.93"/>
<polygon fill="black" stroke="black" points="132.68,-774.34 142.65,-778.9 135.97,-778.11 139.27,-781.87 139.27,-781.87 139.27,-781.87 135.97,-778.11 135.88,-784.83 132.68,-774.34 132.68,-774.34"/>
<text text-anchor="middle" x="268.96" y="-847.8" font-family="Arial" font-size="9.00">throws</text>
<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>
</g>
<!-- Reservation&#45;&gt;KitchenTypeEnum -->
<g id="edge16" class="edge">
<g id="edge11" class="edge">
<title>Reservation&#45;&gt;KitchenTypeEnum</title>
<path fill="none" stroke="black" d="M751.76,-999.88C701.53,-951.62 644.76,-893.67 597.96,-837 584.61,-820.83 571.45,-801.55 561.05,-785.3"/>
<text text-anchor="middle" x="621.96" y="-847.8" font-family="Arial" font-size="9.00">uses</text>
<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>
</g>
<!-- Reservation&#45;&gt;ReservationStatusEnum -->
<g id="edge17" class="edge">
<g id="edge12" class="edge">
<title>Reservation&#45;&gt;ReservationStatusEnum</title>
<path fill="none" stroke="black" d="M751.82,-896.59C726.54,-853.08 702.94,-812.44 687.08,-785.13"/>
<text text-anchor="middle" x="733.96" y="-847.8" font-family="Arial" font-size="9.00">uses</text>
<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>
</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>
</g>
<!-- Reservation&#45;&gt;IReservation -->
<g id="edge3" class="edge">
<g id="edge1" class="edge">
<title>Reservation&#45;&gt;IReservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M863.7,-873.31C862.57,-855.41 861.5,-838.38 860.53,-823"/>
<polygon fill="none" stroke="black" points="864,-822.39 859.88,-812.63 857.01,-822.83 864,-822.39"/>
<text text-anchor="middle" x="886.96" y="-847.8" font-family="Arial" font-size="9.00">implements</text>
<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>
</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>
</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>
</g>
<!-- CabinReservation -->
<g id="node12" class="node">
<title>CabinReservation</title>
<polygon fill="none" stroke="black" points="909.46,-1674.5 909.46,-1775.5 1052.46,-1775.5 1052.46,-1674.5 909.46,-1674.5"/>
<text text-anchor="middle" x="980.96" y="-1763.5" font-family="Arial" font-size="10.00">CabinReservation</text>
<polyline fill="none" stroke="black" points="909.46,-1756.5 1052.46,-1756.5 "/>
<text text-anchor="start" x="917.46" y="-1744.5" font-family="Arial" font-size="10.00">+ CabinReservation()</text>
<text text-anchor="start" x="917.46" y="-1733.5" font-family="Arial" font-size="10.00">+ CabinReservation(Address)</text>
<polyline fill="none" stroke="black" points="909.46,-1726.5 1052.46,-1726.5 "/>
<text text-anchor="start" x="917.46" y="-1714.5" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="917.46" y="-1703.5" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="917.46" y="-1692.5" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="917.46" y="-1681.5" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<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>
</g>
<!-- CabinReservation&#45;&gt;Reservation -->
<g id="edge4" class="edge">
<g id="edge2" class="edge">
<title>CabinReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M972.62,-1674.37C961.37,-1607.5 940.55,-1483.69 921.39,-1369.77"/>
<polygon fill="none" stroke="black" points="924.83,-1369.12 919.72,-1359.83 917.93,-1370.28 924.83,-1369.12"/>
<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>
</g>
<!-- HotelReservation -->
<g id="node13" class="node">
<title>HotelReservation</title>
<polygon fill="none" stroke="black" points="750.96,-1669 750.96,-1781 890.96,-1781 890.96,-1669 750.96,-1669"/>
<text text-anchor="middle" x="820.96" y="-1769" font-family="Arial" font-size="10.00">HotelReservation</text>
<polyline fill="none" stroke="black" points="750.96,-1762 890.96,-1762 "/>
<text text-anchor="start" x="758.96" y="-1750" font-family="Arial" font-size="10.00">+ HotelReservation()</text>
<text text-anchor="start" x="758.96" y="-1739" font-family="Arial" font-size="10.00">+ HotelReservation(Address)</text>
<polyline fill="none" stroke="black" points="750.96,-1732 890.96,-1732 "/>
<text text-anchor="start" x="758.96" y="-1720" font-family="Arial" font-size="10.00">+ copy(String): Reservation</text>
<text text-anchor="start" x="758.96" y="-1709" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="758.96" y="-1698" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="758.96" y="-1687" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="758.96" y="-1676" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<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>
</g>
<!-- HotelReservation&#45;&gt;Reservation -->
<g id="edge5" class="edge">
<g id="edge3" class="edge">
<title>HotelReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M826.24,-1668.84C832.74,-1600.81 844.24,-1480.54 854.85,-1369.65"/>
<polygon fill="none" stroke="black" points="858.34,-1369.93 855.81,-1359.64 851.37,-1369.26 858.34,-1369.93"/>
<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>
</g>
<!-- HouseReservation -->
<g id="node14" class="node">
<title>HouseReservation</title>
<polygon fill="none" stroke="black" points="586.96,-1669 586.96,-1781 732.96,-1781 732.96,-1669 586.96,-1669"/>
<text text-anchor="middle" x="659.96" y="-1769" font-family="Arial" font-size="10.00">HouseReservation</text>
<polyline fill="none" stroke="black" points="586.96,-1762 732.96,-1762 "/>
<text text-anchor="start" x="594.96" y="-1750" font-family="Arial" font-size="10.00">+ HouseReservation()</text>
<text text-anchor="start" x="594.96" y="-1739" font-family="Arial" font-size="10.00">+ HouseReservation(Address)</text>
<polyline fill="none" stroke="black" points="586.96,-1732 732.96,-1732 "/>
<text text-anchor="start" x="594.96" y="-1720" font-family="Arial" font-size="10.00">+ copy(String): Reservation</text>
<text text-anchor="start" x="594.96" y="-1709" font-family="Arial" font-size="10.00">+ ReservationType(): String</text>
<text text-anchor="start" x="594.96" y="-1698" font-family="Arial" font-size="10.00">+ checkValid(): boolean</text>
<text text-anchor="start" x="594.96" y="-1687" font-family="Arial" font-size="10.00">+ getPricePerNight(): float</text>
<text text-anchor="start" x="594.96" y="-1676" font-family="Arial" font-size="10.00">+ calculatePrice(): float</text>
<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>
</g>
<!-- HouseReservation&#45;&gt;Reservation -->
<g id="edge6" class="edge">
<g id="edge4" class="edge">
<title>HouseReservation&#45;&gt;Reservation</title>
<path fill="none" stroke="black" d="M679.88,-1668.84C704.47,-1600.74 747.96,-1480.3 788.03,-1369.32"/>
<polygon fill="none" stroke="black" points="791.42,-1370.24 791.53,-1359.64 784.84,-1367.86 791.42,-1370.24"/>
<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>
</g>
<!-- AccomodationManager -->
<g id="node15" class="node">
<title>AccomodationManager</title>
<polygon fill="none" stroke="black" points="302.46,-1427.5 302.46,-1616.5 563.46,-1616.5 563.46,-1427.5 302.46,-1427.5"/>
<text text-anchor="middle" x="432.96" y="-1604.5" font-family="Arial" font-size="10.00">AccomodationManager</text>
<polyline fill="none" stroke="black" points="302.46,-1597.5 563.46,-1597.5 "/>
<text text-anchor="start" x="310.46" y="-1585.5" font-family="Arial" font-size="10.00">&#45; AccomodationManager()</text>
<text text-anchor="start" x="310.46" y="-1574.5" font-family="Arial" font-size="10.00">+ AccomodationManager(String)</text>
<polyline fill="none" stroke="black" points="302.46,-1567.5 563.46,-1567.5 "/>
<text text-anchor="start" x="310.46" y="-1555.5" font-family="Arial" font-size="10.00">+ setDataStoreRoot(String): void</text>
<text text-anchor="start" x="310.46" y="-1544.5" font-family="Arial" font-size="10.00">+ loadAll(): void</text>
<text text-anchor="start" x="310.46" y="-1533.5" font-family="Arial" font-size="10.00">+ load(Path): void</text>
<text text-anchor="start" x="310.46" y="-1522.5" font-family="Arial" font-size="10.00">+ retrieveLoadedAccounts(): List&lt;Account&gt;</text>
<text text-anchor="start" x="310.46" y="-1511.5" font-family="Arial" font-size="10.00">+ retrieveAccount(String): Account</text>
<text text-anchor="start" x="310.46" y="-1500.5" font-family="Arial" font-size="10.00">+ AddAccount(Account): void</text>
<text text-anchor="start" x="310.46" y="-1489.5" font-family="Arial" font-size="10.00">+ UpdateAccount(Account): void</text>
<text text-anchor="start" x="310.46" y="-1478.5" font-family="Arial" font-size="10.00">+ newAccount(String, Address, EmailAddress): Account</text>
<text text-anchor="start" x="310.46" y="-1467.5" font-family="Arial" font-size="10.00">+ addReservation(Account, Reservation): boolean</text>
<text text-anchor="start" x="310.46" y="-1456.5" font-family="Arial" font-size="10.00">+ findReservation(String): Reservation</text>
<text text-anchor="start" x="310.46" y="-1445.5" font-family="Arial" font-size="10.00">+ getReservationList(): List&lt;? extends IReservation&gt;</text>
<text text-anchor="start" x="310.46" y="-1434.5" font-family="Arial" font-size="10.00">+ showReservationList(): void</text>
</g>
<!-- AccomodationManager&#45;&gt;Account -->
<g id="edge18" class="edge">
<title>AccomodationManager&#45;&gt;Account</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M353.54,-1427.5C253.15,-1302.54 85.64,-1069.74 20.96,-837 2.04,-768.91 -14.41,-739.18 20.96,-678 55.54,-618.19 122,-578.83 181.16,-554.17"/>
<text text-anchor="middle" x="45.96" y="-847.8" font-family="Arial" font-size="9.00">manages</text>
<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>
</g>
<!-- AccomodationManager&#45;&gt;AccountList -->
<g id="edge12" class="edge">
<g id="edge13" class="edge">
<title>AccomodationManager&#45;&gt;AccountList</title>
<path fill="none" stroke="black" d="M422.26,-1427.29C403.71,-1264.87 366.14,-935.93 351.25,-805.54"/>
<text text-anchor="middle" x="419.96" y="-1114.3" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- AccomodationManager&#45;&gt;Reservation -->
<g id="edge19" class="edge">
<title>AccomodationManager&#45;&gt;Reservation</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M536.41,-1427.41C600.61,-1369.33 683.58,-1294.26 751.79,-1232.55"/>
<text text-anchor="middle" x="583.96" y="-1401.8" font-family="Arial" font-size="9.00">manages</text>
<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>
</g>
<!-- DataRepository -->
<g id="node16" class="node">
<title>DataRepository</title>
<polygon fill="none" stroke="black" points="297.46,-1663.5 297.46,-1786.5 568.46,-1786.5 568.46,-1663.5 297.46,-1663.5"/>
<text text-anchor="middle" x="432.96" y="-1774.5" font-family="Arial" font-size="10.00">DataRepository</text>
<polyline fill="none" stroke="black" points="297.46,-1767.5 568.46,-1767.5 "/>
<text text-anchor="start" x="305.46" y="-1755.5" font-family="Arial" font-size="10.00"># getInstance(): DataRepository</text>
<polyline fill="none" stroke="black" points="297.46,-1748.5 568.46,-1748.5 "/>
<text text-anchor="start" x="305.46" y="-1736.5" font-family="Arial" font-size="10.00">+ setDataStoreRoot(String): void</text>
<text text-anchor="start" x="305.46" y="-1725.5" font-family="Arial" font-size="10.00">+ getPath(): String</text>
<text text-anchor="start" x="305.46" y="-1714.5" font-family="Arial" font-size="10.00">+ Reservation(String): Reservation</text>
<text text-anchor="start" x="305.46" y="-1703.5" font-family="Arial" font-size="10.00">+ WalkFileSystemTree(AccomodationManager, Path): void</text>
<text text-anchor="start" x="305.46" y="-1692.5" font-family="Arial" font-size="10.00">+ LoadAccount(Path): Account</text>
<text text-anchor="start" x="305.46" y="-1681.5" font-family="Arial" font-size="10.00">&#45; loadReservationRefList(JsonReader, Account): void</text>
<text text-anchor="start" x="305.46" y="-1670.5" font-family="Arial" font-size="10.00">&#45; loadReservation(Account, String, String): void</text>
<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>
</g>
<!-- DataRepository&#45;&gt;AccomodationManager -->
<g id="edge20" class="edge">
<title>DataRepository&#45;&gt;AccomodationManager</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M432.96,-1663.42C432.96,-1648.63 432.96,-1632.45 432.96,-1616.51"/>
<text text-anchor="middle" x="443.96" y="-1637.8" font-family="Arial" font-size="9.00">uses</text>
<!-- 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>
</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>
</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>
</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>
</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>
</g>
<!-- TestReservations -->
<g id="node17" class="node">
<title>TestReservations</title>
<polygon fill="none" stroke="black" points="1077.46,-1706 1077.46,-1744 1184.46,-1744 1184.46,-1706 1077.46,-1706"/>
<text text-anchor="middle" x="1130.96" y="-1732" font-family="Arial" font-size="10.00">TestReservations</text>
<polyline fill="none" stroke="black" points="1077.46,-1725 1184.46,-1725 "/>
<text text-anchor="start" x="1085.46" y="-1713" font-family="Arial" font-size="10.00">+ main(String[]): void</text>
<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>
</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>
</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>
</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>
</g>
<!-- TestReservations&#45;&gt;AccomodationManager -->
<g id="edge21" class="edge">
<g id="edge19" class="edge">
<title>TestReservations&#45;&gt;AccomodationManager</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1116.06,-1705.74C1103.78,-1691.92 1085.15,-1673.56 1064.96,-1663 904.77,-1579.19 696.33,-1545.43 563.54,-1531.91"/>
<text text-anchor="middle" x="1027.96" y="-1637.8" font-family="Arial" font-size="9.00">uses</text>
</g>
<!-- getRepositoryConfig -->
<g id="node18" class="node">
<title>getRepositoryConfig</title>
<polygon fill="none" stroke="black" points="1078.96,-1503 1078.96,-1541 1182.96,-1541 1182.96,-1503 1078.96,-1503"/>
<text text-anchor="middle" x="1130.96" y="-1529" font-family="Arial" font-size="10.00">getRepositoryConfig</text>
<polyline fill="none" stroke="black" points="1078.96,-1522 1182.96,-1522 "/>
<text text-anchor="start" x="1086.96" y="-1510" font-family="Arial" font-size="10.00">+ getPath(): String</text>
</g>
<!-- TestReservations&#45;&gt;getRepositoryConfig -->
<g id="edge22" class="edge">
<title>TestReservations&#45;&gt;getRepositoryConfig</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1130.96,-1705.81C1130.96,-1667.54 1130.96,-1579.11 1130.96,-1541.01"/>
<text text-anchor="middle" x="1141.96" y="-1637.8" font-family="Arial" font-size="9.00">uses</text>
<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>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 38 KiB