Files
reservationsystem/uml/classdiagram.svg

470 lines
38 KiB
XML
Raw Normal View History

2025-09-18 21:39:24 -04:00
<?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">
2025-09-19 18:25:06 -04:00
<!-- Generated by graphviz version 2.44.1 (20200629.0846)
2025-09-18 21:39:24 -04:00
-->
<!-- Title: LodgeReservationSystem Pages: 1 -->
2025-09-19 20:23:02 -04:00
<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)">
2025-09-18 21:39:24 -04:00
<title>LodgeReservationSystem</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
<g id="clust1" class="cluster">
<title>cluster_data</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
<g id="clust2" class="cluster">
<title>cluster_reservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
2025-09-18 12:18:33 -04:00
<!-- Account -->
2025-09-18 21:39:24 -04:00
<g id="node1" class="node">
<title>Account</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 21:39:24 -04:00
</g>
<!-- Address -->
2025-09-19 20:23:02 -04:00
<g id="node3" class="node">
2025-09-18 21:39:24 -04:00
<title>Address</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
<!-- Account&#45;&gt;Address -->
2025-09-19 20:23:02 -04:00
<g id="edge6" class="edge">
2025-09-18 21:39:24 -04:00
<title>Account&#45;&gt;Address</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 21:39:24 -04:00
</g>
<!-- EmailAddress -->
2025-09-19 20:23:02 -04:00
<g id="node4" class="node">
2025-09-18 21:39:24 -04:00
<title>EmailAddress</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
<!-- Account&#45;&gt;EmailAddress -->
2025-09-19 20:23:02 -04:00
<g id="edge7" class="edge">
2025-09-18 21:39:24 -04:00
<title>Account&#45;&gt;EmailAddress</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
2025-09-19 20:23:02 -04:00
<!-- 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>
2025-09-19 18:25:06 -04:00
</g>
2025-09-19 20:23:02 -04:00
<!-- 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>
2025-09-18 21:39:24 -04:00
</g>
<!-- AccountList -->
<g id="node2" class="node">
<title>AccountList</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
<!-- AccountList&#45;&gt;Account -->
2025-09-19 20:23:02 -04:00
<g id="edge8" class="edge">
2025-09-18 21:39:24 -04:00
<title>AccountList&#45;&gt;Account</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 15:32:40 -04:00
</g>
2025-09-19 20:23:02 -04:00
<!-- KitchenTypeEnum -->
<g id="node5" class="node">
<title>KitchenTypeEnum</title>
<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>
2025-09-19 15:32:40 -04:00
</g>
2025-09-19 20:23:02 -04:00
<!-- 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 "/>
<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>
2025-09-18 12:18:33 -04:00
</g>
2025-09-19 20:23:02 -04:00
<!-- DuplicateObjectException -->
2025-09-19 18:25:06 -04:00
<g id="node7" class="node">
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
2025-09-19 20:23:02 -04:00
<!-- IllegalOperationException -->
2025-09-19 18:25:06 -04:00
<g id="node8" class="node">
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
2025-09-19 20:23:02 -04:00
<!-- IReservation -->
2025-09-19 18:25:06 -04:00
<g id="node9" class="node">
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
<!-- Reservation -->
2025-09-19 20:23:02 -04:00
<g id="node10" class="node">
2025-09-19 18:25:06 -04:00
<title>Reservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
2025-09-18 21:39:24 -04:00
<!-- Reservation&#45;&gt;Address -->
2025-09-19 20:23:02 -04:00
<g id="edge10" class="edge">
2025-09-18 21:39:24 -04:00
<title>Reservation&#45;&gt;Address</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
2025-09-18 21:39:24 -04:00
<!-- Reservation&#45;&gt;KitchenTypeEnum -->
2025-09-19 20:23:02 -04:00
<g id="edge11" class="edge">
2025-09-18 21:39:24 -04:00
<title>Reservation&#45;&gt;KitchenTypeEnum</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
2025-09-18 21:39:24 -04:00
<!-- Reservation&#45;&gt;ReservationStatusEnum -->
2025-09-19 20:23:02 -04:00
<g id="edge12" class="edge">
2025-09-18 21:39:24 -04:00
<title>Reservation&#45;&gt;ReservationStatusEnum</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 21:39:24 -04:00
</g>
<!-- Reservation&#45;&gt;IReservation -->
2025-09-19 20:23:02 -04:00
<g id="edge1" class="edge">
2025-09-18 21:39:24 -04:00
<title>Reservation&#45;&gt;IReservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
2025-09-19 18:25:06 -04:00
<!-- CabinReservation -->
<g id="node12" class="node">
<title>CabinReservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
<!-- CabinReservation&#45;&gt;Reservation -->
2025-09-19 20:23:02 -04:00
<g id="edge2" class="edge">
2025-09-19 18:25:06 -04:00
<title>CabinReservation&#45;&gt;Reservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
<!-- HotelReservation -->
2025-09-19 18:25:06 -04:00
<g id="node13" class="node">
2025-09-18 21:39:24 -04:00
<title>HotelReservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
<!-- HotelReservation&#45;&gt;Reservation -->
2025-09-19 20:23:02 -04:00
<g id="edge3" class="edge">
2025-09-18 21:39:24 -04:00
<title>HotelReservation&#45;&gt;Reservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
<!-- HouseReservation -->
2025-09-19 18:25:06 -04:00
<g id="node14" class="node">
2025-09-18 21:39:24 -04:00
<title>HouseReservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
<!-- HouseReservation&#45;&gt;Reservation -->
2025-09-19 20:23:02 -04:00
<g id="edge4" class="edge">
2025-09-18 21:39:24 -04:00
<title>HouseReservation&#45;&gt;Reservation</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 15:32:40 -04:00
</g>
2025-09-19 18:25:06 -04:00
<!-- AccomodationManager -->
<g id="node15" class="node">
<title>AccomodationManager</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
<!-- AccomodationManager&#45;&gt;AccountList -->
2025-09-19 20:23:02 -04:00
<g id="edge13" class="edge">
2025-09-19 18:25:06 -04:00
<title>AccomodationManager&#45;&gt;AccountList</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-19 18:25:06 -04:00
</g>
<!-- DataRepository -->
2025-09-19 15:32:40 -04:00
<g id="node16" class="node">
2025-09-19 18:25:06 -04:00
<title>DataRepository</title>
2025-09-19 20:23:02 -04:00
<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>
<!-- 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>
2025-09-18 12:18:33 -04:00
</g>
<!-- TestReservations -->
2025-09-18 21:39:24 -04:00
<g id="node17" class="node">
<title>TestReservations</title>
2025-09-19 20:23:02 -04:00
<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>
2025-09-18 12:18:33 -04:00
</g>
2025-09-19 20:23:02 -04:00
<!-- 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 -->
2025-09-19 15:32:40 -04:00
<g id="edge21" class="edge">
2025-09-19 20:23:02 -04:00
<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 -->
2025-09-19 15:32:40 -04:00
<g id="edge22" class="edge">
2025-09-19 20:23:02 -04:00
<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="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>
2025-09-18 12:18:33 -04:00
</g>
</g>
2025-09-18 21:39:24 -04:00
</svg>