Compare commits
25 Commits
97252c4c2b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| b1e741d95f | |||
| 366e85a17c | |||
| 597393a58c | |||
| 87fb95c1bd | |||
| 575c83f746 | |||
| 8d381e359d | |||
| 2e51ec213f | |||
| 274dae38e3 | |||
| 4f7134c59e | |||
| ceca2eedc2 | |||
| ece3a38a46 | |||
| 9017c4ab69 | |||
| 9bebe024b5 | |||
| d18e1acc24 | |||
| 1e078ef500 | |||
| 980c1dc049 | |||
| f924528596 | |||
| c3114e52c7 | |||
| cdca875b22 | |||
| 8b4803ac14 | |||
| 3fbc82fa94 | |||
| 1b9dc5e6c1 | |||
| 425a7206d6 | |||
| 030d1425e8 | |||
| 5fc8f25d82 |
39
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "java",
|
||||||
|
"name": "TestAccountLoad",
|
||||||
|
"request": "launch",
|
||||||
|
"mainClass": "lodge.TestAccountLoad",
|
||||||
|
"projectName": "reservationsystem"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "java",
|
||||||
|
"name": "TestReservations",
|
||||||
|
"request": "launch",
|
||||||
|
"mainClass": "lodge.TestReservations",
|
||||||
|
"projectName": "reservationsystem"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "java",
|
||||||
|
"name": "☕ TestMainFx",
|
||||||
|
"request": "launch",
|
||||||
|
"mainClass": "lodge.TestMainFx",
|
||||||
|
"projectName": "reservationsystem",
|
||||||
|
"vmArgs": " --module-path ${workspaceFolder}/libs/linux --add-modules ALL-MODULE-PATH --enable-native-access=javafx.web,javafx.controls,javafx.graphics -Dcom.sun.management.jmxremote=false -Djava.awt.headless=true -XX:+DisableAttachMechanism",
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"console": "integratedTerminal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "java",
|
||||||
|
"name": "☕ main",
|
||||||
|
"request": "launch",
|
||||||
|
"mainClass": "lodge.main",
|
||||||
|
"projectName": "reservationsystem",
|
||||||
|
"vmArgs": "-Dcom.sun.management.jmxremote=false -Djava.awt.headless=true -XX:+DisableAttachMechanism",
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"console": "integratedTerminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"java.configuration.updateBuildConfiguration": "automatic"
|
||||||
|
}
|
||||||
16
README.md
@@ -3,7 +3,7 @@
|
|||||||
###
|
###
|
||||||
| software | version |
|
| software | version |
|
||||||
| -------- | ------- |
|
| -------- | ------- |
|
||||||
| Java | 21 |
|
| Java | 24 |
|
||||||
| json lib | gson-2.13.1 |
|
| json lib | gson-2.13.1 |
|
||||||
| VSCode | 1.103 |
|
| VSCode | 1.103 |
|
||||||
| graphviz | 2.42.4 |
|
| graphviz | 2.42.4 |
|
||||||
@@ -12,19 +12,31 @@
|
|||||||
| extension |
|
| extension |
|
||||||
| ----------------- |
|
| ----------------- |
|
||||||
| Debugger for Java |
|
| Debugger for Java |
|
||||||
| Java Launcher |
|
| Java Platform Extension for Visual Studio Code |
|
||||||
| Language Support for Java(TM) by Red Hat |
|
| Language Support for Java(TM) by Red Hat |
|
||||||
|
| Graphviz Interactive Preview |
|
||||||
|
|
||||||
### Run and Debug Java manually
|
### Run and Debug Java manually
|
||||||
cd to: libs
|
cd to: libs
|
||||||
java -cp .\libs\gson-2.13.1.jar;.\libs\reservationsystem.jar lodge.TestReservations
|
java -cp .\libs\gson-2.13.1.jar;.\libs\reservationsystem.jar lodge.TestReservations
|
||||||
|
|
||||||
|
### use of javafx, crossplatform issue linux/win32
|
||||||
|
### check .vscode/launch.json
|
||||||
|
java requires --module-path ${workspaceFolder}/libs/linux --add-modules ALL-MODULE-PATH --enable-native-access=javafx.web,javafx.controls,javafx.graphics
|
||||||
|
java requires --module-path ${workspaceFolder}/libs/win32 --add-modules ALL-MODULE-PATH --enable-native-access=javafx.web,javafx.controls,javafx.graphics
|
||||||
|
|
||||||
### compile - build:
|
### compile - build:
|
||||||
### create jar archive:
|
### create jar archive:
|
||||||
gradle clean build jar
|
gradle clean build jar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Dot file review for classdiagram
|
### Dot file review for classdiagram
|
||||||
Install Graphviz in your OS
|
Install Graphviz in your OS
|
||||||
dot -Tsvg classdiagram.dot -o classdiagram.svg
|
dot -Tsvg classdiagram.dot -o classdiagram.svg
|
||||||
|
|
||||||
|
|
||||||
|
### build a list of accomodations
|
||||||
|
|
||||||
|
https://earth.google.com/web : to find building address
|
||||||
|
https://www.unitedstateszipcodes.org/ : to check zipcodes
|
||||||
40
build.gradle
@@ -9,26 +9,32 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'application'
|
id 'application'
|
||||||
|
id 'org.openjfx.javafxplugin' version '0.1.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
group = 'lodge'
|
||||||
|
version = '1.0'
|
||||||
|
|
||||||
// Apply a specific Java toolchain to ease working on different environments.
|
// Apply a specific Java toolchain to ease working on different environments.
|
||||||
java {
|
java {
|
||||||
toolchain {
|
toolchain {
|
||||||
languageVersion = JavaLanguageVersion.of(24)
|
languageVersion = JavaLanguageVersion.of(25)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
application {
|
application {
|
||||||
mainClass = 'lodge.TestReservations'
|
mainClass = 'lodge.TestMainFx'
|
||||||
applicationDefaultJvmArgs = ["--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED"]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
java {
|
java {
|
||||||
srcDirs = ['src/main/java']
|
srcDirs = ['src/main/java']
|
||||||
}
|
}
|
||||||
}
|
resources {
|
||||||
|
srcDirs = ['src/resources/media']
|
||||||
|
}
|
||||||
|
}
|
||||||
test {
|
test {
|
||||||
java {
|
java {
|
||||||
srcDirs = ['src/test/java']
|
srcDirs = ['src/test/java']
|
||||||
@@ -42,23 +48,37 @@ repositories {
|
|||||||
fileTree(dir:'libs', include:'*.jar')
|
fileTree(dir:'libs', include:'*.jar')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
javafx {
|
||||||
|
version = "24"
|
||||||
|
modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.graphics', 'javafx.web' ]
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
//https://mvnrepository.com/artifact/com.google.code.gson/gson
|
//https://mvnrepository.com/artifact/com.google.code.gson/gson
|
||||||
implementation 'com.google.code.gson:gson:2.13.2'
|
implementation 'com.google.code.gson:gson:2.13.2'
|
||||||
|
implementation 'org.openjfx:javafx-base:24.0.1'
|
||||||
|
implementation 'org.openjfx:javafx-fxml:24.0.1'
|
||||||
|
implementation 'org.openjfx:javafx-controls:24.0.1'
|
||||||
|
implementation 'org.openjfx:javafx-graphics:24.0.1'
|
||||||
|
implementation 'org.openjfx:javafx-web:24.0.1'
|
||||||
|
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.17'
|
||||||
|
implementation group: 'org.slf4j', name: 'slf4j-simple', version: '2.0.17'
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
manifest {
|
manifest {
|
||||||
attributes 'Main-Class': application.mainClass
|
attributes 'Main-Class': application.mainClass
|
||||||
}
|
}
|
||||||
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
|
from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named('jar') {
|
tasks.named('jar') {
|
||||||
manifest {
|
manifest {
|
||||||
attributes('Implementation-Title': 'lodge.reservationsystem',
|
attributes('Implementation-Title': 'lodge.reservationsystem',
|
||||||
'Implementation-Version': 1.0,
|
'Implementation-Version': 1.0,
|
||||||
'Main-Class': 'lodge.TestReservations',
|
'Main-Class': application.mainClass,
|
||||||
'Class-Path': 'lodge.reservationsystem com.google.gson .' )
|
'Class-Path': 'lodge.reservationsystem javafx.base javafx.fxml javafx.controls javafx.graphics javafx.web com.google.gson .' )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
5
gradlew
vendored
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright © 2015-2021 the original authors.
|
# Copyright © 2015 the original authors.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -114,7 +114,6 @@ case "$( uname )" in #(
|
|||||||
NONSTOP* ) nonstop=true ;;
|
NONSTOP* ) nonstop=true ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
CLASSPATH="\\\"\\\""
|
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
@@ -172,7 +171,6 @@ fi
|
|||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
if "$cygwin" || "$msys" ; then
|
if "$cygwin" || "$msys" ; then
|
||||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
|
||||||
|
|
||||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||||
|
|
||||||
@@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|||||||
|
|
||||||
set -- \
|
set -- \
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
-classpath "$CLASSPATH" \
|
|
||||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||||
"$@"
|
"$@"
|
||||||
|
|
||||||
|
|||||||
3
gradlew.bat
vendored
@@ -70,11 +70,10 @@ goto fail
|
|||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|
||||||
set CLASSPATH=
|
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
@rem Execute Gradle
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
||||||
|
|
||||||
:end
|
:end
|
||||||
@rem End local scope for the variables with windows NT shell
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
|||||||
BIN
libs/linux/javafx-base-24.0.1-linux.jar
Normal file
BIN
libs/linux/javafx-controls-24.0.1-linux.jar
Normal file
BIN
libs/linux/javafx-fxml-24.0.1-linux.jar
Normal file
BIN
libs/linux/javafx-graphics-24.0.1-linux.jar
Normal file
BIN
libs/linux/javafx-media-24.0.1-linux.jar
Normal file
BIN
libs/linux/javafx-web-24.0.1-linux.jar
Normal file
BIN
libs/win32/javafx-base-24.0.1-win.jar
Normal file
BIN
libs/win32/javafx-controls-24.0.1-win.jar
Normal file
BIN
libs/win32/javafx-fxml-24.0.1-win.jar
Normal file
BIN
libs/win32/javafx-graphics-24.0.1-win.jar
Normal file
BIN
libs/win32/javafx-media-24.0.1-win.jar
Normal file
BIN
libs/win32/javafx-web-24.0.1-win.jar
Normal file
BIN
sdd/Requirements-Matrix.xlsx
Normal file
BIN
sdd/Software_Detail_Design.pdf
Normal file
BIN
sdd/test_code1.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
17195
sdd/ui-idea1.svg
Normal file
|
After Width: | Height: | Size: 517 KiB |
BIN
sdd/ui-idea2.pptx
Normal file
16949
sdd/ui-idea2.svg
Normal file
|
After Width: | Height: | Size: 508 KiB |
BIN
sdd/ui-screen-idea-2.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
sdd/ui-srceen-2.pptx
Normal file
@@ -2,4 +2,4 @@ Manifest-Version: 1.0
|
|||||||
Main-Class: lodge.TestReservations
|
Main-Class: lodge.TestReservations
|
||||||
Implementation-Title: lodge.reservationsystem
|
Implementation-Title: lodge.reservationsystem
|
||||||
Implementation-Version: 1.0
|
Implementation-Version: 1.0
|
||||||
Class-Path: lodge.reservationsystem com.google.gson .
|
Class-Path: lodge.reservationsystem com.google.gson avafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web .
|
||||||
@@ -5,6 +5,9 @@
|
|||||||
|
|
||||||
package lodge;
|
package lodge;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import lodge.datamodel.Account;
|
import lodge.datamodel.Account;
|
||||||
import lodge.datamodel.Address;
|
import lodge.datamodel.Address;
|
||||||
import lodge.datamodel.EmailAddress;
|
import lodge.datamodel.EmailAddress;
|
||||||
@@ -30,31 +33,42 @@ public final class TestAccountLoad {
|
|||||||
// memory
|
// memory
|
||||||
mgr.UpdateAccount(acct);
|
mgr.UpdateAccount(acct);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final static Address findIventory(List<Address> propertyIventory, String street) {
|
||||||
|
Address inventory = propertyIventory
|
||||||
|
.stream()
|
||||||
|
.filter((Address inv) -> {
|
||||||
|
return inv.getStreet().equals("10 wilco ave");
|
||||||
|
}).findFirst().orElse(null);
|
||||||
|
return inventory;
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
// Configure data repository
|
// Configure data repository
|
||||||
AccomodationManager mgr = new AccomodationManager(getRepositoryConfig.getPath());
|
AccomodationManager mgr = new AccomodationManager(AccomodationManager.getRepositoryConfig.getPath());
|
||||||
|
|
||||||
|
List<Address> propertyIventory = new ArrayList<Address>();
|
||||||
|
|
||||||
|
propertyIventory.add(new Address("10 wilco ave", "wilco", "WY", "82801"));
|
||||||
|
propertyIventory.add(new Address("30 Amstadam ave", "New York", "NY", "12010"));
|
||||||
|
propertyIventory.add(new Address("400 hotel ave", "Maryland City", "MD", "20723"));
|
||||||
|
|
||||||
// 3. Add new account object to the list managed by Manager (if account object
|
// 3. Add new account object to the list managed by Manager (if account object
|
||||||
// already exists on add action with the same account number, it is considered
|
// already exists on add action with the same account number, it is considered
|
||||||
// an error)
|
// an error)
|
||||||
Test_AddAccount(mgr, mgr.newAccount("701-456-7890",
|
|
||||||
new Address("10 wilco ave", "wilco", "WY", "82801"),
|
|
||||||
new EmailAddress("wilco@wyommin.net")));
|
|
||||||
|
|
||||||
Test_AddAccount(mgr, mgr.newAccount("701-456-7890",
|
Test_AddAccount(mgr, mgr.newAccount("701-456-7890",
|
||||||
new Address("10 wilco ave", "wilco", "WY", "82801"),
|
findIventory(propertyIventory, "10 wilco ave"),
|
||||||
new EmailAddress("wilco@wyommin.net")));
|
new EmailAddress("wilco@wyommin.net")));
|
||||||
|
|
||||||
|
System.out.println("Account already exists in list, so add attempt should fail:");
|
||||||
mgr.showAccountList();
|
mgr.showAccountList();
|
||||||
|
|
||||||
|
Test_AddAccount(mgr, mgr.newAccount("701-456-7890",
|
||||||
|
findIventory(propertyIventory, "10 wilco ave"),
|
||||||
|
new EmailAddress("wilco@wyommin.net")));
|
||||||
|
|
||||||
System.out.println("Program Completed.");
|
System.out.println("Program Completed.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public final static class getRepositoryConfig {
|
|
||||||
public final static String getPath() {
|
|
||||||
String home = System.getenv("HOME") != null ? System.getenv("HOME")
|
|
||||||
: System.getenv("HOMEDRIVE") + System.getenv("HOMEPATH");
|
|
||||||
return home.replace('\\', '/') + "/workspace/reservationsystem/src/resources";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
27
src/main/java/lodge/TestMainFx.java
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package lodge;
|
||||||
|
|
||||||
|
import javafx.application.Application;
|
||||||
|
import javafx.fxml.FXMLLoader;
|
||||||
|
import javafx.scene.Parent;
|
||||||
|
import javafx.scene.Scene;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
|
public class TestMainFx extends Application {
|
||||||
|
@Override
|
||||||
|
public void start(Stage primaryStage) {
|
||||||
|
try {
|
||||||
|
primaryStage.setTitle("Lodge ReservationSystem");
|
||||||
|
Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("mainViewModel.fxml"));
|
||||||
|
Scene scene = new Scene(root, 800, 600);
|
||||||
|
primaryStage.setScene(scene);
|
||||||
|
primaryStage.show();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
launch(args);
|
||||||
|
}
|
||||||
|
}
|
||||||
75
src/main/java/lodge/TestMainFxCommandDialog.java
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
package lodge;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.fxml.FXMLLoader;
|
||||||
|
import javafx.scene.control.ButtonType;
|
||||||
|
import javafx.scene.control.Dialog;
|
||||||
|
import javafx.scene.control.TextField;
|
||||||
|
import javafx.util.Callback;
|
||||||
|
import lodge.datamodel.Address;
|
||||||
|
|
||||||
|
public class TestMainFxCommandDialog extends Dialog<Address> {
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private TextField tfStreet;
|
||||||
|
@FXML
|
||||||
|
private TextField tfCity;
|
||||||
|
@FXML
|
||||||
|
private TextField tfState;
|
||||||
|
@FXML
|
||||||
|
private TextField tfZip;
|
||||||
|
|
||||||
|
public TestMainFxCommandDialog() {
|
||||||
|
super();
|
||||||
|
|
||||||
|
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getClassLoader().getResource("dialogCommandAddress.fxml"));
|
||||||
|
fxmlLoader.setController(this);
|
||||||
|
try {
|
||||||
|
fxmlLoader.load();
|
||||||
|
} catch (IOException exception) {
|
||||||
|
throw new RuntimeException(exception);
|
||||||
|
}
|
||||||
|
getDialogPane().setContent(fxmlLoader.getRoot());
|
||||||
|
getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
|
||||||
|
setTitle("AccomodationAddress Dialog");
|
||||||
|
setHeaderText("Enter Inventory Details");
|
||||||
|
setPropertyBindings();
|
||||||
|
setResultConverter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setPropertyBindings() {
|
||||||
|
System.out.println("setPropertyBindings called.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setResultConverter() {
|
||||||
|
System.out.println("setResultConverter called.");
|
||||||
|
Callback<ButtonType, Address> aRC = (buttonType) -> {
|
||||||
|
if (buttonType == ButtonType.OK) {
|
||||||
|
if(getStreet().isEmpty() || getCity().isEmpty() || getState().isEmpty() || getZip().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new Address(getStreet(), getCity(), getState(), getZip());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
setResultConverter(aRC);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getZip() {
|
||||||
|
return tfZip.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getState() {
|
||||||
|
return tfState.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getCity() {
|
||||||
|
return tfCity.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getStreet() {
|
||||||
|
return tfStreet.getText();
|
||||||
|
}
|
||||||
|
}
|
||||||
80
src/main/java/lodge/TestMainFxView.java
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
package lodge;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
|
import javafx.collections.FXCollections;
|
||||||
|
import javafx.collections.ObservableList;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.control.TableColumn;
|
||||||
|
import javafx.scene.control.TableView;
|
||||||
|
import javafx.scene.control.cell.PropertyValueFactory;
|
||||||
|
import lodge.datamodel.Address;
|
||||||
|
|
||||||
|
public class TestMainFxView {
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Button btnAdd;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private TableView<Address> tvInventory;
|
||||||
|
|
||||||
|
private final ObservableList<Address> rows = FXCollections.observableArrayList();
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private void initialize() {
|
||||||
|
|
||||||
|
rows.add(new Address("10 wilco ave", "wilco", "WY", "82801"));
|
||||||
|
rows.add(new Address("30 Amstadam ave", "New York", "NY", "12010"));
|
||||||
|
rows.add(new Address("400 hotel ave", "Maryland City", "MD", "20723"));
|
||||||
|
rows.add(new Address("160 Canal Road", "South Bethany", "Delaware", "19930"));
|
||||||
|
|
||||||
|
TableColumn<Address, String> tcStreet = new TableColumn<>("Street");
|
||||||
|
TableColumn<Address, String> tcCity = new TableColumn<>("City");
|
||||||
|
TableColumn<Address, String> tcState = new TableColumn<>("State");
|
||||||
|
TableColumn<Address, String> tcZip = new TableColumn<>("Zip");
|
||||||
|
|
||||||
|
List<TableColumn<Address, String>> columns = new ArrayList<>();
|
||||||
|
|
||||||
|
tcStreet.setPrefWidth(100.0d);
|
||||||
|
tcStreet.setMinWidth(100.0d);
|
||||||
|
tcCity.setPrefWidth(100.0d);
|
||||||
|
tcState.setPrefWidth(100.0d);
|
||||||
|
tcZip.setPrefWidth(100.0d);
|
||||||
|
|
||||||
|
tcStreet.setCellValueFactory(new PropertyValueFactory<Address, String>("street"));
|
||||||
|
tcCity.setCellValueFactory(new PropertyValueFactory<Address, String>("city"));
|
||||||
|
tcState.setCellValueFactory(new PropertyValueFactory<Address, String>("state"));
|
||||||
|
tcZip.setCellValueFactory(new PropertyValueFactory<Address, String>("zip"));
|
||||||
|
|
||||||
|
tvInventory.getColumns().clear();
|
||||||
|
|
||||||
|
columns.add(tcStreet);
|
||||||
|
columns.add(tcCity);
|
||||||
|
columns.add(tcState);
|
||||||
|
columns.add(tcZip);
|
||||||
|
|
||||||
|
tvInventory.getColumns().addAll(columns);
|
||||||
|
tvInventory.itemsProperty().bind(new SimpleObjectProperty<>(rows));
|
||||||
|
|
||||||
|
btnAdd.setOnAction((ev) -> {
|
||||||
|
|
||||||
|
TestMainFxCommandDialog accomodationDialog = new TestMainFxCommandDialog();
|
||||||
|
|
||||||
|
Optional<Address> result = accomodationDialog.showAndWait();
|
||||||
|
|
||||||
|
if (result.isPresent()) {
|
||||||
|
System.out.println("result is present.");
|
||||||
|
// add to storage
|
||||||
|
rows.add((Address) result.get());
|
||||||
|
// bind to model
|
||||||
|
tvInventory.refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -60,7 +60,7 @@ public final class TestReservations {
|
|||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
// Configure data repository
|
// Configure data repository
|
||||||
AccomodationManager mgr = new AccomodationManager(getRepositoryConfig.getPath());
|
AccomodationManager mgr = new AccomodationManager(AccomodationManager.getRepositoryConfig.getPath());
|
||||||
|
|
||||||
// 1. Get the list of loaded accounts from Manager
|
// 1. Get the list of loaded accounts from Manager
|
||||||
mgr.loadAll();
|
mgr.loadAll();
|
||||||
@@ -149,12 +149,4 @@ public final class TestReservations {
|
|||||||
|
|
||||||
System.out.println("Program Completed.");
|
System.out.println("Program Completed.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public final static class getRepositoryConfig {
|
|
||||||
public final static String getPath() {
|
|
||||||
String home = System.getenv("HOME") != null ? System.getenv("HOME")
|
|
||||||
: System.getenv("HOMEDRIVE") + System.getenv("HOMEPATH");
|
|
||||||
return home.replace('\\', '/') + "/workspace/reservationsystem/src/resources";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ public final class Address{
|
|||||||
/** not used
|
/** not used
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private Address() {
|
public Address() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Address(String street, String city, String state, String zip) {
|
public Address(String street, String city, String state, String zip) {
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public abstract class Reservation implements IReservation{
|
|||||||
|
|
||||||
private Float price;
|
private Float price;
|
||||||
|
|
||||||
protected String accountNumber = null;
|
protected String accountNumber = "-99";
|
||||||
|
|
||||||
protected Reservation() {
|
protected Reservation() {
|
||||||
numberOfBeds = 1;
|
numberOfBeds = 1;
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ package lodge.reservationsystem;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -28,7 +27,6 @@ public final class AccomodationManager {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public AccomodationManager(String home) {
|
public AccomodationManager(String home) {
|
||||||
|
|
||||||
setDataStoreRoot(home);
|
setDataStoreRoot(home);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -36,12 +34,15 @@ public final class AccomodationManager {
|
|||||||
DataRepository.setDataStoreRoot(home);
|
DataRepository.setDataStoreRoot(home);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getDataStoreRoot(){
|
||||||
|
return DataRepository.getPath();
|
||||||
|
}
|
||||||
|
|
||||||
public final void loadAll()
|
public final void loadAll()
|
||||||
throws IOException, IllegalArgumentException, IllegalOperationException, DuplicateObjectException {
|
throws IOException, IllegalArgumentException, IllegalOperationException, DuplicateObjectException {
|
||||||
accounts.clear();
|
accounts.clear();
|
||||||
// walk directories
|
// walk directories
|
||||||
Path rootDir = Paths.get(DataRepository.getPath());
|
DataRepository.WalkFileSystemTree(this, Path.of(DataRepository.getPath()));
|
||||||
DataRepository.WalkFileSystemTree(this, rootDir);
|
|
||||||
System.out.println(String.format("%s LoadAll Accounts %d", "Deserializing", accounts.size()));
|
System.out.println(String.format("%s LoadAll Accounts %d", "Deserializing", accounts.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,4 +126,12 @@ public final class AccomodationManager {
|
|||||||
System.out.println(String.format("Account %s", acct.getAccount_number()));
|
System.out.println(String.format("Account %s", acct.getAccount_number()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final static class getRepositoryConfig {
|
||||||
|
public final static String getPath() {
|
||||||
|
String home = System.getenv("HOME") != null ? System.getenv("HOME")
|
||||||
|
: System.getenv("HOMEDRIVE") + System.getenv("HOMEPATH");
|
||||||
|
return home.replace('\\', '/') + "/workspace/reservationsystem/src/resources/db";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -43,9 +43,6 @@ public final class CabinReservation extends Reservation {
|
|||||||
if (getPhysical_address() == null) {
|
if (getPhysical_address() == null) {
|
||||||
throw new IllegalArgumentException(String.format("not valid, physical_address %s", this.getReservation_number()));
|
throw new IllegalArgumentException(String.format("not valid, physical_address %s", this.getReservation_number()));
|
||||||
}
|
}
|
||||||
if (getMailing_address() == null) {
|
|
||||||
throw new IllegalArgumentException(String.format("not valid, mailing_address: %s", this.getReservation_number()));
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,9 +65,6 @@ public final class HotelReservation extends Reservation {
|
|||||||
if (getPhysical_address() == null) {
|
if (getPhysical_address() == null) {
|
||||||
throw new IllegalArgumentException(String.format("not valid, physical_address %s", this.getReservation_number()));
|
throw new IllegalArgumentException(String.format("not valid, physical_address %s", this.getReservation_number()));
|
||||||
}
|
}
|
||||||
if (getMailing_address() == null) {
|
|
||||||
throw new IllegalArgumentException(String.format("not valid, mailing_address: %s", this.getReservation_number()));
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,9 +53,6 @@ public final class HouseReservation extends Reservation {
|
|||||||
if (getPhysical_address() == null) {
|
if (getPhysical_address() == null) {
|
||||||
throw new IllegalArgumentException(String.format("not valid, physical_address %s", this.getReservation_number()));
|
throw new IllegalArgumentException(String.format("not valid, physical_address %s", this.getReservation_number()));
|
||||||
}
|
}
|
||||||
if (getMailing_address() == null) {
|
|
||||||
throw new IllegalArgumentException(String.format("not valid, mailing_address: %s", this.getReservation_number()));
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
{ "Account":{"account_number": "A07421233","phone_number": "301-356-3890","mailing_address": { "Address":{"street": "30 Amstadam ave","city": "New York","state": "NY","zip": "12010"}},"email_address": { "EmailAddress":{"email": "newbee952@aol.com"}},"reservations":[{"HotelReservation":{"reservation_number":"R0123087344"}},{"CabinReservation":{"reservation_number":"R2042828431"}}]}}
|
|
||||||
41
src/resources/db/acc-A07421233.json
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"Account": {
|
||||||
|
"account_number": "A07421233",
|
||||||
|
"phone_number": "301-356-3890",
|
||||||
|
"mailing_address": {
|
||||||
|
"Address": {
|
||||||
|
"street": "30 Amstadam ave",
|
||||||
|
"city": "New York",
|
||||||
|
"state": "NY",
|
||||||
|
"zip": "12010"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"email_address": {
|
||||||
|
"EmailAddress": {
|
||||||
|
"email": "newbee952@aol.com"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"reservations": [
|
||||||
|
{
|
||||||
|
"HotelReservation": {
|
||||||
|
"reservation_number": "R0123087344"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"CabinReservation": {
|
||||||
|
"reservation_number": "R2042828431"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"CabinReservation": {
|
||||||
|
"reservation_number": "R0535276622"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"HouseReservation": {
|
||||||
|
"reservation_number": "R0499811708"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
{ "Account":{"account_number": "A45098176","phone_number": "701-456-7890","mailing_address": { "Address":{"street": "10 wilco ave","city": "wilco","state": "WY","zip": "82801"}},"email_address": { "EmailAddress":{"email": "wilco@wyommin.net"}},"reservations":[{"CabinReservation":{"reservation_number":"R0535276622"}},{"HouseReservation":{"reservation_number":"R0499811708"}}]}}
|
{ "Account":{"account_number": "A45098176","phone_number": "701-456-7890","mailing_address": { "Address":{"street": "10 wilco ave","city": "wilco","state": "WY","zip": "82801"}},"email_address": { "EmailAddress":{"email": "wilco@wyommin.net"}},"reservations":[{"HotelReservation":{"reservation_number":"R0123087344"}},{"CabinReservation":{"reservation_number":"R2042828431"}}]}}
|
||||||
@@ -1 +1 @@
|
|||||||
{ "HotelReservation":{"reservation_type": "HotelReservation","reservation_number": "R0123087344","reservation_status": "Canceled","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-09-09T10:00Z[UTC]","account_number": "A07421233","physical_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "MD","zip": "20723"}},"mailing_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "MD","zip": "20723"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "410.0"}}
|
{ "HotelReservation":{"reservation_type": "HotelReservation","reservation_number": "R0123087344","reservation_status": "Canceled","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-09-09T10:00Z[UTC]","account_number": "A45098176","physical_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "MD","zip": "20723"}},"mailing_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "MD","zip": "20723"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "410.0"}}
|
||||||
@@ -1 +1 @@
|
|||||||
{ "HouseReservation":{"reservation_type": "HouseReservation","reservation_number": "R0499811708","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-09-09T10:00Z[UTC]","account_number": "A45098176","physical_address": { "Address":{"street": "3000 Osage ave","city": "GreenBelt","state": "MD","zip": "20740"}},"mailing_address": { "Address":{"street": "40012 College ave","city": "College Park","state": "MD","zip": "20740"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "360.0"}}
|
{ "HouseReservation":{"reservation_type": "HouseReservation","reservation_number": "R0499811708","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-09-09T10:00Z[UTC]","account_number": "A07421233","physical_address": { "Address":{"street": "3000 Osage ave","city": "GreenBelt","state": "MD","zip": "20740"}},"mailing_address": { "Address":{"street": "40012 College ave","city": "College Park","state": "MD","zip": "20740"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "360.0"}}
|
||||||
1
src/resources/db/res-R0535276622.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ "CabinReservation":{"reservation_type": "CabinReservation","reservation_number": "R0535276622","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-09-09T10:00Z[UTC]","account_number": "A07421233","physical_address": { "Address":{"street": "40 cabin ave","city": "Carnelian","state": "CA","zip": "96140"}},"mailing_address": { "Address":{"street": "40 cabin ave","city": "Carnelian Bay","state": "CA","zip": "96140"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "360.0"}}
|
||||||
@@ -1 +1 @@
|
|||||||
{ "CabinReservation":{"reservation_type": "CabinReservation","reservation_number": "R2042828431","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-09-09T10:00Z[UTC]","account_number": "A07421233","physical_address": { "Address":{"street": "30 cabin ave","city": "Carnelian","state": "CA","zip": "96140"}},"mailing_address": { "Address":{"street": "30 cabin ave","city": "Carnelian Bay","state": "CA","zip": "96140"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "360.0"}}
|
{ "CabinReservation":{"reservation_type": "CabinReservation","reservation_number": "R2042828431","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-09-09T10:00Z[UTC]","account_number": "A45098176","physical_address": { "Address":{"street": "30 cabin ave","city": "Carnelian","state": "CA","zip": "96140"}},"mailing_address": { "Address":{"street": "30 cabin ave","city": "Carnelian Bay","state": "CA","zip": "96140"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "360.0"}}
|
||||||
59
src/resources/media/dialogCommandAddress.fxml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.ButtonBar?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.TextField?>
|
||||||
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
|
<?import javafx.scene.layout.GridPane?>
|
||||||
|
<?import javafx.scene.layout.RowConstraints?>
|
||||||
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
|
||||||
|
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="364.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/25.0.1">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="294.0" minWidth="-Infinity" prefWidth="168.0" />
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="477.0" minWidth="10.0" prefWidth="432.0" />
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints maxHeight="128.0" minHeight="10.0" prefHeight="43.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="189.0" minHeight="10.0" prefHeight="48.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="309.0" minHeight="10.0" prefHeight="180.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
|
<children>
|
||||||
|
<Label prefHeight="18.0" prefWidth="165.0" text="Email:" />
|
||||||
|
<TextField promptText="email address" GridPane.columnIndex="1" />
|
||||||
|
<Label prefHeight="18.0" prefWidth="165.0" text="Phone Number:" GridPane.rowIndex="1" />
|
||||||
|
<Label prefHeight="18.0" prefWidth="165.0" text="Mailing Address:" GridPane.rowIndex="2" />
|
||||||
|
<TextField promptText="phone number" GridPane.columnIndex="1" GridPane.rowIndex="1" />
|
||||||
|
<VBox prefHeight="180.0" prefWidth="432.0" GridPane.columnIndex="1" GridPane.rowIndex="2">
|
||||||
|
<children>
|
||||||
|
<Label text="Street" />
|
||||||
|
<TextField fx:id="tfStreet" promptText="street"/>
|
||||||
|
<GridPane prefHeight="90.0" prefWidth="432.0">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="210.0" minWidth="10.0" prefWidth="151.0" />
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="295.0" minWidth="10.0" prefWidth="123.0" />
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="295.0" minWidth="10.0" prefWidth="159.0" />
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints maxHeight="40.0" minHeight="10.0" prefHeight="33.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="66.0" minHeight="10.0" prefHeight="48.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="66.0" minHeight="10.0" prefHeight="54.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="40.0" minHeight="10.0" prefHeight="17.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
|
<children>
|
||||||
|
<Label text="State" GridPane.columnIndex="1" />
|
||||||
|
<Label text="City" />
|
||||||
|
<Label text="Zip" GridPane.columnIndex="2" />
|
||||||
|
<TextField fx:id="tfCity" prefHeight="38.0" prefWidth="150.0" GridPane.rowIndex="1" />
|
||||||
|
<TextField fx:id="tfState" prefHeight="38.0" prefWidth="120.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
|
||||||
|
<TextField fx:id="tfZip" prefHeight="38.0" prefWidth="159.0" GridPane.columnIndex="2" GridPane.rowIndex="1" />
|
||||||
|
</children>
|
||||||
|
</GridPane>
|
||||||
|
<ButtonBar prefHeight="38.0" prefWidth="429.0">
|
||||||
|
<buttons/>
|
||||||
|
</ButtonBar>
|
||||||
|
</children>
|
||||||
|
</VBox>
|
||||||
|
</children>
|
||||||
|
</GridPane>
|
||||||
124
src/resources/media/mainViewModel.fxml
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2015, 2019, Gluon and/or its affiliates.
|
||||||
|
All rights reserved. Use is subject to license terms.
|
||||||
|
|
||||||
|
This file is available and licensed under the following license:
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
- Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
- Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the distribution.
|
||||||
|
- Neither the name of Oracle Corporation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.ButtonBar?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.SplitPane?>
|
||||||
|
<?import javafx.scene.control.TableColumn?>
|
||||||
|
<?import javafx.scene.control.TableView?>
|
||||||
|
<?import javafx.scene.control.TextField?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.HBox?>
|
||||||
|
<?import javafx.scene.layout.Pane?>
|
||||||
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
<?import javafx.scene.paint.Color?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
|
||||||
|
<VBox prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/25.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lodge.TestMainFxView">
|
||||||
|
<children>
|
||||||
|
<SplitPane dividerPositions="0.31469933184855237" focusTraversable="true" prefHeight="-1.0" prefWidth="-1.0" VBox.vgrow="ALWAYS">
|
||||||
|
<items>
|
||||||
|
<AnchorPane maxWidth="200.0" prefHeight="549.0" prefWidth="300.0">
|
||||||
|
<children>
|
||||||
|
<SplitPane dividerPositions="0.2979094076655052, 0.6480836236933798" layoutY="88.0" orientation="VERTICAL" prefHeight="576.0" prefWidth="140.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<items>
|
||||||
|
<AnchorPane prefHeight="291.0" prefWidth="98.0">
|
||||||
|
<VBox>
|
||||||
|
<children>
|
||||||
|
<ButtonBar layoutY="71.0" prefHeight="40.0" prefWidth="129.0">
|
||||||
|
<buttons>
|
||||||
|
<Button fx:id="btnAdd" mnemonicParsing="false" prefHeight="30.0" text="Add" />
|
||||||
|
<Button mnemonicParsing="false" prefHeight="30.0" text="Reserve" />
|
||||||
|
</buttons>
|
||||||
|
</ButtonBar>
|
||||||
|
</children></VBox></AnchorPane>
|
||||||
|
<AnchorPane prefHeight="78.0" prefWidth="98.0" />
|
||||||
|
<AnchorPane prefHeight="223.0" prefWidth="98.0" />
|
||||||
|
</items>
|
||||||
|
</SplitPane>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="459.0" prefWidth="574.0">
|
||||||
|
<children>
|
||||||
|
<Label alignment="CENTER" layoutX="10.0" layoutY="10.0" style=" " text="Accomodations" textAlignment="CENTER" wrapText="false">
|
||||||
|
<font>
|
||||||
|
<Font size="18.0" fx:id="x1" />
|
||||||
|
</font>
|
||||||
|
<textFill>
|
||||||
|
<Color red="0.624" green="0.624" blue="0.624" fx:id="x2" />
|
||||||
|
</textFill></Label>
|
||||||
|
<VBox layoutX="34.0" layoutY="54.0" prefHeight="576.0" prefWidth="761.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<children>
|
||||||
|
<HBox prefHeight="36.0" prefWidth="483.0">
|
||||||
|
<children>
|
||||||
|
<Label prefHeight="30.0" prefWidth="66.0" text="" />
|
||||||
|
<Label prefHeight="28.0" prefWidth="115.0" />
|
||||||
|
<TextField prefHeight="31.0" prefWidth="314.0" promptText="search" />
|
||||||
|
</children>
|
||||||
|
</HBox>
|
||||||
|
<TableView fx:id="tvInventory" prefHeight="501.0" prefWidth="761.0">
|
||||||
|
<columns>
|
||||||
|
<TableColumn prefWidth="75.0" text="Street" />
|
||||||
|
<TableColumn prefWidth="75.0" text="City" />
|
||||||
|
<TableColumn prefWidth="75.0" text="State" />
|
||||||
|
<TableColumn prefWidth="75.0" text="Zip" />
|
||||||
|
</columns>
|
||||||
|
</TableView>
|
||||||
|
</children>
|
||||||
|
</VBox>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</items>
|
||||||
|
</SplitPane>
|
||||||
|
<HBox id="HBox" alignment="CENTER_LEFT" spacing="5.0" VBox.vgrow="NEVER">
|
||||||
|
<children>
|
||||||
|
<Label maxHeight="1.7976931348623157E308" maxWidth="-1.0" text="Left status" HBox.hgrow="ALWAYS">
|
||||||
|
<font>
|
||||||
|
<Font size="11.0" fx:id="x3" />
|
||||||
|
</font>
|
||||||
|
<textFill>
|
||||||
|
<Color red="0.625" green="0.625" blue="0.625" fx:id="x4" />
|
||||||
|
</textFill>
|
||||||
|
</Label>
|
||||||
|
<Pane prefHeight="-1.0" prefWidth="-1.0" HBox.hgrow="ALWAYS" />
|
||||||
|
<Label font="$x3" maxWidth="-1.0" text="Right status" textFill="$x4" HBox.hgrow="NEVER" />
|
||||||
|
</children>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="3.0" left="3.0" right="3.0" top="3.0" />
|
||||||
|
</padding>
|
||||||
|
</HBox>
|
||||||
|
</children>
|
||||||
|
</VBox>
|
||||||
@@ -1 +0,0 @@
|
|||||||
{ "CabinReservation":{"reservation_type": "CabinReservation","reservation_number": "R0535276622","reservation_status": "Completed","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-09-09T10:00Z[UTC]","account_number": "A45098176","physical_address": { "Address":{"street": "40 cabin ave","city": "Carnelian","state": "CA","zip": "96140"}},"mailing_address": { "Address":{"street": "40 cabin ave","city": "Carnelian Bay","state": "CA","zip": "96140"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "360.0"}}
|
|
||||||
@@ -83,7 +83,7 @@ digraph ClassDiagram {
|
|||||||
|
|
||||||
// Composition / Aggregation
|
// Composition / Aggregation
|
||||||
AccomodationManager -> AccountList [arrowhead=diamond, label="has a"];
|
AccomodationManager -> AccountList [arrowhead=diamond, label="has a"];
|
||||||
AccountList -> Account [arrowhead=diamond, label="0..*"];
|
AccountList -> Account [arrowhead=odiamond, label="0..*"];
|
||||||
Account -> AccountReservationList [arrowhead=diamond, label="has a"];
|
Account -> AccountReservationList [arrowhead=diamond, label="has a"];
|
||||||
AccountReservationList -> IReservation [arrowhead=diamond, label="0..*"];
|
AccountReservationList -> IReservation [arrowhead=diamond, label="0..*"];
|
||||||
Account -> Address [arrowhead=odiamond, label="mailing"];
|
Account -> Address [arrowhead=odiamond, label="mailing"];
|
||||||
|
|||||||
@@ -1,323 +1,317 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2188pt" height="1090pt" viewBox="0.00 0.00 2188.25 1089.60">
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<g id="graph0" class="graph" transform="translate(4,1085.5999755859375) scale(1)" data-name="ClassDiagram">
|
||||||
<!-- Generated by graphviz version 14.0.0 (20250921.2048)
|
|
||||||
-->
|
<polygon fill="white" stroke="none" points="-4,4 -4,-1085.6 2184.25,-1085.6 2184.25,4 -4,4" style=""/>
|
||||||
<!-- Title: ClassDiagram Pages: 1 -->
|
|
||||||
<svg width="2238pt" height="1056pt"
|
|
||||||
viewBox="0.00 0.00 2238.00 1056.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 1052)">
|
|
||||||
<title>ClassDiagram</title>
|
|
||||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1052 2233.62,-1052 2233.62,4 -4,4"/>
|
|
||||||
<!-- IReservation -->
|
<!-- IReservation -->
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node" pointer-events="visible" data-name="IReservation">
|
||||||
<title>IReservation</title>
|
|
||||||
<polygon fill="palegreen" stroke="black" points="90.75,-0.5 90.75,-142.5 315.25,-142.5 315.25,-0.5 90.75,-0.5"/>
|
<polygon fill="palegreen" stroke="black" points="96.96,-0.5 96.96,-150.9 309.04,-150.9 309.04,-0.5 96.96,-0.5" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="203" y="-125.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">interface</text>
|
<text text-anchor="middle" x="203" y="-134.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">interface</text>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="203" y="-109.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">IReservation</text>
|
<text text-anchor="middle" x="203" y="-117.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">IReservation</text>
|
||||||
<polyline fill="none" stroke="black" points="90.75,-103 315.25,-103"/>
|
<polyline fill="none" stroke="black" points="96.96,-109.3 309.04,-109.3" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-85.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ ReservationType(): String</text>
|
<text text-anchor="start" x="104.96" y="-92.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ ReservationType(): String</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-69.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ checkValid(): boolean</text>
|
<text text-anchor="start" x="104.96" y="-75.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ checkValid(): boolean</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-54.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ calculatePrice(): float</text>
|
<text text-anchor="start" x="104.96" y="-59.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ calculatePrice(): float</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-38.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getReservation_number(): String</text>
|
<text text-anchor="start" x="104.96" y="-42.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ getReservation_number(): String</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-22.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getPhysical_address(): Address</text>
|
<text text-anchor="start" x="104.96" y="-25.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ getPhysical_address(): Address</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="98.75" y="-6.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getAccountNumber(): String</text>
|
<text text-anchor="start" x="104.96" y="-8.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ getAccountNumber(): String</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Reservation -->
|
<!-- Reservation -->
|
||||||
<g id="node2" class="node">
|
<g id="node2" class="node" pointer-events="visible" data-name="Reservation">
|
||||||
<title>Reservation</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="517,-575 517,-611 605,-611 605,-575 517,-575"/>
|
<polygon fill="lightyellow" stroke="black" points="507.57,-593.9 507.57,-629.9 590.43,-629.9 590.43,-593.9 507.57,-593.9" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="561" y="-587.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Reservation</text>
|
<text text-anchor="middle" x="549" y="-607.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">Reservation</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Reservation->IReservation -->
|
<!-- Reservation->IReservation -->
|
||||||
<g id="edge1" class="edge">
|
<g id="edge1" class="edge" data-name="Reservation->IReservation">
|
||||||
<title>Reservation->IReservation</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M516.64,-587C428.97,-587 241.94,-587 241.94,-587 241.94,-587 241.94,-154.42 241.94,-154.42"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M507.77,-605C425.81,-605 250.22,-605 250.22,-605 250.22,-605 250.22,-162.21 250.22,-162.21" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="245.44,-154.42 241.94,-144.42 238.44,-154.42 245.44,-154.42"/>
|
<polygon fill="none" stroke="black" points="253.72,-162.21 250.22,-152.21 246.72,-162.21 253.72,-162.21" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="181.25" y="-354.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">implements</text>
|
<text text-anchor="middle" x="178.66" y="-368.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">implements</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- DataRepository -->
|
<!-- DataRepository -->
|
||||||
<g id="node4" class="node">
|
<g id="node4" class="node" pointer-events="visible" data-name="DataRepository">
|
||||||
<title>DataRepository</title>
|
|
||||||
<polygon fill="orchid" stroke="black" points="947.5,-258.88 947.5,-294.88 1056.5,-294.88 1056.5,-258.88 947.5,-258.88"/>
|
<polygon fill="orchid" stroke="black" points="932.07,-269.9 932.07,-305.9 1035.93,-305.9 1035.93,-269.9 932.07,-269.9" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1002" y="-271.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">DataRepository</text>
|
<text text-anchor="middle" x="984" y="-283.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">DataRepository</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Reservation->DataRepository -->
|
<!-- Reservation->DataRepository -->
|
||||||
<g id="edge24" class="edge">
|
<g id="edge24" class="edge" data-name="Reservation->DataRepository">
|
||||||
<title>Reservation->DataRepository</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M605.37,-587C707.62,-587 951.12,-587 951.12,-587 951.12,-587 951.12,-306.56 951.12,-306.56"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M590.17,-605C696.93,-605 974.38,-605 974.38,-605 974.38,-605 974.38,-315.86 974.38,-315.86" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="951.13,-296.56 955.63,-306.56 951.13,-300.35 951.13,-306.56 951.13,-306.56 951.13,-306.56 951.13,-300.35 946.63,-306.56 951.13,-296.56"/>
|
<polygon fill="black" stroke="black" points="974.38,-305.86 978.88,-315.86 974.38,-310.86 974.38,-315.86 974.38,-315.86 974.38,-315.86 974.38,-310.86 969.88,-315.86 974.38,-305.86 974.38,-305.86" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="847.12" y="-425.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses for Write()</text>
|
<text text-anchor="middle" x="830.31" y="-441.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">uses for Write()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Address -->
|
<!-- Address -->
|
||||||
<g id="node13" class="node">
|
<g id="node13" class="node" pointer-events="visible" data-name="Address">
|
||||||
<title>Address</title>
|
|
||||||
<polygon fill="lightblue" stroke="black" points="436.38,-253.12 436.38,-300.62 685.62,-300.62 685.62,-253.12 436.38,-253.12"/>
|
<polygon fill="lightblue" stroke="black" points="428.74,-263.1 428.74,-312.7 669.26,-312.7 669.26,-263.1 428.74,-263.1" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="561" y="-283.32" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Address</text>
|
<text text-anchor="middle" x="549" y="-296.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">Address</text>
|
||||||
<polyline fill="none" stroke="black" points="436.38,-276.88 685.62,-276.88"/>
|
<polyline fill="none" stroke="black" points="428.74,-287.9 669.26,-287.9" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="444.38" y="-259.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ Address(String, String, String, String)</text>
|
<text text-anchor="start" x="436.74" y="-271.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ Address(String, String, String, String)</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Reservation->Address -->
|
<!-- Reservation->Address -->
|
||||||
<g id="edge11" class="edge">
|
<g id="edge11" class="edge" data-name="Reservation->Address">
|
||||||
<title>Reservation->Address</title>
|
|
||||||
<path fill="none" stroke="black" d="M575.67,-574.64C575.67,-574.64 575.67,-313.79 575.67,-313.79"/>
|
<path fill="none" stroke="black" d="M562.81,-594.02C562.81,-594.02 562.81,-324.57 562.81,-324.57" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="575.67,-313.64 571.67,-307.64 575.67,-301.64 579.67,-307.64 575.67,-313.64"/>
|
<polygon fill="none" stroke="black" points="562.81,-324.57 558.81,-318.57 562.81,-312.57 566.81,-318.57 562.81,-324.57" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="609" y="-425.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">physical/mailing</text>
|
<text text-anchor="middle" x="595.66" y="-441.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">physical/mailing</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- ReservationStatusEnum -->
|
<!-- ReservationStatusEnum -->
|
||||||
<g id="node15" class="node">
|
<g id="node15" class="node" pointer-events="visible" data-name="ReservationStatusEnum">
|
||||||
<title>ReservationStatusEnum</title>
|
|
||||||
<polygon fill="lightgray" stroke="black" points="254.88,-411.25 254.88,-450.75 417.12,-450.75 417.12,-411.25 254.88,-411.25"/>
|
<polygon fill="lightgray" stroke="black" points="254.73,-424.9 254.73,-466.5 405.27,-466.5 405.27,-424.9 254.73,-424.9" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="336" y="-433.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">enum</text>
|
<text text-anchor="middle" x="330" y="-449.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">enum</text>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="336" y="-417.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">ReservationStatusEnum</text>
|
<text text-anchor="middle" x="330" y="-433.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">ReservationStatusEnum</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Reservation->ReservationStatusEnum -->
|
<!-- Reservation->ReservationStatusEnum -->
|
||||||
<g id="edge25" class="edge">
|
<g id="edge25" class="edge" data-name="Reservation->ReservationStatusEnum">
|
||||||
<title>Reservation->ReservationStatusEnum</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M546.33,-574.81C546.33,-530.4 546.33,-420 546.33,-420 546.33,-420 428.84,-420 428.84,-420"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M535.19,-594.19C535.19,-549.19 535.19,-434 535.19,-434 535.19,-434 415.24,-434 415.24,-434" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="418.84,-420 428.84,-415.5 422.62,-420 428.84,-420 428.84,-420 428.84,-420 422.62,-420 428.84,-424.5 418.84,-420"/>
|
<polygon fill="black" stroke="black" points="405.24,-434 415.24,-429.5 410.24,-434 415.24,-434 415.24,-434 415.24,-434 410.24,-434 415.24,-438.5 405.24,-434 405.24,-434" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="350.25" y="-496.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
<text text-anchor="middle" x="342.06" y="-514.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccomodationManager -->
|
<!-- AccomodationManager -->
|
||||||
<g id="node3" class="node">
|
<g id="node3" class="node" pointer-events="visible" data-name="AccomodationManager">
|
||||||
<title>AccomodationManager</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1026.5,-735.25 1026.5,-908.75 1375.5,-908.75 1375.5,-735.25 1026.5,-735.25"/>
|
<polygon fill="lightyellow" stroke="black" points="1010.14,-757.3 1010.14,-941.3 1345.86,-941.3 1345.86,-757.3 1010.14,-757.3" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1201" y="-891.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">AccomodationManager</text>
|
<text text-anchor="middle" x="1178" y="-924.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">AccomodationManager</text>
|
||||||
<polyline fill="none" stroke="black" points="1026.5,-885 1375.5,-885"/>
|
<polyline fill="none" stroke="black" points="1010.14,-916.5 1345.86,-916.5" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-867.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ AccomodationManager(String)</text>
|
<text text-anchor="start" x="1018.14" y="-899.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ AccomodationManager(String)</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-851.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ loadAll(): void</text>
|
<text text-anchor="start" x="1018.14" y="-883.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ loadAll(): void</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-836.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ retrieveAccount(String): Account</text>
|
<text text-anchor="start" x="1018.14" y="-866.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ retrieveAccount(String): Account</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-820.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ retrieveLoadedAccounts(): AccountList</text>
|
<text text-anchor="start" x="1018.14" y="-849.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ retrieveLoadedAccounts(): AccountList</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-804.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ newAccount(String, Address, EmailAddress): Account</text>
|
<text text-anchor="start" x="1018.14" y="-832.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ newAccount(String, Address, EmailAddress): Account</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-788.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ AddAccount(Account): void</text>
|
<text text-anchor="start" x="1018.14" y="-815.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ AddAccount(Account): void</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-773.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ UpdateAccount(Account): void</text>
|
<text text-anchor="start" x="1018.14" y="-799.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ UpdateAccount(Account): void</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-757.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ addReservation(Account, Reservation): boolean</text>
|
<text text-anchor="start" x="1018.14" y="-782.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ addReservation(Account, Reservation): boolean</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1034.5" y="-741.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ showReservationList(): void</text>
|
<text text-anchor="start" x="1018.14" y="-765.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ showReservationList(): void</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccomodationManager->DataRepository -->
|
<!-- AccomodationManager->DataRepository -->
|
||||||
<g id="edge21" class="edge">
|
<g id="edge21" class="edge" data-name="AccomodationManager->DataRepository">
|
||||||
<title>AccomodationManager->DataRepository</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1036.5,-735.02C1036.5,-735.02 1036.5,-306.25 1036.5,-306.25"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1018.74,-757.54C1018.74,-757.54 1018.74,-315.5 1018.74,-315.5" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1036.5,-296.25 1041,-306.25 1036.5,-300.03 1036.5,-306.25 1036.5,-306.25 1036.5,-306.25 1036.5,-300.03 1032,-306.25 1036.5,-296.25"/>
|
<polygon fill="black" stroke="black" points="1018.74,-305.5 1023.24,-315.5 1018.74,-310.5 1018.74,-315.5 1018.74,-315.5 1018.74,-315.5 1018.74,-310.5 1014.24,-315.5 1018.74,-305.5 1018.74,-305.5" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1016.25" y="-496.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
<text text-anchor="middle" x="996.06" y="-514.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account -->
|
<!-- Account -->
|
||||||
<g id="node5" class="node">
|
<g id="node5" class="node" pointer-events="visible" data-name="Account">
|
||||||
<title>Account</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1360.62,-413 1360.62,-449 1425.38,-449 1425.38,-413 1360.62,-413"/>
|
<polygon fill="lightyellow" stroke="black" points="1332.29,-427.7 1332.29,-463.7 1395.71,-463.7 1395.71,-427.7 1332.29,-427.7" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1393" y="-425.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Account</text>
|
<text text-anchor="middle" x="1364" y="-441.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">Account</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccomodationManager->Account -->
|
<!-- AccomodationManager->Account -->
|
||||||
<g id="edge22" class="edge">
|
<g id="edge22" class="edge" data-name="AccomodationManager->Account">
|
||||||
<title>AccomodationManager->Account</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1268.38,-734.82C1268.38,-622.63 1268.38,-442 1268.38,-442 1268.38,-442 1349.04,-442 1349.04,-442"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1243.44,-757.58C1243.44,-641.37 1243.44,-456 1243.44,-456 1243.44,-456 1322.32,-456 1322.32,-456" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1359.04,-442 1349.04,-446.5 1355.26,-442 1349.04,-442 1349.04,-442 1349.04,-442 1355.26,-442 1349.04,-437.5 1359.04,-442"/>
|
<polygon fill="black" stroke="black" points="1332.32,-456 1322.32,-460.5 1327.32,-456 1322.32,-456 1322.32,-456 1322.32,-456 1327.32,-456 1322.32,-451.5 1332.32,-456 1332.32,-456" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1211.12" y="-587.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">manages</text>
|
<text text-anchor="middle" x="1189.49" y="-607.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">manages</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccountList -->
|
<!-- AccountList -->
|
||||||
<g id="node6" class="node">
|
<g id="node6" class="node" pointer-events="visible" data-name="AccountList">
|
||||||
<title>AccountList</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1311.12,-553.5 1311.12,-632.5 1474.88,-632.5 1474.88,-553.5 1311.12,-553.5"/>
|
<polygon fill="lightyellow" stroke="black" points="1285.97,-570.3 1285.97,-653.5 1442.03,-653.5 1442.03,-570.3 1285.97,-570.3" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1393" y="-615.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">AccountList</text>
|
<text text-anchor="middle" x="1364" y="-636.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">AccountList</text>
|
||||||
<polyline fill="none" stroke="black" points="1311.12,-608.75 1474.88,-608.75"/>
|
<polyline fill="none" stroke="black" points="1285.97,-628.7 1442.03,-628.7" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1319.12" y="-591.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ add(Account): boolean</text>
|
<text text-anchor="start" x="1293.97" y="-612.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ add(Account): boolean</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1319.12" y="-575.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ find(String): Account</text>
|
<text text-anchor="start" x="1293.97" y="-595.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ find(String): Account</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1319.12" y="-559.95" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ save(Account): void</text>
|
<text text-anchor="start" x="1293.97" y="-578.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ save(Account): void</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccomodationManager->AccountList -->
|
<!-- AccomodationManager->AccountList -->
|
||||||
<g id="edge5" class="edge">
|
<g id="edge5" class="edge" data-name="AccomodationManager->AccountList">
|
||||||
<title>AccomodationManager->AccountList</title>
|
|
||||||
<path fill="none" stroke="black" d="M1343.31,-734.77C1343.31,-734.77 1343.31,-645.8 1343.31,-645.8"/>
|
<path fill="none" stroke="black" d="M1315.91,-757.51C1315.91,-757.51 1315.91,-665.24 1315.91,-665.24" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1343.31,-645.65 1339.31,-639.65 1343.31,-633.65 1347.31,-639.65 1343.31,-645.65"/>
|
<polygon fill="black" stroke="black" points="1315.91,-665.24 1311.91,-659.24 1315.91,-653.24 1319.91,-659.24 1315.91,-665.24" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1380.5" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">has a</text>
|
<text text-anchor="middle" x="1353.19" y="-701.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">has a</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->DataRepository -->
|
<!-- Account->DataRepository -->
|
||||||
<g id="edge23" class="edge">
|
<g id="edge23" class="edge" data-name="Account->DataRepository">
|
||||||
<title>Account->DataRepository</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1360.4,-427C1274.15,-427 1046.5,-427 1046.5,-427 1046.5,-427 1046.5,-306.5 1046.5,-306.5"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1332.33,-442C1248.52,-442 1027.34,-442 1027.34,-442 1027.34,-442 1027.34,-315.88 1027.34,-315.88" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1046.5,-296.5 1051,-306.5 1046.5,-300.28 1046.5,-306.5 1046.5,-306.5 1046.5,-306.5 1046.5,-300.28 1042,-306.5 1046.5,-296.5"/>
|
<polygon fill="black" stroke="black" points="1027.34,-305.88 1031.84,-315.88 1027.34,-310.88 1027.34,-315.88 1027.34,-315.88 1027.34,-315.88 1027.34,-310.88 1022.84,-315.88 1027.34,-305.88 1027.34,-305.88" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1283.12" y="-354.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses for Write()</text>
|
<text text-anchor="middle" x="1262.31" y="-368.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">uses for Write()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccountReservationList -->
|
<!-- AccountReservationList -->
|
||||||
<g id="node7" class="node">
|
<g id="node7" class="node" pointer-events="visible" data-name="AccountReservationList">
|
||||||
<title>AccountReservationList</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1225.62,-245.25 1225.62,-308.5 1416.38,-308.5 1416.38,-245.25 1225.62,-245.25"/>
|
<polygon fill="lightyellow" stroke="black" points="1200.91,-254.7 1200.91,-321.1 1381.09,-321.1 1381.09,-254.7 1200.91,-254.7" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1321" y="-291.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">AccountReservationList</text>
|
<text text-anchor="middle" x="1291" y="-304.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">AccountReservationList</text>
|
||||||
<polyline fill="none" stroke="black" points="1225.62,-284.75 1416.38,-284.75"/>
|
<polyline fill="none" stroke="black" points="1200.91,-296.3 1381.09,-296.3" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1233.62" y="-267.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ add(IReservation): boolean</text>
|
<text text-anchor="start" x="1208.91" y="-279.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ add(IReservation): boolean</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1233.62" y="-251.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ find(String): Reservation</text>
|
<text text-anchor="start" x="1208.91" y="-262.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ find(String): Reservation</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->AccountReservationList -->
|
<!-- Account->AccountReservationList -->
|
||||||
<g id="edge7" class="edge">
|
<g id="edge7" class="edge" data-name="Account->AccountReservationList">
|
||||||
<title>Account->AccountReservationList</title>
|
|
||||||
<path fill="none" stroke="black" d="M1388.5,-412.71C1388.5,-412.71 1388.5,-321.85 1388.5,-321.85"/>
|
<path fill="none" stroke="black" d="M1356.69,-427.91C1356.69,-427.91 1356.69,-333.01 1356.69,-333.01" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1388.5,-321.7 1384.5,-315.7 1388.5,-309.7 1392.5,-315.7 1388.5,-321.7"/>
|
<polygon fill="black" stroke="black" points="1356.69,-333.01 1352.69,-327.01 1356.69,-321.01 1360.69,-327.01 1356.69,-333.01" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1422.5" y="-354.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">has a</text>
|
<text text-anchor="middle" x="1398.19" y="-368.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">has a</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->Address -->
|
<!-- Account->Address -->
|
||||||
<g id="edge9" class="edge">
|
<g id="edge9" class="edge" data-name="Account->Address">
|
||||||
<title>Account->Address</title>
|
|
||||||
<path fill="none" stroke="black" d="M1360.38,-435C1216.4,-435 644.94,-435 644.94,-435 644.94,-435 644.94,-313.94 644.94,-313.94"/>
|
<path fill="none" stroke="black" d="M1332.45,-449C1191.93,-449 629.85,-449 629.85,-449 629.85,-449 629.85,-324.37 629.85,-324.37" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="644.94,-313.79 640.94,-307.79 644.94,-301.79 648.94,-307.79 644.94,-313.79"/>
|
<polygon fill="none" stroke="black" points="629.85,-324.37 625.85,-318.37 629.85,-312.37 633.85,-318.37 629.85,-324.37" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1137.75" y="-354.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">mailing</text>
|
<text text-anchor="middle" x="1119.39" y="-368.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">mailing</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- EmailAddress -->
|
<!-- EmailAddress -->
|
||||||
<g id="node14" class="node">
|
<g id="node14" class="node" pointer-events="visible" data-name="EmailAddress">
|
||||||
<title>EmailAddress</title>
|
|
||||||
<polygon fill="lightblue" stroke="black" points="1639.88,-253.12 1639.88,-300.62 1796.12,-300.62 1796.12,-253.12 1639.88,-253.12"/>
|
<polygon fill="lightblue" stroke="black" points="1698.87,-263.1 1698.87,-312.7 1849.13,-312.7 1849.13,-263.1 1698.87,-263.1" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1718" y="-283.32" font-family="Helvetica,Arial,sans-serif" font-size="14.00">EmailAddress</text>
|
<text text-anchor="middle" x="1774" y="-296.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">EmailAddress</text>
|
||||||
<polyline fill="none" stroke="black" points="1639.88,-276.88 1796.12,-276.88"/>
|
<polyline fill="none" stroke="black" points="1698.87,-287.9 1849.13,-287.9" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="1647.88" y="-259.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ EmailAddress(String)</text>
|
<text text-anchor="start" x="1706.87" y="-271.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ EmailAddress(String)</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->EmailAddress -->
|
<!-- Account->EmailAddress -->
|
||||||
<g id="edge10" class="edge">
|
<g id="edge10" class="edge" data-name="Account->EmailAddress">
|
||||||
<title>Account->EmailAddress</title>
|
|
||||||
<path fill="none" stroke="black" d="M1420.88,-412.73C1420.88,-370.36 1420.88,-269 1420.88,-269 1420.88,-269 1626.49,-269 1626.49,-269"/>
|
<path fill="none" stroke="black" d="M1388.4,-427.8C1388.4,-386.3 1388.4,-287 1388.4,-287 1388.4,-287 1687.2,-287 1687.2,-287" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="1626.64,-269 1632.64,-265 1638.64,-269 1632.64,-273 1626.64,-269"/>
|
<polygon fill="none" stroke="black" points="1687.2,-287 1693.2,-283 1699.2,-287 1693.2,-291 1687.2,-287" style=""/>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccountList->Account -->
|
<!-- AccountList->Account -->
|
||||||
<g id="edge6" class="edge">
|
<g id="edge6" class="edge" data-name="AccountList->Account">
|
||||||
<title>AccountList->Account</title>
|
|
||||||
<path fill="none" stroke="black" d="M1393,-553.37C1393,-553.37 1393,-462.35 1393,-462.35"/>
|
<path fill="none" stroke="black" d="M1364,-570.39C1364,-570.39 1364,-475.41 1364,-475.41" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1393,-462.2 1389,-456.2 1393,-450.2 1397,-456.2 1393,-462.2"/>
|
<polygon fill="none" stroke="black" points="1364,-475.41 1360,-469.41 1364,-463.41 1368,-469.41 1364,-475.41" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1403.12" y="-496.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">0..*</text>
|
<text text-anchor="middle" x="1374.5" y="-514.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">0..*</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccountReservationList->IReservation -->
|
<!-- AccountReservationList->IReservation -->
|
||||||
<g id="edge8" class="edge">
|
<g id="edge8" class="edge" data-name="AccountReservationList->IReservation">
|
||||||
<title>AccountReservationList->IReservation</title>
|
|
||||||
<path fill="none" stroke="black" d="M1225.4,-249C968.94,-249 285.06,-249 285.06,-249 285.06,-249 285.06,-155.98 285.06,-155.98"/>
|
<path fill="none" stroke="black" d="M1201,-258C953.67,-258 281.88,-258 281.88,-258 281.88,-258 281.88,-162.64 281.88,-162.64" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="285.06,-155.83 281.06,-149.83 285.06,-143.83 289.06,-149.83 285.06,-155.83"/>
|
<polygon fill="black" stroke="black" points="281.88,-162.64 277.88,-156.64 281.88,-150.64 285.88,-156.64 281.88,-162.64" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="800.12" y="-188.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">0..*</text>
|
<text text-anchor="middle" x="785.5" y="-198.6" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">0..*</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- HotelReservation -->
|
<!-- HotelReservation -->
|
||||||
<g id="node8" class="node">
|
<g id="node8" class="node" pointer-events="visible" data-name="HotelReservation">
|
||||||
<title>HotelReservation</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="229,-790.38 229,-853.62 419,-853.62 419,-790.38 229,-790.38"/>
|
<polygon fill="lightyellow" stroke="black" points="245.71,-816.1 245.71,-882.5 426.29,-882.5 426.29,-816.1 245.71,-816.1" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="324" y="-836.33" font-family="Helvetica,Arial,sans-serif" font-size="14.00">HotelReservation</text>
|
<text text-anchor="middle" x="336" y="-865.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">HotelReservation</text>
|
||||||
<polyline fill="none" stroke="black" points="229,-829.88 419,-829.88"/>
|
<polyline fill="none" stroke="black" points="245.71,-857.7 426.29,-857.7" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="237" y="-812.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ HotelReservation(Address)</text>
|
<text text-anchor="start" x="253.71" y="-841.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ HotelReservation(Address)</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="237" y="-796.83" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ calculatePrice(): float</text>
|
<text text-anchor="start" x="253.71" y="-824.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ calculatePrice(): float</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- HotelReservation->Reservation -->
|
<!-- HotelReservation->Reservation -->
|
||||||
<g id="edge2" class="edge">
|
<g id="edge2" class="edge" data-name="HotelReservation->Reservation">
|
||||||
<title>HotelReservation->Reservation</title>
|
|
||||||
<path fill="none" stroke="black" d="M336,-790.05C336,-728.39 336,-599 336,-599 336,-599 505.03,-599 505.03,-599"/>
|
<path fill="none" stroke="black" d="M415.78,-816.16C415.78,-752.2 415.78,-618 415.78,-618 415.78,-618 496.06,-618 496.06,-618" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="505.03,-602.5 515.03,-599 505.03,-595.5 505.03,-602.5"/>
|
<polygon fill="none" stroke="black" points="496.06,-621.5 506.06,-618 496.06,-614.5 496.06,-621.5" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="404.62" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">extends</text>
|
<text text-anchor="middle" x="413.38" y="-701.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">extends</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- CabinReservation -->
|
<!-- CabinReservation -->
|
||||||
<g id="node9" class="node">
|
<g id="node9" class="node" pointer-events="visible" data-name="CabinReservation">
|
||||||
<title>CabinReservation</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="491.12,-790.38 491.12,-853.62 684.88,-853.62 684.88,-790.38 491.12,-790.38"/>
|
<polygon fill="lightyellow" stroke="black" points="498.54,-816.1 498.54,-882.5 681.46,-882.5 681.46,-816.1 498.54,-816.1" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="588" y="-836.33" font-family="Helvetica,Arial,sans-serif" font-size="14.00">CabinReservation</text>
|
<text text-anchor="middle" x="590" y="-865.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">CabinReservation</text>
|
||||||
<polyline fill="none" stroke="black" points="491.12,-829.88 684.88,-829.88"/>
|
<polyline fill="none" stroke="black" points="498.54,-857.7 681.46,-857.7" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="499.12" y="-812.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ CabinReservation(Address)</text>
|
<text text-anchor="start" x="506.54" y="-841.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ CabinReservation(Address)</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="499.12" y="-796.83" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ calculatePrice(): float</text>
|
<text text-anchor="start" x="506.54" y="-824.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ calculatePrice(): float</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- CabinReservation->Reservation -->
|
<!-- CabinReservation->Reservation -->
|
||||||
<g id="edge3" class="edge">
|
<g id="edge3" class="edge" data-name="CabinReservation->Reservation">
|
||||||
<title>CabinReservation->Reservation</title>
|
|
||||||
<path fill="none" stroke="black" d="M561,-790.16C561,-790.16 561,-622.79 561,-622.79"/>
|
<path fill="none" stroke="black" d="M549,-816.29C549,-816.29 549,-641.16 549,-641.16" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="564.5,-622.79 561,-612.79 557.5,-622.79 564.5,-622.79"/>
|
<polygon fill="none" stroke="black" points="552.5,-641.16 549,-631.16 545.5,-641.16 552.5,-641.16" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="598.62" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">extends</text>
|
<text text-anchor="middle" x="590.38" y="-701.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">extends</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- HouseReservation -->
|
<!-- HouseReservation -->
|
||||||
<g id="node10" class="node">
|
<g id="node10" class="node" pointer-events="visible" data-name="HouseReservation">
|
||||||
<title>HouseReservation</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="757.25,-790.38 757.25,-853.62 954.75,-853.62 954.75,-790.38 757.25,-790.38"/>
|
<polygon fill="lightyellow" stroke="black" points="753.38,-816.1 753.38,-882.5 938.62,-882.5 938.62,-816.1 753.38,-816.1" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="856" y="-836.33" font-family="Helvetica,Arial,sans-serif" font-size="14.00">HouseReservation</text>
|
<text text-anchor="middle" x="846" y="-865.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">HouseReservation</text>
|
||||||
<polyline fill="none" stroke="black" points="757.25,-829.88 954.75,-829.88"/>
|
<polyline fill="none" stroke="black" points="753.38,-857.7 938.62,-857.7" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="start" x="765.25" y="-812.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ HouseReservation(Address)</text>
|
<text text-anchor="start" x="761.38" y="-841.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ HouseReservation(Address)</text>
|
||||||
<text xml:space="preserve" text-anchor="start" x="765.25" y="-796.83" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ calculatePrice(): float</text>
|
<text text-anchor="start" x="761.38" y="-824.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">+ calculatePrice(): float</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- HouseReservation->Reservation -->
|
<!-- HouseReservation->Reservation -->
|
||||||
<g id="edge4" class="edge">
|
<g id="edge4" class="edge" data-name="HouseReservation->Reservation">
|
||||||
<title>HouseReservation->Reservation</title>
|
|
||||||
<path fill="none" stroke="black" d="M852.38,-790.05C852.38,-728.39 852.38,-599 852.38,-599 852.38,-599 616.77,-599 616.77,-599"/>
|
<path fill="none" stroke="black" d="M842.72,-816.16C842.72,-752.2 842.72,-618 842.72,-618 842.72,-618 601.66,-618 601.66,-618" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="616.77,-595.5 606.77,-599 616.77,-602.5 616.77,-595.5"/>
|
<polygon fill="none" stroke="black" points="601.66,-614.5 591.66,-618 601.66,-621.5 601.66,-614.5" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="807.62" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">extends</text>
|
<text text-anchor="middle" x="779.38" y="-701.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">extends</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations -->
|
<!-- TestReservations -->
|
||||||
<g id="node11" class="node">
|
<g id="node11" class="node" pointer-events="visible" data-name="TestReservations">
|
||||||
<title>TestReservations</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1141.25,-1011.5 1141.25,-1047.5 1260.75,-1047.5 1260.75,-1011.5 1141.25,-1011.5"/>
|
<polygon fill="lightyellow" stroke="black" points="1121.79,-1045.1 1121.79,-1081.1 1234.21,-1081.1 1234.21,-1045.1 1121.79,-1045.1" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1201" y="-1024.08" font-family="Helvetica,Arial,sans-serif" font-size="14.00">TestReservations</text>
|
<text text-anchor="middle" x="1178" y="-1058.9" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">TestReservations</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->AccomodationManager -->
|
<!-- TestReservations->AccomodationManager -->
|
||||||
<g id="edge12" class="edge">
|
<g id="edge12" class="edge" data-name="TestReservations->AccomodationManager">
|
||||||
<title>TestReservations->AccomodationManager</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1201,-1011.09C1201,-1011.09 1201,-920.37 1201,-920.37"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1178,-1045.24C1178,-1045.24 1178,-951.14 1178,-951.14" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1201,-910.37 1205.5,-920.37 1201,-914.15 1201,-920.37 1201,-920.37 1201,-920.37 1201,-914.15 1196.5,-920.37 1201,-910.37"/>
|
<polygon fill="black" stroke="black" points="1178,-941.14 1182.5,-951.14 1178,-946.14 1178,-951.14 1178,-951.14 1178,-951.14 1178,-946.14 1173.5,-951.14 1178,-941.14 1178,-941.14" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1215.25" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
<text text-anchor="middle" x="1190.06" y="-989" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->Account -->
|
<!-- TestReservations->Account -->
|
||||||
<g id="edge17" class="edge">
|
<g id="edge17" class="edge" data-name="TestReservations->Account">
|
||||||
<title>TestReservations->Account</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1261.11,-1018C1352.19,-1018 1514.67,-1018 1514.67,-1018 1514.67,-1018 1514.67,-431 1514.67,-431 1514.67,-431 1436.82,-431 1436.82,-431"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1233.9,-1052C1326.87,-1052 1503.18,-1052 1503.18,-1052 1503.18,-1052 1503.18,-445 1503.18,-445 1503.18,-445 1405.58,-445 1405.58,-445" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1426.82,-431 1436.82,-426.5 1430.6,-431 1436.82,-431 1436.82,-431 1436.82,-431 1430.6,-431 1436.82,-435.5 1426.82,-431"/>
|
<polygon fill="black" stroke="black" points="1395.58,-445 1405.58,-440.5 1400.58,-445 1405.58,-445 1405.58,-445 1405.58,-445 1400.58,-445 1405.58,-449.5 1395.58,-445 1395.58,-445" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1527.25" y="-678.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
<text text-anchor="middle" x="1491.06" y="-701.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->HotelReservation -->
|
<!-- TestReservations->HotelReservation -->
|
||||||
<g id="edge14" class="edge">
|
<g id="edge14" class="edge" data-name="TestReservations->HotelReservation">
|
||||||
<title>TestReservations->HotelReservation</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1141.07,-1041C943.3,-1041 324,-1041 324,-1041 324,-1041 324,-865.06 324,-865.06"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1122.1,-1074C934.04,-1074 336,-1074 336,-1074 336,-1074 336,-892.46 336,-892.46" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="324,-855.06 328.5,-865.06 324,-858.84 324,-865.06 324,-865.06 324,-865.06 324,-858.84 319.5,-865.06 324,-855.06"/>
|
<polygon fill="black" stroke="black" points="336,-882.46 340.5,-892.46 336,-887.46 336,-892.46 336,-892.46 336,-892.46 336,-887.46 331.5,-892.46 336,-882.46 336,-882.46" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="491.12" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
<text text-anchor="middle" x="417.43" y="-989" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">creates</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->CabinReservation -->
|
<!-- TestReservations->CabinReservation -->
|
||||||
<g id="edge15" class="edge">
|
<g id="edge15" class="edge" data-name="TestReservations->CabinReservation">
|
||||||
<title>TestReservations->CabinReservation</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1140.83,-1026C986.38,-1026 588,-1026 588,-1026 588,-1026 588,-865.09 588,-865.09"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1121.89,-1059C974.91,-1059 590,-1059 590,-1059 590,-1059 590,-892.07 590,-892.07" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="588,-855.09 592.5,-865.09 588,-858.88 588,-865.09 588,-865.09 588,-865.09 588,-858.88 583.5,-865.09 588,-855.09"/>
|
<polygon fill="black" stroke="black" points="590,-882.07 594.5,-892.07 590,-887.07 590,-892.07 590,-892.07 590,-892.07 590,-887.07 585.5,-892.07 590,-882.07 590,-882.07" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="683.12" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
<text text-anchor="middle" x="780.43" y="-989" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">creates</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->HouseReservation -->
|
<!-- TestReservations->HouseReservation -->
|
||||||
<g id="edge16" class="edge">
|
<g id="edge16" class="edge" data-name="TestReservations->HouseReservation">
|
||||||
<title>TestReservations->HouseReservation</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1140.91,-1018C1042.06,-1018 856,-1018 856,-1018 856,-1018 856,-865.15 856,-865.15"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1122.06,-1052C1027.44,-1052 846,-1052 846,-1052 846,-1052 846,-892.32 846,-892.32" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="856,-855.15 860.5,-865.15 856,-858.93 856,-865.15 856,-865.15 856,-865.15 856,-858.93 851.5,-865.15 856,-855.15"/>
|
<polygon fill="black" stroke="black" points="846,-882.32 850.5,-892.32 846,-887.32 846,-892.32 846,-892.32 846,-892.32 846,-887.32 841.5,-892.32 846,-882.32 846,-882.32" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="990.12" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
<text text-anchor="middle" x="1019.43" y="-989" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">creates</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations.getRepositoryConfig -->
|
<!-- TestReservations.getRepositoryConfig -->
|
||||||
<g id="node12" class="node">
|
<g id="node12" class="node" pointer-events="visible" data-name="TestReservations.getRepositoryConfig">
|
||||||
<title>TestReservations.getRepositoryConfig</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1594.25,-804 1594.25,-840 1839.75,-840 1839.75,-804 1594.25,-804"/>
|
<polygon fill="lightyellow" stroke="black" points="1564.32,-831.3 1564.32,-867.3 1797.68,-867.3 1797.68,-831.3 1564.32,-831.3" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1717" y="-816.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">TestReservations.getRepositoryConfig</text>
|
<text text-anchor="middle" x="1681" y="-845.1" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">TestReservations.getRepositoryConfig</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->TestReservations.getRepositoryConfig -->
|
<!-- TestReservations->TestReservations.getRepositoryConfig -->
|
||||||
<g id="edge13" class="edge">
|
<g id="edge13" class="edge" data-name="TestReservations->TestReservations.getRepositoryConfig">
|
||||||
<title>TestReservations->TestReservations.getRepositoryConfig</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1261.2,-1033C1397.32,-1033 1717,-1033 1717,-1033 1717,-1033 1717,-851.57 1717,-851.57"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1233.75,-1059C1364.71,-1059 1681,-1059 1681,-1059 1681,-1059 1681,-877.18 1681,-877.18" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1717,-841.57 1721.5,-851.57 1717,-845.36 1717,-851.57 1717,-851.57 1717,-851.57 1717,-845.36 1712.5,-851.57 1717,-841.57"/>
|
<polygon fill="black" stroke="black" points="1681,-867.18 1685.5,-877.18 1681,-872.18 1681,-877.18 1681,-877.18 1681,-877.18 1681,-872.18 1676.5,-877.18 1681,-867.18 1681,-867.18" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1731.25" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">uses</text>
|
<text text-anchor="middle" x="1693.06" y="-989" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->Address -->
|
<!-- TestReservations->Address -->
|
||||||
<g id="edge18" class="edge">
|
<g id="edge18" class="edge" data-name="TestReservations->Address">
|
||||||
<title>TestReservations->Address</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1140.98,-1033C965.18,-1033 463.75,-1033 463.75,-1033 463.75,-1033 463.75,-311.97 463.75,-311.97"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1121.95,-1066C953.54,-1066 463.64,-1066 463.64,-1066 463.64,-1066 463.64,-322.47 463.64,-322.47" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="463.75,-301.97 468.25,-311.97 463.75,-305.75 463.75,-311.97 463.75,-311.97 463.75,-311.97 463.75,-305.75 459.25,-311.97 463.75,-301.97"/>
|
<polygon fill="black" stroke="black" points="463.64,-312.47 468.14,-322.47 463.64,-317.47 463.64,-322.47 463.64,-322.47 463.64,-322.47 463.64,-317.47 459.14,-322.47 463.64,-312.47 463.64,-312.47" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="22.12" y="-587.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
<text text-anchor="middle" x="19.43" y="-607.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">creates</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->EmailAddress -->
|
<!-- TestReservations->EmailAddress -->
|
||||||
<g id="edge19" class="edge">
|
<g id="edge19" class="edge" data-name="TestReservations->EmailAddress">
|
||||||
<title>TestReservations->EmailAddress</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1260.96,-1026C1361.8,-1026 1554.46,-1026 1554.46,-1026 1554.46,-1026 1554.46,-285 1554.46,-285 1554.46,-285 1628.36,-285 1628.36,-285"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1234.15,-1066C1391.17,-1066 1823.41,-1066 1823.41,-1066 1823.41,-1066 1823.41,-322.47 1823.41,-322.47" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="1638.36,-285 1628.36,-289.5 1634.58,-285 1628.36,-285 1628.36,-285 1628.36,-285 1634.58,-285 1628.36,-280.5 1638.36,-285"/>
|
<polygon fill="black" stroke="black" points="1823.41,-312.47 1827.91,-322.47 1823.41,-317.47 1823.41,-322.47 1823.41,-322.47 1823.41,-322.47 1823.41,-317.47 1818.91,-322.47 1823.41,-312.47 1823.41,-312.47" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="1971.12" y="-587.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">creates</text>
|
<text text-anchor="middle" x="1926.43" y="-607.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">creates</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- DuplicateObjectException -->
|
<!-- DuplicateObjectException -->
|
||||||
<g id="node16" class="node">
|
<g id="node16" class="node" pointer-events="visible" data-name="DuplicateObjectException">
|
||||||
<title>DuplicateObjectException</title>
|
|
||||||
<polygon fill="lightpink" stroke="black" points="2058.38,-802.25 2058.38,-841.75 2229.62,-841.75 2229.62,-802.25 2058.38,-802.25"/>
|
<polygon fill="lightpink" stroke="black" points="2015.75,-828.5 2015.75,-870.1 2180.25,-870.1 2180.25,-828.5 2015.75,-828.5" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="2144" y="-824.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">exception</text>
|
<text text-anchor="middle" x="2098" y="-853.5" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">exception</text>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="2144" y="-808.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">DuplicateObjectException</text>
|
<text text-anchor="middle" x="2098" y="-836.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">DuplicateObjectException</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TestReservations->DuplicateObjectException -->
|
<!-- TestReservations->DuplicateObjectException -->
|
||||||
<g id="edge20" class="edge">
|
<g id="edge20" class="edge" data-name="TestReservations->DuplicateObjectException">
|
||||||
<title>TestReservations->DuplicateObjectException</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1261.06,-1041C1468.77,-1041 2144,-1041 2144,-1041 2144,-1041 2144,-853.43 2144,-853.43"/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1234.17,-1074C1433.91,-1074 2098,-1074 2098,-1074 2098,-1074 2098,-880.04 2098,-880.04" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="2144,-843.43 2148.5,-853.43 2144,-847.21 2144,-853.43 2144,-853.43 2144,-853.43 2144,-847.21 2139.5,-853.43 2144,-843.43"/>
|
<polygon fill="black" stroke="black" points="2098,-870.04 2102.5,-880.04 2098,-875.04 2098,-880.04 2098,-880.04 2098,-880.04 2098,-875.04 2093.5,-880.04 2098,-870.04 2098,-870.04" style=""/>
|
||||||
<text xml:space="preserve" text-anchor="middle" x="2167.25" y="-954.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">catches</text>
|
<text text-anchor="middle" x="2118.6" y="-989" font-family="Helvetica,Arial,sans-serif" font-size="14.00" style="">catches</text>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
@@ -3,10 +3,10 @@ digraph "Reservation System - Account Load" {
|
|||||||
graph [
|
graph [
|
||||||
rankdir="TB",
|
rankdir="TB",
|
||||||
splines=ortho,
|
splines=ortho,
|
||||||
nodesep=1.0,
|
nodesep=0.0,
|
||||||
ranksep=1.0,
|
ranksep=1.0,
|
||||||
fontname="Arial",
|
fontname="Times New Roman",
|
||||||
fontsize=12,
|
fontsize=14,
|
||||||
label="Reservation System - Account Loading"
|
label="Reservation System - Account Loading"
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ digraph "Reservation System - Account Load" {
|
|||||||
shape=record,
|
shape=record,
|
||||||
style=filled,
|
style=filled,
|
||||||
fillcolor=lightyellow,
|
fillcolor=lightyellow,
|
||||||
fontname="Arial",
|
fontname="Times New Roman",
|
||||||
fontsize=10
|
fontsize=10
|
||||||
];
|
];
|
||||||
edge [
|
edge [
|
||||||
@@ -46,20 +46,7 @@ digraph "Reservation System - Account Load" {
|
|||||||
IllegalArgumentException [label="<<exception>>\nIllegalArgumentException"];
|
IllegalArgumentException [label="<<exception>>\nIllegalArgumentException"];
|
||||||
}
|
}
|
||||||
|
|
||||||
subgraph cluster_test {
|
|
||||||
label="lodge (Test)";
|
|
||||||
style=filled;
|
|
||||||
color=honeydew;
|
|
||||||
TestAccountLoad [label="{TestAccountLoad|+ main(args: String[])\l- Test_AddAccount(mgr: AccomodationManager, acct: Account)\l}"];
|
|
||||||
TestAccountLoad_getRepositoryConfig [label="{getRepositoryConfig|+ getPath(): String\l}"];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Class Relationships
|
// Class Relationships
|
||||||
TestAccountLoad -> AccomodationManager [label="uses"];
|
|
||||||
TestAccountLoad -> Account [label="uses"];
|
|
||||||
TestAccountLoad -> Address [label="creates"];
|
|
||||||
TestAccountLoad -> EmailAddress [label="creates"];
|
|
||||||
TestAccountLoad -> TestAccountLoad_getRepositoryConfig [style=dashed, arrowhead=open, label="has inner"];
|
|
||||||
|
|
||||||
AccomodationManager -> AccountList [arrowhead=diamond,label="manages 1"];
|
AccomodationManager -> AccountList [arrowhead=diamond,label="manages 1"];
|
||||||
AccomodationManager -> DataRepository [label="uses"];
|
AccomodationManager -> DataRepository [label="uses"];
|
||||||
|
|||||||
@@ -1,260 +1,197 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
<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">
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<g id="graph0" class="graph" transform="translate(4,650) scale(1)" data-name="Reservation System - Account Load">
|
||||||
<!-- Generated by graphviz version 2.42.4 (0)
|
|
||||||
-->
|
<polygon fill="white" stroke="none" points="-4,4 -4,-650 988.53,-650 988.53,4 -4,4"/>
|
||||||
<!-- Title: Reservation System - Account Load Pages: 1 -->
|
<text text-anchor="middle" x="492.27" y="-8.2" font-family="Times New Roman" font-size="14">Reservation System - Account Loading</text>
|
||||||
<svg width="1610pt" height="757pt"
|
<g id="clust1" class="cluster" data-name="cluster_reservationsystem">
|
||||||
viewBox="0.00 0.00 1610.00 757.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 753)">
|
<polygon fill="lightgrey" stroke="lightgrey" points="8,-316.4 8,-638 348,-638 348,-316.4 8,-316.4"/>
|
||||||
<title>Reservation System - Account Load</title>
|
<text text-anchor="middle" x="178" y="-621.4" font-family="Times New Roman" font-size="14">lodge.reservationsystem</text>
|
||||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-753 1606,-753 1606,4 -4,4"/>
|
|
||||||
<text text-anchor="middle" x="801" y="-7.4" font-family="Arial" font-size="12.00">Reservation System - Account Loading</text>
|
|
||||||
<g id="clust1" class="cluster">
|
|
||||||
<title>cluster_reservationsystem</title>
|
|
||||||
<polygon fill="lightgrey" stroke="lightgrey" points="326,-304 326,-608 688,-608 688,-304 326,-304"/>
|
|
||||||
<text text-anchor="middle" x="507" y="-594.4" font-family="Arial" font-size="12.00">lodge.reservationsystem</text>
|
|
||||||
</g>
|
</g>
|
||||||
<g id="clust2" class="cluster">
|
<g id="clust2" class="cluster" data-name="cluster_datamodel">
|
||||||
<title>cluster_datamodel</title>
|
|
||||||
<polygon fill="lightblue" stroke="lightblue" points="696,-29 696,-428 1418,-428 1418,-29 696,-29"/>
|
<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="1057" y="-414.4" font-family="Arial" font-size="12.00">lodge.datamodel</text>
|
<text text-anchor="middle" x="628.5" y="-433.6" font-family="Times New Roman" font-size="14">lodge.datamodel</text>
|
||||||
</g>
|
|
||||||
<g id="clust3" class="cluster">
|
|
||||||
<title>cluster_test</title>
|
|
||||||
<polygon fill="honeydew" stroke="honeydew" points="8,-510 8,-741 318,-741 318,-510 8,-510"/>
|
|
||||||
<text text-anchor="middle" x="163" y="-727.4" font-family="Arial" font-size="12.00">lodge (Test)</text>
|
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<!-- AccomodationManager -->
|
<!-- AccomodationManager -->
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node" pointer-events="visible" data-name="AccomodationManager">
|
||||||
<title>AccomodationManager</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="333.5,-496.5 333.5,-578.5 680.5,-578.5 680.5,-496.5 333.5,-496.5"/>
|
<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="507" y="-566.5" font-family="Arial" font-size="10.00">AccomodationManager</text>
|
<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="333.5,-559.5 680.5,-559.5 "/>
|
<polyline fill="none" stroke="black" points="15.69,-584.7 340.31,-584.7"/>
|
||||||
<text text-anchor="start" x="341.5" y="-547.5" font-family="Arial" font-size="10.00">+ AccomodationManager(home: String)</text>
|
<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="341.5" y="-536.5" font-family="Arial" font-size="10.00">+ newAccount(phone: String, addr: Address, email: EmailAddress): Account</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="341.5" y="-525.5" font-family="Arial" font-size="10.00">+ AddAccount(acct: 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="341.5" y="-514.5" font-family="Arial" font-size="10.00">+ UpdateAccount(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="341.5" y="-503.5" font-family="Arial" font-size="10.00">+ showAccountList()</text>
|
<text text-anchor="start" x="23.69" y="-523.7" font-family="Times New Roman" font-size="10.00">+ showAccountList()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- DataRepository -->
|
<!-- DataRepository -->
|
||||||
<g id="node2" class="node">
|
<g id="node2" class="node" pointer-events="visible" data-name="DataRepository">
|
||||||
<title>DataRepository</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="442.5,-312.5 442.5,-413.5 611.5,-413.5 611.5,-312.5 442.5,-312.5"/>
|
<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="527" y="-401.5" font-family="Arial" font-size="10.00">DataRepository (Singleton)</text>
|
<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="442.5,-394.5 611.5,-394.5 "/>
|
<polyline fill="none" stroke="black" points="179.62,-412.9 340.38,-412.9"/>
|
||||||
<text text-anchor="start" x="450.5" y="-382.5" font-family="Arial" font-size="10.00">- directoryPath: String</text>
|
<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="450.5" y="-371.5" font-family="Arial" font-size="10.00">- instance: DataRepository</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="442.5,-364.5 611.5,-364.5 "/>
|
<polyline fill="none" stroke="black" points="179.62,-380.9 340.38,-380.9"/>
|
||||||
<text text-anchor="start" x="450.5" y="-352.5" font-family="Arial" font-size="10.00">+ getInstance(): DataRepository</text>
|
<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="450.5" y="-341.5" font-family="Arial" font-size="10.00">+ setDataStoreRoot(path: String)</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="450.5" y="-330.5" font-family="Arial" font-size="10.00">+ getPath(): 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="450.5" y="-319.5" font-family="Arial" font-size="10.00">+ LoadAccount(file: Path): Account</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>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccomodationManager->DataRepository -->
|
<!-- AccomodationManager->DataRepository -->
|
||||||
<g id="edge7" class="edge">
|
<g id="edge2" class="edge" data-name="AccomodationManager->DataRepository">
|
||||||
<title>AccomodationManager->DataRepository</title>
|
|
||||||
<path fill="none" stroke="black" d="M527,-496.15C527,-496.15 527,-423.72 527,-423.72"/>
|
<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="530.5,-423.72 527,-413.72 523.5,-423.72 530.5,-423.72"/>
|
<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="527" y="-452.8" font-family="Arial" font-size="9.00">uses</text>
|
<text text-anchor="middle" x="228.51" y="-472.1" font-family="Arial" font-size="9.00">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account -->
|
<!-- Account -->
|
||||||
<g id="node3" class="node">
|
<g id="node3" class="node" pointer-events="visible" data-name="Account">
|
||||||
<title>Account</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="704,-158.5 704,-229.5 1010,-229.5 1010,-158.5 704,-158.5"/>
|
<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="857" y="-217.5" font-family="Arial" font-size="10.00">Account</text>
|
<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="704,-210.5 1010,-210.5 "/>
|
<polyline fill="none" stroke="black" points="364.32,-221.1 653.68,-221.1"/>
|
||||||
<text text-anchor="start" x="712" y="-198.5" font-family="Arial" font-size="10.00">+ Account()</text>
|
<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="712" y="-187.5" font-family="Arial" font-size="10.00">+ Account(phone: String, mailAddr: Address, email: EmailAddress)</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="712" y="-176.5" font-family="Arial" font-size="10.00">+ Write(acct: Account)</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="712" y="-165.5" font-family="Arial" font-size="10.00">+ checkValid()</text>
|
<text text-anchor="start" x="372.32" y="-172.1" font-family="Times New Roman" font-size="10.00">+ checkValid()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccomodationManager->Account -->
|
<!-- AccomodationManager->Account -->
|
||||||
<g id="edge8" class="edge">
|
<g id="edge3" class="edge" data-name="AccomodationManager->Account">
|
||||||
<title>AccomodationManager->Account</title>
|
|
||||||
<path fill="none" stroke="black" d="M634.5,-496.39C634.5,-410.09 634.5,-218 634.5,-218 634.5,-218 693.99,-218 693.99,-218"/>
|
<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="693.99,-221.5 703.99,-218 693.99,-214.5 693.99,-221.5"/>
|
<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="1073" y="-360.8" font-family="Arial" font-size="9.00">creates/updates</text>
|
<text text-anchor="middle" x="580.02" y="-376.2" font-family="Arial" font-size="9.00">creates/updates</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccountList -->
|
<!-- AccountList -->
|
||||||
<g id="node4" class="node">
|
<g id="node4" class="node" pointer-events="visible" data-name="AccountList">
|
||||||
<title>AccountList</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="704,-327.5 704,-398.5 896,-398.5 896,-327.5 704,-327.5"/>
|
<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="800" y="-386.5" font-family="Arial" font-size="10.00">AccountList</text>
|
<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="704,-379.5 896,-379.5 "/>
|
<polyline fill="none" stroke="black" points="363.78,-396.9 546.22,-396.9"/>
|
||||||
<text text-anchor="start" x="712" y="-367.5" font-family="Arial" font-size="10.00">+ add(acct: Account)</text>
|
<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="712" y="-356.5" font-family="Arial" font-size="10.00">+ save(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="712" y="-345.5" font-family="Arial" font-size="10.00">+ find(account_number: String): 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="712" y="-334.5" font-family="Arial" font-size="10.00">+ showAccountList()</text>
|
<text text-anchor="start" x="371.78" y="-347.9" font-family="Times New Roman" font-size="10.00">+ showAccountList()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccomodationManager->AccountList -->
|
<!-- AccomodationManager->AccountList -->
|
||||||
<g id="edge6" class="edge">
|
<g id="edge1" class="edge" data-name="AccomodationManager->AccountList">
|
||||||
<title>AccomodationManager->AccountList</title>
|
|
||||||
<path fill="none" stroke="black" d="M657.5,-496.15C657.5,-444.54 657.5,-363 657.5,-363 657.5,-363 691.77,-363 691.77,-363"/>
|
<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="691.77,-363 697.77,-359 703.77,-363 697.77,-367 691.77,-363"/>
|
<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="745" y="-452.8" font-family="Arial" font-size="9.00">manages 1</text>
|
<text text-anchor="middle" x="392.26" y="-472.1" font-family="Arial" font-size="9.00">manages 1</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Exception -->
|
<!-- Exception -->
|
||||||
<g id="node11" class="node">
|
<g id="node9" class="node" pointer-events="visible" data-name="Exception">
|
||||||
<title>Exception</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="258,-345 258,-381 318,-381 318,-345 258,-345"/>
|
<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="288" y="-360.5" font-family="Arial" font-size="10.00">Exception</text>
|
<text text-anchor="middle" x="937" y="-375.9" font-family="Times New Roman" font-size="10.00">Exception</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccomodationManager->Exception -->
|
<!-- AccomodationManager->Exception -->
|
||||||
<g id="edge14" class="edge">
|
<g id="edge9" class="edge" data-name="AccomodationManager->Exception">
|
||||||
<title>AccomodationManager->Exception</title>
|
|
||||||
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M333.34,-507C321.27,-507 313.75,-507 313.75,-507 313.75,-507 313.75,-391.24 313.75,-391.24"/>
|
<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="313.75,-381.24 318.25,-391.24 313.75,-386.24 313.75,-391.24 313.75,-391.24 313.75,-391.24 313.75,-386.24 309.25,-391.24 313.75,-381.24 313.75,-381.24"/>
|
<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="312.5" y="-452.8" font-family="Arial" font-size="9.00"><<throws>></text>
|
<text text-anchor="middle" x="960.77" y="-472.1" font-family="Arial" font-size="9.00"><<throws>></text>
|
||||||
</g>
|
</g>
|
||||||
<!-- DataRepository->Account -->
|
<!-- DataRepository->Account -->
|
||||||
<g id="edge13" class="edge">
|
<g id="edge8" class="edge" data-name="DataRepository->Account">
|
||||||
<title>DataRepository->Account</title>
|
|
||||||
<path fill="none" stroke="black" d="M599.5,-312.46C599.5,-266.56 599.5,-206 599.5,-206 599.5,-206 693.86,-206 693.86,-206"/>
|
<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="693.86,-209.5 703.86,-206 693.86,-202.5 693.86,-209.5"/>
|
<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="609.5" y="-268.8" font-family="Arial" font-size="9.00">loads</text>
|
<text text-anchor="middle" x="323.76" y="-280.3" font-family="Arial" font-size="9.00">loads</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- IOException -->
|
<!-- IOException -->
|
||||||
<g id="node12" class="node">
|
<g id="node10" class="node" pointer-events="visible" data-name="IOException">
|
||||||
<title>IOException</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="504.5,-38.5 504.5,-74.5 575.5,-74.5 575.5,-38.5 504.5,-38.5"/>
|
<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="540" y="-54" font-family="Arial" font-size="10.00">IOException</text>
|
<text text-anchor="middle" x="283" y="-58.3" font-family="Times New Roman" font-size="10.00">IOException</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- DataRepository->IOException -->
|
<!-- DataRepository->IOException -->
|
||||||
<g id="edge18" class="edge">
|
<g id="edge13" class="edge" data-name="DataRepository->IOException">
|
||||||
<title>DataRepository->IOException</title>
|
|
||||||
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M528.17,-312.39C528.17,-312.39 528.17,-84.62 528.17,-84.62"/>
|
<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="528.17,-74.62 532.67,-84.62 528.17,-79.62 528.17,-84.62 528.17,-84.62 528.17,-84.62 528.17,-79.62 523.67,-84.62 528.17,-74.62 528.17,-74.62"/>
|
<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="508.5" y="-191.8" font-family="Arial" font-size="9.00"><<throws>></text>
|
<text text-anchor="middle" x="303.77" y="-200.4" font-family="Arial" font-size="9.00"><<throws>></text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->DataRepository -->
|
<!-- Account->DataRepository -->
|
||||||
<g id="edge12" class="edge">
|
<g id="edge7" class="edge" data-name="Account->DataRepository">
|
||||||
<title>Account->DataRepository</title>
|
|
||||||
<path fill="none" stroke="black" d="M703.75,-194C643.07,-194 587.5,-194 587.5,-194 587.5,-194 587.5,-302.29 587.5,-302.29"/>
|
<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="584,-302.29 587.5,-312.29 591,-302.29 584,-302.29"/>
|
<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="739" y="-268.8" font-family="Arial" font-size="9.00">uses for persistence</text>
|
<text text-anchor="middle" x="394.27" y="-280.3" font-family="Arial" font-size="9.00">uses for persistence</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Address -->
|
<!-- Address -->
|
||||||
<g id="node5" class="node">
|
<g id="node5" class="node" pointer-events="visible" data-name="Address">
|
||||||
<title>Address</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="904,-37.5 904,-75.5 1190,-75.5 1190,-37.5 904,-37.5"/>
|
<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="1047" y="-63.5" font-family="Arial" font-size="10.00">Address</text>
|
<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="904,-56.5 1190,-56.5 "/>
|
<polyline fill="none" stroke="black" points="628.66,-61.3 893.34,-61.3"/>
|
||||||
<text text-anchor="start" x="912" y="-44.5" font-family="Arial" font-size="10.00">+ Address(street: String, city: String, state: String, zip: String)</text>
|
<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>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->Address -->
|
<!-- Account->Address -->
|
||||||
<g id="edge10" class="edge">
|
<g id="edge5" class="edge" data-name="Account->Address">
|
||||||
<title>Account->Address</title>
|
|
||||||
<path fill="none" stroke="black" d="M957,-158.23C957,-158.23 957,-85.58 957,-85.58"/>
|
<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="960.5,-85.58 957,-75.58 953.5,-85.58 960.5,-85.58"/>
|
<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="1019" y="-114.8" font-family="Arial" font-size="9.00">has mailing</text>
|
<text text-anchor="middle" x="712.76" y="-120.5" font-family="Arial" font-size="9.00">has mailing</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- EmailAddress -->
|
<!-- EmailAddress -->
|
||||||
<g id="node6" class="node">
|
<g id="node6" class="node" pointer-events="visible" data-name="EmailAddress">
|
||||||
<title>EmailAddress</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1262.5,-37.5 1262.5,-75.5 1409.5,-75.5 1409.5,-37.5 1262.5,-37.5"/>
|
<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="1336" y="-63.5" font-family="Arial" font-size="10.00">EmailAddress</text>
|
<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="1262.5,-56.5 1409.5,-56.5 "/>
|
<polyline fill="none" stroke="black" points="364.3,-61.3 503.7,-61.3"/>
|
||||||
<text text-anchor="start" x="1270.5" y="-44.5" font-family="Arial" font-size="10.00">+ EmailAddress(email: String)</text>
|
<text text-anchor="start" x="372.3" y="-48.3" font-family="Times New Roman" font-size="10.00">+ EmailAddress(email: String)</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->EmailAddress -->
|
<!-- Account->EmailAddress -->
|
||||||
<g id="edge11" class="edge">
|
<g id="edge6" class="edge" data-name="Account->EmailAddress">
|
||||||
<title>Account->EmailAddress</title>
|
|
||||||
<path fill="none" stroke="black" d="M1010.24,-166C1142.19,-166 1311.5,-166 1311.5,-166 1311.5,-166 1311.5,-85.57 1311.5,-85.57"/>
|
<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="1315,-85.57 1311.5,-75.57 1308,-85.57 1315,-85.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="1262" y="-114.8" font-family="Arial" font-size="9.00">has</text>
|
<text text-anchor="middle" x="468.26" y="-120.5" font-family="Arial" font-size="9.00">has</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- IllegalArgumentException -->
|
<!-- IllegalArgumentException -->
|
||||||
<g id="node8" class="node">
|
<g id="node8" class="node" pointer-events="visible" data-name="IllegalArgumentException">
|
||||||
<title>IllegalArgumentException</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="704,-38.5 704,-74.5 832,-74.5 832,-38.5 704,-38.5"/>
|
<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="768" y="-54" font-family="Arial" font-size="10.00">IllegalArgumentException</text>
|
<text text-anchor="middle" x="566" y="-58.3" font-family="Times New Roman" font-size="10.00">IllegalArgumentException</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->IllegalArgumentException -->
|
<!-- Account->IllegalArgumentException -->
|
||||||
<g id="edge16" class="edge">
|
<g id="edge11" class="edge" data-name="Account->IllegalArgumentException">
|
||||||
<title>Account->IllegalArgumentException</title>
|
|
||||||
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M768,-158.23C768,-158.23 768,-84.82 768,-84.82"/>
|
<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="768,-74.82 772.5,-84.82 768,-79.82 768,-84.82 768,-84.82 768,-84.82 768,-79.82 763.5,-84.82 768,-74.82 768,-74.82"/>
|
<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="841.5" y="-114.8" font-family="Arial" font-size="9.00"><<throws>></text>
|
<text text-anchor="middle" x="560.77" y="-120.5" font-family="Arial" font-size="9.00"><<throws>></text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Account->IOException -->
|
<!-- Account->IOException -->
|
||||||
<g id="edge17" class="edge">
|
<g id="edge12" class="edge" data-name="Account->IOException">
|
||||||
<title>Account->IOException</title>
|
|
||||||
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M703.97,-170C627.83,-170 551.83,-170 551.83,-170 551.83,-170 551.83,-84.74 551.83,-84.74"/>
|
<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="551.83,-74.74 556.33,-84.74 551.83,-79.74 551.83,-84.74 551.83,-84.74 551.83,-84.74 551.83,-79.74 547.33,-84.74 551.83,-74.74 551.83,-74.74"/>
|
<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="668.5" y="-114.8" font-family="Arial" font-size="9.00"><<throws>></text>
|
<text text-anchor="middle" x="356.77" y="-120.5" font-family="Arial" font-size="9.00"><<throws>></text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccountList->Account -->
|
<!-- AccountList->Account -->
|
||||||
<g id="edge9" class="edge">
|
<g id="edge4" class="edge" data-name="AccountList->Account">
|
||||||
<title>AccountList->Account</title>
|
|
||||||
<path fill="none" stroke="black" d="M800,-327.16C800,-327.16 800,-241.79 800,-241.79"/>
|
<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="800,-241.79 796,-235.79 800,-229.79 804,-235.79 800,-241.79"/>
|
<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="864" y="-268.8" font-family="Arial" font-size="9.00">0..*</text>
|
<text text-anchor="middle" x="466.75" y="-280.3" font-family="Arial" font-size="9.00">0..*</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- DuplicateObjectException -->
|
<!-- DuplicateObjectException -->
|
||||||
<g id="node7" class="node">
|
<g id="node7" class="node" pointer-events="visible" data-name="DuplicateObjectException">
|
||||||
<title>DuplicateObjectException</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1082,-176 1082,-212 1212,-212 1212,-176 1082,-176"/>
|
<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="1147" y="-191.5" font-family="Arial" font-size="10.00">DuplicateObjectException</text>
|
<text text-anchor="middle" x="716" y="-200.1" font-family="Times New Roman" font-size="10.00">DuplicateObjectException</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- AccountList->DuplicateObjectException -->
|
<!-- AccountList->DuplicateObjectException -->
|
||||||
<g id="edge15" class="edge">
|
<g id="edge10" class="edge" data-name="AccountList->DuplicateObjectException">
|
||||||
<title>AccountList->DuplicateObjectException</title>
|
|
||||||
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M896.2,-363C998.89,-363 1147,-363 1147,-363 1147,-363 1147,-222.09 1147,-222.09"/>
|
<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="1147,-212.09 1151.5,-222.09 1147,-217.09 1147,-222.09 1147,-222.09 1147,-222.09 1147,-217.09 1142.5,-222.09 1147,-212.09 1147,-212.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="973.5" y="-268.8" font-family="Arial" font-size="9.00"><<throws>></text>
|
<text text-anchor="middle" x="508.77" y="-280.3" font-family="Arial" font-size="9.00"><<throws>></text>
|
||||||
</g>
|
</g></g>
|
||||||
<!-- TestAccountLoad -->
|
|
||||||
<g id="node9" class="node">
|
|
||||||
<title>TestAccountLoad</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="16.5,-662.5 16.5,-711.5 309.5,-711.5 309.5,-662.5 16.5,-662.5"/>
|
|
||||||
<text text-anchor="middle" x="163" y="-699.5" font-family="Arial" font-size="10.00">TestAccountLoad</text>
|
|
||||||
<polyline fill="none" stroke="black" points="16.5,-692.5 309.5,-692.5 "/>
|
|
||||||
<text text-anchor="start" x="24.5" y="-680.5" font-family="Arial" font-size="10.00">+ main(args: String[])</text>
|
|
||||||
<text text-anchor="start" x="24.5" y="-669.5" font-family="Arial" font-size="10.00">- Test_AddAccount(mgr: AccomodationManager, acct: Account)</text>
|
|
||||||
</g>
|
|
||||||
<!-- TestAccountLoad->AccomodationManager -->
|
|
||||||
<g id="edge1" class="edge">
|
|
||||||
<title>TestAccountLoad->AccomodationManager</title>
|
|
||||||
<path fill="none" stroke="black" d="M283.75,-662.34C283.75,-627.49 283.75,-568 283.75,-568 283.75,-568 323.3,-568 323.3,-568"/>
|
|
||||||
<polygon fill="black" stroke="black" points="323.3,-571.5 333.3,-568 323.3,-564.5 323.3,-571.5"/>
|
|
||||||
<text text-anchor="middle" x="403" y="-618.8" font-family="Arial" font-size="9.00">uses</text>
|
|
||||||
</g>
|
|
||||||
<!-- TestAccountLoad->Account -->
|
|
||||||
<g id="edge2" class="edge">
|
|
||||||
<title>TestAccountLoad->Account</title>
|
|
||||||
<path fill="none" stroke="black" d="M237,-662.3C237,-560.91 237,-182 237,-182 237,-182 693.74,-182 693.74,-182"/>
|
|
||||||
<polygon fill="black" stroke="black" points="693.74,-185.5 703.74,-182 693.74,-178.5 693.74,-185.5"/>
|
|
||||||
<text text-anchor="middle" x="1225" y="-452.8" font-family="Arial" font-size="9.00">uses</text>
|
|
||||||
</g>
|
|
||||||
<!-- TestAccountLoad->Address -->
|
|
||||||
<g id="edge3" class="edge">
|
|
||||||
<title>TestAccountLoad->Address</title>
|
|
||||||
<path fill="none" stroke="black" d="M309.8,-678C560.89,-678 1046,-678 1046,-678 1046,-678 1046,-85.78 1046,-85.78"/>
|
|
||||||
<polygon fill="black" stroke="black" points="1049.5,-85.78 1046,-75.78 1042.5,-85.78 1049.5,-85.78"/>
|
|
||||||
<text text-anchor="middle" x="1411.5" y="-360.8" font-family="Arial" font-size="9.00">creates</text>
|
|
||||||
</g>
|
|
||||||
<!-- TestAccountLoad->EmailAddress -->
|
|
||||||
<g id="edge4" class="edge">
|
|
||||||
<title>TestAccountLoad->EmailAddress</title>
|
|
||||||
<path fill="none" stroke="black" d="M309.54,-695C629.15,-695 1360.5,-695 1360.5,-695 1360.5,-695 1360.5,-85.61 1360.5,-85.61"/>
|
|
||||||
<polygon fill="black" stroke="black" points="1364,-85.61 1360.5,-75.61 1357,-85.61 1364,-85.61"/>
|
|
||||||
<text text-anchor="middle" x="1586.5" y="-360.8" font-family="Arial" font-size="9.00">creates</text>
|
|
||||||
</g>
|
|
||||||
<!-- TestAccountLoad_getRepositoryConfig -->
|
|
||||||
<g id="node10" class="node">
|
|
||||||
<title>TestAccountLoad_getRepositoryConfig</title>
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="110,-518.5 110,-556.5 216,-556.5 216,-518.5 110,-518.5"/>
|
|
||||||
<text text-anchor="middle" x="163" y="-544.5" font-family="Arial" font-size="10.00">getRepositoryConfig</text>
|
|
||||||
<polyline fill="none" stroke="black" points="110,-537.5 216,-537.5 "/>
|
|
||||||
<text text-anchor="start" x="118" y="-525.5" font-family="Arial" font-size="10.00">+ getPath(): String</text>
|
|
||||||
</g>
|
|
||||||
<!-- TestAccountLoad->TestAccountLoad_getRepositoryConfig -->
|
|
||||||
<g id="edge5" class="edge">
|
|
||||||
<title>TestAccountLoad->TestAccountLoad_getRepositoryConfig</title>
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M163,-662.31C163,-662.31 163,-566.52 163,-566.52"/>
|
|
||||||
<polygon fill="black" stroke="black" points="163,-556.52 167.5,-566.52 163,-561.52 163,-566.52 163,-566.52 163,-566.52 163,-561.52 158.5,-566.52 163,-556.52 163,-556.52"/>
|
|
||||||
<text text-anchor="middle" x="182.5" y="-618.8" font-family="Arial" font-size="9.00">has inner</text>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 14 KiB |
105
uml/classdiagram8.dot
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
digraph ReservationSystemDiagram {
|
||||||
|
graph [
|
||||||
|
rankdir=TB,
|
||||||
|
splines=ortho,
|
||||||
|
label="Lodge Reservation System",
|
||||||
|
fontsize=20
|
||||||
|
];
|
||||||
|
|
||||||
|
node [
|
||||||
|
shape=record,
|
||||||
|
style=filled,
|
||||||
|
fillcolor=lightyellow,
|
||||||
|
fontname="Helvetica"
|
||||||
|
];
|
||||||
|
|
||||||
|
edge [
|
||||||
|
penwidth=1.0,
|
||||||
|
fontname="Helvetica"
|
||||||
|
];
|
||||||
|
|
||||||
|
// Class Definitions
|
||||||
|
|
||||||
|
AccomodationManager [label="{AccomodationManager|- accounts: AccountList\l|+ setDataStoreRoot(home: String): void\l+ loadAll(): void\l+ retrieveLoadedAccounts(): List<Account>\l+ retrieveAccount(acct_id: String): Account\l+ AddAccount(acct: Account): void\l+ UpdateAccount(acct: Account): void\l+ newAccount(...): Account\l+ addReservation(account: Account, reservation: Reservation): boolean\l+ findReservation(reservation_number: String): Reservation\l}"];
|
||||||
|
|
||||||
|
AccountList [label="{AccountList|# extends ArrayList<Account>\l+ add(account: Account): boolean\l+ save(acct: Account): void\l+ find(account_number: String): Account\l}"];
|
||||||
|
|
||||||
|
|
||||||
|
HotelReservation [label="{HotelReservation|+ ReservationType(): String\l+ calculatePrice(): float\l+ getPricePerNight(): float\l}"];
|
||||||
|
HouseReservation [label="{HouseReservation|+ ReservationType(): String\l+ calculatePrice(): float\l+ getPricePerNight(): float\l}"];
|
||||||
|
CabinReservation [label="{CabinReservation|+ ReservationType(): String\l+ calculatePrice(): float\l+ getPricePerNight(): float\l}"];
|
||||||
|
|
||||||
|
DataRepository [label="{DataRepository|- directoryPath: String\l- instance: DataRepository\l+ {static} setDataStoreRoot(path: String): void\l+ {static} getPath(): String\l+ {static} LoadAccount(file: Path): Account\l+ {static} WalkFileSystemTree(...): void\l}"];
|
||||||
|
|
||||||
|
// Data model classes (simplified)
|
||||||
|
subgraph cluster_datamodel {
|
||||||
|
label = "Data Models";
|
||||||
|
style = "dashed";
|
||||||
|
|
||||||
|
Address [label="{Address|- street: String\l- city: String\l- state: String\l- zip: String\l}"];
|
||||||
|
|
||||||
|
EmailAddress [label="{EmailAddress|- email: String\l}"];
|
||||||
|
|
||||||
|
Account [label="{Account|- account_number: String\l- phone_number: String\l- mailing_address: Address\l- email_address: EmailAddress\l- reservations: AccountReservationList\l|+ add(rsrv: Reservation): boolean\l+ Write(acct: Account): void\l+ findReservation(reservation_number: String): Reservation\l+ checkValid(): boolean\l}"];
|
||||||
|
|
||||||
|
AccountReservationList [label="{AccountReservationList|# extends ArrayList<IReservation>\l+ add(reservation: IReservation): boolean\l+ find(reservation_number: String): Reservation\l}"];
|
||||||
|
|
||||||
|
IReservation [label="{<<interface>>\nIReservation|+ getReservation_number(): String\l+ getAccountNumber(): String\l+ calculatePrice(): float\l+ checkValid(): boolean\l+ ReservationType(): String\l}"];
|
||||||
|
|
||||||
|
Reservation [label="{<<abstract>>\nReservation|- reservation_number: String\l- physical_address: Address\l- reservation_start_date: ZonedDateTime\l- reservation_end_date: ZonedDateTime\l- reservation_status: ReservationStatusEnum\l- price: Float\l# accountNumber: String\l|+ Change(reservation: Reservation, newStatus: ReservationStatusEnum): void\l+ ReservationType(): String\l}"];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Relationships
|
||||||
|
|
||||||
|
// Composition / Aggregation
|
||||||
|
AccomodationManager -> AccountList [
|
||||||
|
arrowhead=odiamond,
|
||||||
|
label="manages",
|
||||||
|
taillabel="1",
|
||||||
|
headlabel="1"
|
||||||
|
];
|
||||||
|
|
||||||
|
AccountList -> Account [
|
||||||
|
arrowhead=odiamond,
|
||||||
|
label="contains",
|
||||||
|
taillabel="1",
|
||||||
|
headlabel="0..*"
|
||||||
|
];
|
||||||
|
|
||||||
|
Account -> AccountReservationList [
|
||||||
|
arrowhead=odiamond,
|
||||||
|
label="has",
|
||||||
|
taillabel="1",
|
||||||
|
headlabel="1"
|
||||||
|
];
|
||||||
|
|
||||||
|
AccountReservationList -> IReservation [
|
||||||
|
arrowhead=odiamond,
|
||||||
|
label="contains",
|
||||||
|
taillabel="1",
|
||||||
|
headlabel="0..*"
|
||||||
|
];
|
||||||
|
|
||||||
|
// Inheritance / Implementation
|
||||||
|
Reservation -> IReservation [arrowhead=onormal, style=dashed, label="implements"];
|
||||||
|
HotelReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||||
|
HouseReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||||
|
CabinReservation -> Reservation [arrowhead=empty, label="extends"];
|
||||||
|
|
||||||
|
// Association / Dependency
|
||||||
|
AccomodationManager -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
||||||
|
Account -> Address [
|
||||||
|
arrowhead=vee, style=dashed,
|
||||||
|
label="has a mailing address",
|
||||||
|
taillabel="*",
|
||||||
|
headlabel="1"
|
||||||
|
];
|
||||||
|
Account -> EmailAddress [
|
||||||
|
arrowhead=vee, style=dashed,
|
||||||
|
label="has an email",
|
||||||
|
taillabel="*",
|
||||||
|
headlabel="1"
|
||||||
|
];
|
||||||
|
Reservation -> Address [arrowhead=vee, style=dashed, label="has physical & mailing addresses"];
|
||||||
|
}
|
||||||