2025-09-30 22:06:10 -04:00
|
|
|
<?xml version="1.0" standalone="no"?>
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="993pt" height="654pt" viewBox="0.00 0.00 992.53 654">
|
|
|
|
|
<g id="graph0" class="graph" transform="translate(4,650) scale(1)" data-name="Reservation System - Account Load">
|
|
|
|
|
|
|
|
|
|
<polygon fill="white" stroke="none" points="-4,4 -4,-650 988.53,-650 988.53,4 -4,4"/>
|
|
|
|
|
<text text-anchor="middle" x="492.27" y="-8.2" font-family="Times New Roman" font-size="14">Reservation System - Account Loading</text>
|
|
|
|
|
<g id="clust1" class="cluster" data-name="cluster_reservationsystem">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightgrey" stroke="lightgrey" points="8,-316.4 8,-638 348,-638 348,-316.4 8,-316.4"/>
|
|
|
|
|
<text text-anchor="middle" x="178" y="-621.4" font-family="Times New Roman" font-size="14">lodge.reservationsystem</text>
|
|
|
|
|
</g>
|
|
|
|
|
<g id="clust2" class="cluster" data-name="cluster_datamodel">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightblue" stroke="lightblue" points="356,-32.8 356,-450.2 901,-450.2 901,-32.8 356,-32.8"/>
|
|
|
|
|
<text text-anchor="middle" x="628.5" y="-433.6" font-family="Times New Roman" font-size="14">lodge.datamodel</text>
|
|
|
|
|
</g>
|
|
|
|
|
|
2025-09-29 09:59:37 -04:00
|
|
|
<!-- AccomodationManager -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node1" class="node" pointer-events="visible" data-name="AccomodationManager">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="15.69,-516.7 15.69,-604.7 340.31,-604.7 340.31,-516.7 15.69,-516.7"/>
|
|
|
|
|
<text text-anchor="middle" x="178" y="-591.7" font-family="Times New Roman" font-size="10.00">AccomodationManager</text>
|
|
|
|
|
<polyline fill="none" stroke="black" points="15.69,-584.7 340.31,-584.7"/>
|
|
|
|
|
<text text-anchor="start" x="23.69" y="-571.7" font-family="Times New Roman" font-size="10.00">+ AccomodationManager(home: String)</text>
|
|
|
|
|
<text text-anchor="start" x="23.69" y="-559.7" font-family="Times New Roman" font-size="10.00">+ newAccount(phone: String, addr: Address, email: EmailAddress): Account</text>
|
|
|
|
|
<text text-anchor="start" x="23.69" y="-547.7" font-family="Times New Roman" font-size="10.00">+ AddAccount(acct: Account)</text>
|
|
|
|
|
<text text-anchor="start" x="23.69" y="-535.7" font-family="Times New Roman" font-size="10.00">+ UpdateAccount(acct: Account)</text>
|
|
|
|
|
<text text-anchor="start" x="23.69" y="-523.7" font-family="Times New Roman" font-size="10.00">+ showAccountList()</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- DataRepository -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node2" class="node" pointer-events="visible" data-name="DataRepository">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="179.62,-324.9 179.62,-432.9 340.38,-432.9 340.38,-324.9 179.62,-324.9"/>
|
|
|
|
|
<text text-anchor="middle" x="260" y="-419.9" font-family="Times New Roman" font-size="10.00">DataRepository (Singleton)</text>
|
|
|
|
|
<polyline fill="none" stroke="black" points="179.62,-412.9 340.38,-412.9"/>
|
|
|
|
|
<text text-anchor="start" x="187.62" y="-399.9" font-family="Times New Roman" font-size="10.00">- directoryPath: String</text>
|
|
|
|
|
<text text-anchor="start" x="187.62" y="-387.9" font-family="Times New Roman" font-size="10.00">- instance: DataRepository</text>
|
|
|
|
|
<polyline fill="none" stroke="black" points="179.62,-380.9 340.38,-380.9"/>
|
|
|
|
|
<text text-anchor="start" x="187.62" y="-367.9" font-family="Times New Roman" font-size="10.00">+ getInstance(): DataRepository</text>
|
|
|
|
|
<text text-anchor="start" x="187.62" y="-355.9" font-family="Times New Roman" font-size="10.00">+ setDataStoreRoot(path: String)</text>
|
|
|
|
|
<text text-anchor="start" x="187.62" y="-343.9" font-family="Times New Roman" font-size="10.00">+ getPath(): String</text>
|
|
|
|
|
<text text-anchor="start" x="187.62" y="-331.9" font-family="Times New Roman" font-size="10.00">+ LoadAccount(file: Path): Account</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- AccomodationManager->DataRepository -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge2" class="edge" data-name="AccomodationManager->DataRepository">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="black" d="M259.97,-517.15C259.97,-517.15 259.97,-444.33 259.97,-444.33"/>
|
|
|
|
|
<polygon fill="black" stroke="black" points="263.47,-444.33 259.97,-434.33 256.47,-444.33 263.47,-444.33"/>
|
|
|
|
|
<text text-anchor="middle" x="228.51" y="-472.1" font-family="Arial" font-size="9.00">uses</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- Account -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node3" class="node" pointer-events="visible" data-name="Account">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="364.32,-165.1 364.32,-241.1 653.68,-241.1 653.68,-165.1 364.32,-165.1"/>
|
|
|
|
|
<text text-anchor="middle" x="509" y="-228.1" font-family="Times New Roman" font-size="10.00">Account</text>
|
|
|
|
|
<polyline fill="none" stroke="black" points="364.32,-221.1 653.68,-221.1"/>
|
|
|
|
|
<text text-anchor="start" x="372.32" y="-208.1" font-family="Times New Roman" font-size="10.00">+ Account()</text>
|
|
|
|
|
<text text-anchor="start" x="372.32" y="-196.1" font-family="Times New Roman" font-size="10.00">+ Account(phone: String, mailAddr: Address, email: EmailAddress)</text>
|
|
|
|
|
<text text-anchor="start" x="372.32" y="-184.1" font-family="Times New Roman" font-size="10.00">+ Write(acct: Account)</text>
|
|
|
|
|
<text text-anchor="start" x="372.32" y="-172.1" font-family="Times New Roman" font-size="10.00">+ checkValid()</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- AccomodationManager->Account -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge3" class="edge" data-name="AccomodationManager->Account">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="black" d="M97.65,-516.93C97.65,-419.81 97.65,-194.8 97.65,-194.8 97.65,-194.8 353.04,-194.8 353.04,-194.8"/>
|
|
|
|
|
<polygon fill="black" stroke="black" points="353.04,-198.3 363.04,-194.8 353.04,-191.3 353.04,-198.3"/>
|
|
|
|
|
<text text-anchor="middle" x="580.02" y="-376.2" font-family="Arial" font-size="9.00">creates/updates</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- AccountList -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node4" class="node" pointer-events="visible" data-name="AccountList">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="363.78,-340.9 363.78,-416.9 546.22,-416.9 546.22,-340.9 363.78,-340.9"/>
|
|
|
|
|
<text text-anchor="middle" x="455" y="-403.9" font-family="Times New Roman" font-size="10.00">AccountList</text>
|
|
|
|
|
<polyline fill="none" stroke="black" points="363.78,-396.9 546.22,-396.9"/>
|
|
|
|
|
<text text-anchor="start" x="371.78" y="-383.9" font-family="Times New Roman" font-size="10.00">+ add(acct: Account)</text>
|
|
|
|
|
<text text-anchor="start" x="371.78" y="-371.9" font-family="Times New Roman" font-size="10.00">+ save(acct: Account)</text>
|
|
|
|
|
<text text-anchor="start" x="371.78" y="-359.9" font-family="Times New Roman" font-size="10.00">+ find(account_number: String): Account</text>
|
|
|
|
|
<text text-anchor="start" x="371.78" y="-347.9" font-family="Times New Roman" font-size="10.00">+ showAccountList()</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- AccomodationManager->AccountList -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge1" class="edge" data-name="AccomodationManager->AccountList">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="black" d="M339.93,-545.8C400.55,-545.8 455,-545.8 455,-545.8 455,-545.8 455,-428.77 455,-428.77"/>
|
|
|
|
|
<polygon fill="black" stroke="black" points="455,-428.77 451,-422.77 455,-416.77 459,-422.77 455,-428.77"/>
|
|
|
|
|
<text text-anchor="middle" x="392.26" y="-472.1" font-family="Arial" font-size="9.00">manages 1</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- Exception -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node9" class="node" pointer-events="visible" data-name="Exception">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="908.73,-360.9 908.73,-396.9 965.27,-396.9 965.27,-360.9 908.73,-360.9"/>
|
|
|
|
|
<text text-anchor="middle" x="937" y="-375.9" font-family="Times New Roman" font-size="10.00">Exception</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- AccomodationManager->Exception -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge9" class="edge" data-name="AccomodationManager->Exception">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M339.89,-574.8C562.8,-574.8 937,-574.8 937,-574.8 937,-574.8 937,-406.63 937,-406.63"/>
|
|
|
|
|
<polygon fill="red" stroke="red" points="937,-396.63 941.5,-406.63 937,-401.63 937,-406.63 937,-406.63 937,-406.63 937,-401.63 932.5,-406.63 937,-396.63 937,-396.63"/>
|
|
|
|
|
<text text-anchor="middle" x="960.77" y="-472.1" font-family="Arial" font-size="9.00"><<throws>></text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- DataRepository->Account -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge8" class="edge" data-name="DataRepository->Account">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="black" d="M332.44,-324.92C332.44,-280.84 332.44,-225.8 332.44,-225.8 332.44,-225.8 352.9,-225.8 352.9,-225.8"/>
|
|
|
|
|
<polygon fill="black" stroke="black" points="352.9,-229.3 362.9,-225.8 352.9,-222.3 352.9,-229.3"/>
|
|
|
|
|
<text text-anchor="middle" x="323.76" y="-280.3" font-family="Arial" font-size="9.00">loads</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- IOException -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node10" class="node" pointer-events="visible" data-name="IOException">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="249.45,-43.3 249.45,-79.3 316.55,-79.3 316.55,-43.3 249.45,-43.3"/>
|
|
|
|
|
<text text-anchor="middle" x="283" y="-58.3" font-family="Times New Roman" font-size="10.00">IOException</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- DataRepository->IOException -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge13" class="edge" data-name="DataRepository->IOException">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M271.82,-325.02C271.82,-325.02 271.82,-89.21 271.82,-89.21"/>
|
|
|
|
|
<polygon fill="red" stroke="red" points="271.82,-79.21 276.32,-89.21 271.82,-84.21 271.82,-89.21 271.82,-89.21 271.82,-89.21 271.82,-84.21 267.32,-89.21 271.82,-79.21 271.82,-79.21"/>
|
|
|
|
|
<text text-anchor="middle" x="303.77" y="-200.4" font-family="Arial" font-size="9.00"><<throws>></text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- Account->DataRepository -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge7" class="edge" data-name="Account->DataRepository">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="black" d="M364.53,-210.8C341.18,-210.8 324.49,-210.8 324.49,-210.8 324.49,-210.8 324.49,-313.74 324.49,-313.74"/>
|
|
|
|
|
<polygon fill="black" stroke="black" points="320.99,-313.74 324.49,-323.74 327.99,-313.74 320.99,-313.74"/>
|
|
|
|
|
<text text-anchor="middle" x="394.27" y="-280.3" font-family="Arial" font-size="9.00">uses for persistence</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- Address -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node5" class="node" pointer-events="visible" data-name="Address">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="628.66,-41.3 628.66,-81.3 893.34,-81.3 893.34,-41.3 628.66,-41.3"/>
|
|
|
|
|
<text text-anchor="middle" x="761" y="-68.3" font-family="Times New Roman" font-size="10.00">Address</text>
|
|
|
|
|
<polyline fill="none" stroke="black" points="628.66,-61.3 893.34,-61.3"/>
|
|
|
|
|
<text text-anchor="start" x="636.66" y="-48.3" font-family="Times New Roman" font-size="10.00">+ Address(street: String, city: String, state: String, zip: String)</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- Account->Address -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge5" class="edge" data-name="Account->Address">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="black" d="M641.17,-165.1C641.17,-165.1 641.17,-92.57 641.17,-92.57"/>
|
|
|
|
|
<polygon fill="black" stroke="black" points="644.67,-92.57 641.17,-82.57 637.67,-92.57 644.67,-92.57"/>
|
|
|
|
|
<text text-anchor="middle" x="712.76" y="-120.5" font-family="Arial" font-size="9.00">has mailing</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- EmailAddress -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node6" class="node" pointer-events="visible" data-name="EmailAddress">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="364.3,-41.3 364.3,-81.3 503.7,-81.3 503.7,-41.3 364.3,-41.3"/>
|
|
|
|
|
<text text-anchor="middle" x="434" y="-68.3" font-family="Times New Roman" font-size="10.00">EmailAddress</text>
|
|
|
|
|
<polyline fill="none" stroke="black" points="364.3,-61.3 503.7,-61.3"/>
|
|
|
|
|
<text text-anchor="start" x="372.3" y="-48.3" font-family="Times New Roman" font-size="10.00">+ EmailAddress(email: String)</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- Account->EmailAddress -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge6" class="edge" data-name="Account->EmailAddress">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="black" d="M434.01,-165.1C434.01,-165.1 434.01,-92.57 434.01,-92.57"/>
|
|
|
|
|
<polygon fill="black" stroke="black" points="437.51,-92.57 434.01,-82.57 430.51,-92.57 437.51,-92.57"/>
|
|
|
|
|
<text text-anchor="middle" x="468.26" y="-120.5" font-family="Arial" font-size="9.00">has</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- IllegalArgumentException -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node8" class="node" pointer-events="visible" data-name="IllegalArgumentException">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="504.68,-43.3 504.68,-79.3 627.32,-79.3 627.32,-43.3 504.68,-43.3"/>
|
|
|
|
|
<text text-anchor="middle" x="566" y="-58.3" font-family="Times New Roman" font-size="10.00">IllegalArgumentException</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- Account->IllegalArgumentException -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge11" class="edge" data-name="Account->IllegalArgumentException">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M566,-165.1C566,-165.1 566,-89.13 566,-89.13"/>
|
|
|
|
|
<polygon fill="red" stroke="red" points="566,-79.13 570.5,-89.13 566,-84.13 566,-89.13 566,-89.13 566,-89.13 566,-84.13 561.5,-89.13 566,-79.13 566,-79.13"/>
|
|
|
|
|
<text text-anchor="middle" x="560.77" y="-120.5" font-family="Arial" font-size="9.00"><<throws>></text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- Account->IOException -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge12" class="edge" data-name="Account->IOException">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M364.52,-179.8C325.66,-179.8 294.18,-179.8 294.18,-179.8 294.18,-179.8 294.18,-89.3 294.18,-89.3"/>
|
|
|
|
|
<polygon fill="red" stroke="red" points="294.18,-79.3 298.68,-89.3 294.18,-84.3 294.18,-89.3 294.18,-89.3 294.18,-89.3 294.18,-84.3 289.68,-89.3 294.18,-79.3 294.18,-79.3"/>
|
|
|
|
|
<text text-anchor="middle" x="356.77" y="-120.5" font-family="Arial" font-size="9.00"><<throws>></text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- AccountList->Account -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge4" class="edge" data-name="AccountList->Account">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="black" d="M455.27,-341.19C455.27,-341.19 455.27,-253.05 455.27,-253.05"/>
|
|
|
|
|
<polygon fill="none" stroke="black" points="455.27,-253.05 451.27,-247.05 455.27,-241.05 459.27,-247.05 455.27,-253.05"/>
|
|
|
|
|
<text text-anchor="middle" x="466.75" y="-280.3" font-family="Arial" font-size="9.00">0..*</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- DuplicateObjectException -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="node7" class="node" pointer-events="visible" data-name="DuplicateObjectException">
|
|
|
|
|
|
|
|
|
|
<polygon fill="lightyellow" stroke="black" points="654.97,-185.1 654.97,-221.1 777.03,-221.1 777.03,-185.1 654.97,-185.1"/>
|
|
|
|
|
<text text-anchor="middle" x="716" y="-200.1" font-family="Times New Roman" font-size="10.00">DuplicateObjectException</text>
|
2025-09-29 09:59:37 -04:00
|
|
|
</g>
|
|
|
|
|
<!-- AccountList->DuplicateObjectException -->
|
2025-09-30 22:06:10 -04:00
|
|
|
<g id="edge10" class="edge" data-name="AccountList->DuplicateObjectException">
|
|
|
|
|
|
|
|
|
|
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M545.92,-349.8C621.24,-349.8 716,-349.8 716,-349.8 716,-349.8 716,-231.09 716,-231.09"/>
|
|
|
|
|
<polygon fill="red" stroke="red" points="716,-221.09 720.5,-231.09 716,-226.09 716,-231.09 716,-231.09 716,-231.09 716,-226.09 711.5,-231.09 716,-221.09 716,-221.09"/>
|
|
|
|
|
<text text-anchor="middle" x="508.77" y="-280.3" font-family="Arial" font-size="9.00"><<throws>></text>
|
|
|
|
|
</g></g>
|
|
|
|
|
</svg>
|