diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba58a22 --- /dev/null +++ b/.gitignore @@ -0,0 +1,183 @@ +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### Maven ### +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar + +### NetBeans ### +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +### Eclipse ### + +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +# Eclipse Core +.project + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Annotation Processing +.apt_generated + +.sts4-cache/ + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# Sonarlint plugin +.idea/sonarlint \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6bb8a29 --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to \ No newline at end of file diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..3c419c8 --- /dev/null +++ b/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project seabedexplorer. + + + diff --git a/doc/Commands.txt b/doc/Commands.txt new file mode 100644 index 0000000..3b73e79 --- /dev/null +++ b/doc/Commands.txt @@ -0,0 +1,11 @@ +all +info +scan //chemical scanner +fluid //hot fluid sampler +drill //Drill +laser //laser photography +sonar //sonar +refraction //index of refraction +ph //PH +salinity //Salinity +photosensor //photosensor \ No newline at end of file diff --git a/doc/Seabed Explorer Craft.mdj b/doc/Seabed Explorer Craft.mdj new file mode 100644 index 0000000..2143ffc --- /dev/null +++ b/doc/Seabed Explorer Craft.mdj @@ -0,0 +1,27252 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Seabed Explorer Craft", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFmvFTHChpkZ6M=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Seabed Explorer Craft", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFmvFTHChpllB0=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Seabed Explorer Craft", + "ownedViews": [ + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvFcHHB6Sb3M=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvFcHHB6TS+E=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "model": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvFcHHB6UdRg=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6TS+E=" + }, + "font": "Arial;13;0", + "left": 989, + "top": 605, + "width": 198, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFcHHB6VIuU=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6TS+E=" + }, + "font": "Arial;13;3", + "left": 989, + "top": 620, + "width": 198, + "height": 13, + "text": "Submersible" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFcHHB6WgkI=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6TS+E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1472, + "top": 768, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFcHHB6XG4g=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6TS+E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1472, + "top": 768, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 984, + "top": 600, + "width": 208, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFcHHB6UdRg=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvFcHHB6VIuU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvFcHHB6WgkI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFcHHB6XG4g=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvFcHHB6Y75c=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "model": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFmyhSfDAVlz6k=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6Y75c=" + }, + "model": { + "$ref": "AAAAAAFmyhSepwVi9Xc=" + }, + "font": "Arial;13;0", + "left": 989, + "top": 643, + "width": 198, + "height": 13, + "text": "+dataCollection: Collection", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 984, + "top": 638, + "width": 208, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvFcHHB6ZCD0=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "model": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvJC4lyWNsGk=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6ZCD0=" + }, + "model": { + "$ref": "AAAAAAFmvJC4UyWKghM=" + }, + "font": "Arial;13;2", + "left": 989, + "top": 666, + "width": 198, + "height": 13, + "text": "+getSubmersible(): Submersible", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvKyGcC4imQg=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6ZCD0=" + }, + "model": { + "$ref": "AAAAAAFmvKyGKC4fCPA=" + }, + "font": "Arial;13;2", + "left": 989, + "top": 681, + "width": 198, + "height": 13, + "text": "+collectData()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmyhaisQX39Bs=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6ZCD0=" + }, + "model": { + "$ref": "AAAAAAFmyhaibgX0oSo=" + }, + "font": "Arial;13;0", + "left": 989, + "top": 696, + "width": 198, + "height": 13, + "text": "#addData(Data data)", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 984, + "top": 661, + "width": 208, + "height": 53 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvFcHHB6afu8=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "model": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 176, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvFcHHB6bL4g=", + "_parent": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "model": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 176, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 984, + "top": 600, + "width": 208, + "height": 114, + "nameCompartment": { + "$ref": "AAAAAAFmvFcHHB6TS+E=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvFcHHB6Y75c=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvFcHHB6ZCD0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvFcHHB6afu8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvFcHHB6bL4g=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvFfzcB7AxAs=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFfzZR6+CdU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvFfzcB7BS0o=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7AxAs=" + }, + "model": { + "$ref": "AAAAAAFmvFfzZR6+CdU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvFfzcB7CNjQ=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7BS0o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 912, + "top": 928, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFfzcB7D9Hg=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7BS0o=" + }, + "font": "Arial;13;1", + "left": 837, + "top": 775, + "width": 27.447265625, + "height": 13, + "text": "AUV" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFfzcB7ElLo=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7BS0o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 912, + "top": 928, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFfzcB7FSx4=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7BS0o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 912, + "top": 928, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 832, + "top": 768, + "width": 37.447265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFfzcB7CNjQ=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvFfzcB7D9Hg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvFfzcB7ElLo=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFfzcB7FSx4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvFfzcB7GsUs=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7AxAs=" + }, + "model": { + "$ref": "AAAAAAFmvFfzZR6+CdU=" + }, + "font": "Arial;13;0", + "left": 832, + "top": 793, + "width": 37.447265625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvFfzcB7Hxlo=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7AxAs=" + }, + "model": { + "$ref": "AAAAAAFmvFfzZR6+CdU=" + }, + "font": "Arial;13;0", + "left": 832, + "top": 803, + "width": 37.447265625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvFfzcB7IAww=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7AxAs=" + }, + "model": { + "$ref": "AAAAAAFmvFfzZR6+CdU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvFfzcR7JGf8=", + "_parent": { + "$ref": "AAAAAAFmvFfzcB7AxAs=" + }, + "model": { + "$ref": "AAAAAAFmvFfzZR6+CdU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 832, + "top": 768, + "width": 37.447265625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvFfzcB7BS0o=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvFfzcB7GsUs=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvFfzcB7Hxlo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvFfzcB7IAww=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvFfzcR7JGf8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvFgDxR7q4F8=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFgDvR7oG1I=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvFgDxR7raEs=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7q4F8=" + }, + "model": { + "$ref": "AAAAAAFmvFgDvR7oG1I=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvFgDxR7sRGY=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7raEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 912, + "top": 896, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFgDxR7tlAg=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7raEs=" + }, + "font": "Arial;13;1", + "left": 1053, + "top": 783, + "width": 28.1708984375, + "height": 13, + "text": "ROV" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFgDxR7uq9o=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7raEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 912, + "top": 896, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFgDxR7vMo4=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7raEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 912, + "top": 896, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1048, + "top": 776, + "width": 38.1708984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFgDxR7sRGY=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvFgDxR7tlAg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvFgDxR7uq9o=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFgDxR7vMo4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvFgDxR7wK9E=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7q4F8=" + }, + "model": { + "$ref": "AAAAAAFmvFgDvR7oG1I=" + }, + "font": "Arial;13;0", + "left": 1048, + "top": 801, + "width": 38.1708984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvFgDxR7xEjg=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7q4F8=" + }, + "model": { + "$ref": "AAAAAAFmvFgDvR7oG1I=" + }, + "font": "Arial;13;0", + "left": 1048, + "top": 811, + "width": 38.1708984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvFgDxR7ykzg=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7q4F8=" + }, + "model": { + "$ref": "AAAAAAFmvFgDvR7oG1I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 448, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvFgDxR7ziDg=", + "_parent": { + "$ref": "AAAAAAFmvFgDxR7q4F8=" + }, + "model": { + "$ref": "AAAAAAFmvFgDvR7oG1I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 448, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1048, + "top": 776, + "width": 38.1708984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvFgDxR7raEs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvFgDxR7wK9E=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvFgDxR7xEjg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvFgDxR7ykzg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvFgDxR7ziDg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvFgRKx8UX9s=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFgRJx8S9iM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvFgRKx8VYeo=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8UX9s=" + }, + "model": { + "$ref": "AAAAAAFmvFgRJx8S9iM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvFgRKx8WIGU=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8VYeo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 992, + "top": 800, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFgRKx8XC14=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8VYeo=" + }, + "font": "Arial;13;1", + "left": 1213, + "top": 775, + "width": 55, + "height": 13, + "text": "MS" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFgRKx8YJa8=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8VYeo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 992, + "top": 800, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFgRKx8ZzB0=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8VYeo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 992, + "top": 800, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1208, + "top": 768, + "width": 65, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFgRKx8WIGU=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvFgRKx8XC14=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvFgRKx8YJa8=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFgRKx8ZzB0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvFgRKx8ar4w=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8UX9s=" + }, + "model": { + "$ref": "AAAAAAFmvFgRJx8S9iM=" + }, + "font": "Arial;13;0", + "left": 1208, + "top": 793, + "width": 65, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvFgRKx8bh+c=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8UX9s=" + }, + "model": { + "$ref": "AAAAAAFmvFgRJx8S9iM=" + }, + "font": "Arial;13;0", + "left": 1208, + "top": 803, + "width": 65, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvFgRKx8c3M4=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8UX9s=" + }, + "model": { + "$ref": "AAAAAAFmvFgRJx8S9iM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 496, + "top": 400, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvFgRKx8dmTs=", + "_parent": { + "$ref": "AAAAAAFmvFgRKx8UX9s=" + }, + "model": { + "$ref": "AAAAAAFmvFgRJx8S9iM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 496, + "top": 400, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1208, + "top": 768, + "width": 65, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvFgRKx8VYeo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvFgRKx8ar4w=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvFgRKx8bh+c=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvFgRKx8c3M4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvFgRKx8dmTs=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvFghSx8+luk=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvFghWh8/FnY=", + "_parent": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "model": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvFghWh9AhME=", + "_parent": { + "$ref": "AAAAAAFmvFghWh8/FnY=" + }, + "font": "Arial;13;0", + "left": 1997, + "top": 725, + "width": 330, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFghWh9BNmM=", + "_parent": { + "$ref": "AAAAAAFmvFghWh8/FnY=" + }, + "font": "Arial;13;3", + "left": 1997, + "top": 740, + "width": 330, + "height": 13, + "text": "Equipment" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFghWh9CrmY=", + "_parent": { + "$ref": "AAAAAAFmvFghWh8/FnY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2416, + "top": 384, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFghWh9DN4s=", + "_parent": { + "$ref": "AAAAAAFmvFghWh8/FnY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3173, + "top": 1174, + "width": 68, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1992, + "top": 720, + "width": 340, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFghWh9AhME=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvFghWh9BNmM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvFghWh9CrmY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFghWh9DN4s=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvFghWh9EnnE=", + "_parent": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "model": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFmvFxQfCTM3WY=", + "_parent": { + "$ref": "AAAAAAFmvFghWh9EnnE=" + }, + "model": { + "$ref": "AAAAAAFmvFxQLyTJRmQ=" + }, + "font": "Arial;13;0", + "left": 1997, + "top": 763, + "width": 330, + "height": 13, + "text": "-submersible: Submersible", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFmvKZpECnQvgQ=", + "_parent": { + "$ref": "AAAAAAFmvFghWh9EnnE=" + }, + "model": { + "$ref": "AAAAAAFmvKZoyinNpmQ=" + }, + "font": "Arial;13;0", + "left": 1997, + "top": 778, + "width": 330, + "height": 13, + "text": "-dataCollector: DataCollector", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1992, + "top": 758, + "width": 340, + "height": 38 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvFghWh9F6l0=", + "_parent": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "model": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvFzsfSTfYFw=", + "_parent": { + "$ref": "AAAAAAFmvFghWh9F6l0=" + }, + "model": { + "$ref": "AAAAAAFmvFzsHyTW+l0=" + }, + "font": "Arial;13;0", + "left": 1997, + "top": 801, + "width": 330, + "height": 13, + "text": "#setSubmersible(Submersible submersible)", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1992, + "top": 796, + "width": 340, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvFghWh9GugU=", + "_parent": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "model": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1208, + "top": 192, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvFghWh9HQJA=", + "_parent": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "model": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1208, + "top": 192, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1992, + "top": 720, + "width": 340, + "height": 99, + "nameCompartment": { + "$ref": "AAAAAAFmvFghWh8/FnY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvFghWh9EnnE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvFghWh9F6l0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvFghWh9GugU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvFghWh9HQJA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvFjVqh95HDQ=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFjVoR93OFI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvFjVqh96Op8=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh95HDQ=" + }, + "model": { + "$ref": "AAAAAAFmvFjVoR93OFI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvFjVqh97Xzg=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh96Op8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2880, + "top": 1904, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFjVqh982Ms=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh96Op8=" + }, + "font": "Arial;13;1", + "left": 2197, + "top": 1399, + "width": 38, + "height": 13, + "text": "Sonar" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFjVqh99dGw=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh96Op8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2880, + "top": 1904, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFjVqh9+gcM=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh96Op8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2880, + "top": 1904, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2192, + "top": 1392, + "width": 48, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFjVqh97Xzg=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvFjVqh982Ms=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvFjVqh99dGw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFjVqh9+gcM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvFjVqh9/aOQ=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh95HDQ=" + }, + "model": { + "$ref": "AAAAAAFmvFjVoR93OFI=" + }, + "font": "Arial;13;0", + "left": 2192, + "top": 1417, + "width": 48, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvFjVqh+ApaY=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh95HDQ=" + }, + "model": { + "$ref": "AAAAAAFmvFjVoR93OFI=" + }, + "font": "Arial;13;0", + "left": 2192, + "top": 1427, + "width": 48, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvFjVqh+BQ0A=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh95HDQ=" + }, + "model": { + "$ref": "AAAAAAFmvFjVoR93OFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1568, + "top": 968, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvFjVqh+CjzA=", + "_parent": { + "$ref": "AAAAAAFmvFjVqh95HDQ=" + }, + "model": { + "$ref": "AAAAAAFmvFjVoR93OFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1568, + "top": 968, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 2192, + "top": 1392, + "width": 48, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvFjVqh96Op8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvFjVqh9/aOQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvFjVqh+ApaY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvFjVqh+BQ0A=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvFjVqh+CjzA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvFjl6x+jc+s=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFjl5h+hybc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvFjl6x+kAQw=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+jc+s=" + }, + "model": { + "$ref": "AAAAAAFmvFjl5h+hybc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvFjl6x+lKY0=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+kAQw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2752, + "top": 1888, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFjl6x+mrBY=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+kAQw=" + }, + "font": "Arial;13;1", + "left": 2317, + "top": 1399, + "width": 35, + "height": 13, + "text": "Laser" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFjl6x+nO/I=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+kAQw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2752, + "top": 1888, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvFjl6x+ohwA=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+kAQw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2752, + "top": 1888, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2312, + "top": 1392, + "width": 45, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFjl6x+lKY0=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvFjl6x+mrBY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvFjl6x+nO/I=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFjl6x+ohwA=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvFjl6x+pJIg=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+jc+s=" + }, + "model": { + "$ref": "AAAAAAFmvFjl5h+hybc=" + }, + "font": "Arial;13;0", + "left": 2312, + "top": 1417, + "width": 45, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvFjl6x+qzl0=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+jc+s=" + }, + "model": { + "$ref": "AAAAAAFmvFjl5h+hybc=" + }, + "font": "Arial;13;0", + "left": 2312, + "top": 1427, + "width": 45, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvFjl6x+rfHE=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+jc+s=" + }, + "model": { + "$ref": "AAAAAAFmvFjl5h+hybc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1504, + "top": 960, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvFjl6x+sao0=", + "_parent": { + "$ref": "AAAAAAFmvFjl6x+jc+s=" + }, + "model": { + "$ref": "AAAAAAFmvFjl5h+hybc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1504, + "top": 960, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 2312, + "top": 1392, + "width": 45, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvFjl6x+kAQw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvFjl6x+pJIg=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvFjl6x+qzl0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvFjl6x+rfHE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvFjl6x+sao0=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvFpOoyFUDg4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFpOoiFSTJs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpOoyFVhJk=", + "_parent": { + "$ref": "AAAAAAFmvFpOoyFUDg4=" + }, + "model": { + "$ref": "AAAAAAFmvFpOoiFSTJs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 856, + "top": 627, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpOoyFUDg4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpOoyFWY5o=", + "_parent": { + "$ref": "AAAAAAFmvFpOoyFUDg4=" + }, + "model": { + "$ref": "AAAAAAFmvFpOoiFSTJs=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 856, + "top": 612, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvFpOoyFUDg4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpOoyFXWhM=", + "_parent": { + "$ref": "AAAAAAFmvFpOoyFUDg4=" + }, + "model": { + "$ref": "AAAAAAFmvFpOoiFSTJs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 856, + "top": 657, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpOoyFUDg4=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "tail": { + "$ref": "AAAAAAFmvFfzcB7AxAs=" + }, + "lineStyle": 2, + "points": "856:768;856:648;984:648", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvFpOoyFVhJk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFpOoyFWY5o=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFpOoyFXWhM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvFpTpiF3NjQ=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFpTpiF1vbA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpTpiF4HXE=", + "_parent": { + "$ref": "AAAAAAFmvFpTpiF3NjQ=" + }, + "model": { + "$ref": "AAAAAAFmvFpTpiF1vbA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1057, + "top": 737, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpTpiF3NjQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpTpiF54FY=", + "_parent": { + "$ref": "AAAAAAFmvFpTpiF3NjQ=" + }, + "model": { + "$ref": "AAAAAAFmvFpTpiF1vbA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1042, + "top": 737, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvFpTpiF3NjQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpTpiF6J8E=", + "_parent": { + "$ref": "AAAAAAFmvFpTpiF3NjQ=" + }, + "model": { + "$ref": "AAAAAAFmvFpTpiF1vbA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1086, + "top": 738, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpTpiF3NjQ=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "tail": { + "$ref": "AAAAAAFmvFgDxR7q4F8=" + }, + "lineStyle": 2, + "points": "1072:776;1072:713", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvFpTpiF4HXE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFpTpiF54FY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFpTpiF6J8E=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvFpYsSGa4Yg=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFpYqCGYVTY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpYsSGbdR4=", + "_parent": { + "$ref": "AAAAAAFmvFpYsSGa4Yg=" + }, + "model": { + "$ref": "AAAAAAFmvFpYqCGYVTY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1239, + "top": 657, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpYsSGa4Yg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpYsSGcxf8=", + "_parent": { + "$ref": "AAAAAAFmvFpYsSGa4Yg=" + }, + "model": { + "$ref": "AAAAAAFmvFpYqCGYVTY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1239, + "top": 672, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvFpYsSGa4Yg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpYsSGdqhQ=", + "_parent": { + "$ref": "AAAAAAFmvFpYsSGa4Yg=" + }, + "model": { + "$ref": "AAAAAAFmvFpYqCGYVTY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1240, + "top": 627, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpYsSGa4Yg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "tail": { + "$ref": "AAAAAAFmvFgRKx8UX9s=" + }, + "lineStyle": 2, + "points": "1240:768;1240:648;1191:648", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvFpYsSGbdR4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFpYsSGcxf8=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFpYsSGdqhQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvFpgWCG9EBg=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFpgWCG7IQA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpgWCG+1i8=", + "_parent": { + "$ref": "AAAAAAFmvFpgWCG9EBg=" + }, + "model": { + "$ref": "AAAAAAFmvFpgWCG7IQA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2048, + "top": 617, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpgWCG9EBg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpgWCG/uKs=", + "_parent": { + "$ref": "AAAAAAFmvFpgWCG9EBg=" + }, + "model": { + "$ref": "AAAAAAFmvFpgWCG7IQA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2048, + "top": 632, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvFpgWCG9EBg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpgWCHAvS8=", + "_parent": { + "$ref": "AAAAAAFmvFpgWCG9EBg=" + }, + "model": { + "$ref": "AAAAAAFmvFpgWCG7IQA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2049, + "top": 587, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpgWCG9EBg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "tail": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "lineStyle": 2, + "points": "2049:720;2049:608;1191:608", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvFpgWCG+1i8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFpgWCG/uKs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFpgWCHAvS8=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvFpmqiHgisc=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFpmqiHeQsI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpmqiHhUVE=", + "_parent": { + "$ref": "AAAAAAFmvFpmqiHgisc=" + }, + "model": { + "$ref": "AAAAAAFmvFpmqiHeQsI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2201, + "top": 1345, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpmqiHgisc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpmqiHiv3s=", + "_parent": { + "$ref": "AAAAAAFmvFpmqiHgisc=" + }, + "model": { + "$ref": "AAAAAAFmvFpmqiHeQsI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2186, + "top": 1345, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvFpmqiHgisc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpmqiHjs5U=", + "_parent": { + "$ref": "AAAAAAFmvFpmqiHgisc=" + }, + "model": { + "$ref": "AAAAAAFmvFpmqiHeQsI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2230, + "top": 1346, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpmqiHgisc=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvGsVqyTvoFM=" + }, + "tail": { + "$ref": "AAAAAAFmvFjVqh95HDQ=" + }, + "lineStyle": 2, + "points": "2216:1392;2216:1313", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvFpmqiHhUVE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFpmqiHiv3s=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFpmqiHjs5U=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvFpstiID71M=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvFpstCIBa5U=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpstiIEymw=", + "_parent": { + "$ref": "AAAAAAFmvFpstiID71M=" + }, + "model": { + "$ref": "AAAAAAFmvFpstCIBa5U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2321, + "top": 1345, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpstiID71M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpstiIF3EE=", + "_parent": { + "$ref": "AAAAAAFmvFpstiID71M=" + }, + "model": { + "$ref": "AAAAAAFmvFpstCIBa5U=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2306, + "top": 1345, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvFpstiID71M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvFpstiIG7Mk=", + "_parent": { + "$ref": "AAAAAAFmvFpstiID71M=" + }, + "model": { + "$ref": "AAAAAAFmvFpstCIBa5U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2350, + "top": 1346, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvFpstiID71M=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvGsVqyTvoFM=" + }, + "tail": { + "$ref": "AAAAAAFmvFjl6x+jc+s=" + }, + "lineStyle": 2, + "points": "2336:1392;2336:1313", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvFpstiIEymw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvFpstiIF3EE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvFpstiIG7Mk=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvGsVqyTvoFM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvGsVqyTwI8c=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTvoFM=" + }, + "model": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvGsVqyTxuvk=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTwI8c=" + }, + "font": "Arial;13;0", + "left": 2205, + "top": 1261, + "width": 136.517578125, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvGsVqyTyuVE=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTwI8c=" + }, + "font": "Arial;13;3", + "left": 2205, + "top": 1276, + "width": 136.517578125, + "height": 13, + "text": "TopographicalMapper" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvGsVqyTzUUY=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTwI8c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2848, + "top": 1424, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvGsVqyT0w64=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTwI8c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2848, + "top": 1424, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2200, + "top": 1256, + "width": 146.517578125, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvGsVqyTxuvk=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvGsVqyTyuVE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvGsVqyTzUUY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvGsVqyT0w64=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvGsVqyT10c4=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTvoFM=" + }, + "model": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + }, + "font": "Arial;13;0", + "left": 2200, + "top": 1294, + "width": 146.517578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvGsVrCT2sDI=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTvoFM=" + }, + "model": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + }, + "font": "Arial;13;0", + "left": 2200, + "top": 1304, + "width": 146.517578125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvGsVrCT3YV8=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTvoFM=" + }, + "model": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1544, + "top": 816, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvGsVrCT4Fhc=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTvoFM=" + }, + "model": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1544, + "top": 816, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 2200, + "top": 1256, + "width": 146.517578125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvGsVqyTwI8c=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvGsVqyT10c4=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvGsVrCT2sDI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvGsVrCT3YV8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvGsVrCT4Fhc=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvGuC4SUbw8M=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvGuC4CUZus0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvGuC4SUcQqY=", + "_parent": { + "$ref": "AAAAAAFmvGuC4SUbw8M=" + }, + "model": { + "$ref": "AAAAAAFmvGuC4CUZus0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2257, + "top": 1030, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvGuC4SUbw8M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvGuC4SUdKfI=", + "_parent": { + "$ref": "AAAAAAFmvGuC4SUbw8M=" + }, + "model": { + "$ref": "AAAAAAFmvGuC4CUZus0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2242, + "top": 1030, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvGuC4SUbw8M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvGuC4SUeyIM=", + "_parent": { + "$ref": "AAAAAAFmvGuC4SUbw8M=" + }, + "model": { + "$ref": "AAAAAAFmvGuC4CUZus0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2287, + "top": 1031, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvGuC4SUbw8M=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "tail": { + "$ref": "AAAAAAFmvGsVqyTvoFM=" + }, + "lineStyle": 2, + "points": "2272:1256;2272:818", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvGuC4SUcQqY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvGuC4SUdKfI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvGuC4SUeyIM=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvHIRYiU78Mk=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvHIRVCU5U78=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvHIRYyU8Hgg=", + "_parent": { + "$ref": "AAAAAAFmvHIRYiU78Mk=" + }, + "model": { + "$ref": "AAAAAAFmvHIRVCU5U78=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvHIRYyU96vA=", + "_parent": { + "$ref": "AAAAAAFmvHIRYyU8Hgg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2512, + "top": 848, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvHIRYyU+UVM=", + "_parent": { + "$ref": "AAAAAAFmvHIRYyU8Hgg=" + }, + "font": "Arial;13;1", + "left": 1781, + "top": 919, + "width": 81, + "height": 13, + "text": "PhotoSensor" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvHIRYyU/+Gw=", + "_parent": { + "$ref": "AAAAAAFmvHIRYyU8Hgg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2512, + "top": 848, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvHIRYyVAAOE=", + "_parent": { + "$ref": "AAAAAAFmvHIRYyU8Hgg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2512, + "top": 848, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1776, + "top": 912, + "width": 91, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvHIRYyU96vA=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvHIRYyU+UVM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvHIRYyU/+Gw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvHIRYyVAAOE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvHIRYyVB6vA=", + "_parent": { + "$ref": "AAAAAAFmvHIRYiU78Mk=" + }, + "model": { + "$ref": "AAAAAAFmvHIRVCU5U78=" + }, + "font": "Arial;13;0", + "left": 1776, + "top": 937, + "width": 91, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvHIRYyVCgs0=", + "_parent": { + "$ref": "AAAAAAFmvHIRYiU78Mk=" + }, + "model": { + "$ref": "AAAAAAFmvHIRVCU5U78=" + }, + "font": "Arial;13;0", + "left": 1776, + "top": 947, + "width": 91, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvHIRYyVDF+s=", + "_parent": { + "$ref": "AAAAAAFmvHIRYiU78Mk=" + }, + "model": { + "$ref": "AAAAAAFmvHIRVCU5U78=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1456, + "top": 440, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvHIRYyVEXiQ=", + "_parent": { + "$ref": "AAAAAAFmvHIRYiU78Mk=" + }, + "model": { + "$ref": "AAAAAAFmvHIRVCU5U78=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1456, + "top": 440, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1776, + "top": 912, + "width": 91, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvHIRYyU8Hgg=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvHIRYyVB6vA=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvHIRYyVCgs0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvHIRYyVDF+s=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvHIRYyVEXiQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvHIvViVlv0U=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvHIvViVjSYs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvHIvViVmBDk=", + "_parent": { + "$ref": "AAAAAAFmvHIvViVlv0U=" + }, + "model": { + "$ref": "AAAAAAFmvHIvViVjSYs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1837, + "top": 771, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvHIvViVlv0U=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvHIvViVnsEQ=", + "_parent": { + "$ref": "AAAAAAFmvHIvViVlv0U=" + }, + "model": { + "$ref": "AAAAAAFmvHIvViVjSYs=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1837, + "top": 756, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvHIvViVlv0U=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvHIvViVo49M=", + "_parent": { + "$ref": "AAAAAAFmvHIvViVlv0U=" + }, + "model": { + "$ref": "AAAAAAFmvHIvViVjSYs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1837, + "top": 801, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvHIvViVlv0U=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "tail": { + "$ref": "AAAAAAFmvHIRYiU78Mk=" + }, + "lineStyle": 2, + "points": "1837:912;1837:792;1992:792", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvHIvViVmBDk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvHIvViVnsEQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvHIvViVo49M=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvJFp1iWctIw=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvJFp1iWdUws=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "model": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvJFp1iWe6v4=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWdUws=" + }, + "font": "Arial;13;0", + "left": 2021, + "top": 1053, + "width": 106, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJFp1iWfHA8=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWdUws=" + }, + "font": "Arial;13;1", + "left": 2021, + "top": 1068, + "width": 106, + "height": 13, + "text": "MaterialSampler" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJFp1iWgcy8=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWdUws=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3405, + "top": 1563, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJFp1iWhWPI=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWdUws=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2704, + "top": 896, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2016, + "top": 1048, + "width": 116, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJFp1iWe6v4=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvJFp1iWfHA8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvJFp1iWgcy8=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJFp1iWhWPI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvJFp1iWijVI=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "model": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + }, + "font": "Arial;13;0", + "left": 2016, + "top": 1086, + "width": 116, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvJFp1iWjQMQ=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "model": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + }, + "font": "Arial;13;0", + "left": 2016, + "top": 1096, + "width": 116, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvJFp1iWkvLA=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "model": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1552, + "top": 464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvJFp1iWlOR4=", + "_parent": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "model": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1552, + "top": 464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 2016, + "top": 1048, + "width": 116, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvJFp1iWdUws=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvJFp1iWijVI=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvJFp1iWjQMQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvJFp1iWkvLA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvJFp1iWlOR4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvJKmUiZaUtk=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJKmUiZYl0M=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJKmUiZb9rg=", + "_parent": { + "$ref": "AAAAAAFmvJKmUiZaUtk=" + }, + "model": { + "$ref": "AAAAAAFmvJKmUiZYl0M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2058, + "top": 926, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJKmUiZaUtk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJKmUiZci9Q=", + "_parent": { + "$ref": "AAAAAAFmvJKmUiZaUtk=" + }, + "model": { + "$ref": "AAAAAAFmvJKmUiZYl0M=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2043, + "top": 926, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvJKmUiZaUtk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJKmUiZdGJE=", + "_parent": { + "$ref": "AAAAAAFmvJKmUiZaUtk=" + }, + "model": { + "$ref": "AAAAAAFmvJKmUiZYl0M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2088, + "top": 927, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJKmUiZaUtk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "tail": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "lineStyle": 2, + "points": "2073:1048;2073:818", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvJKmUiZb9rg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJKmUiZci9Q=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJKmUiZdGJE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvJKyMiZr8rQ=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJKyLyZpGk8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvJKyMiZszjA=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZr8rQ=" + }, + "model": { + "$ref": "AAAAAAFmvJKyLyZpGk8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvJKyMiZt6f0=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZszjA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2624, + "top": 944, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJKyMiZuElo=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZszjA=" + }, + "font": "Arial;13;1", + "left": 1813, + "top": 1183, + "width": 113, + "height": 13, + "text": "ChemicalScanner" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJKyMiZvwZ4=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZszjA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2624, + "top": 944, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJKyMiZwg8Q=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZszjA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2624, + "top": 944, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1808, + "top": 1176, + "width": 123, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJKyMiZt6f0=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvJKyMiZuElo=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvJKyMiZvwZ4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJKyMiZwg8Q=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvJKyMiZxvMI=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZr8rQ=" + }, + "model": { + "$ref": "AAAAAAFmvJKyLyZpGk8=" + }, + "font": "Arial;13;0", + "left": 1808, + "top": 1201, + "width": 123, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvJKyMiZy0Qs=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZr8rQ=" + }, + "model": { + "$ref": "AAAAAAFmvJKyLyZpGk8=" + }, + "font": "Arial;13;0", + "left": 1808, + "top": 1211, + "width": 123, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvJKyMiZzlMc=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZr8rQ=" + }, + "model": { + "$ref": "AAAAAAFmvJKyLyZpGk8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1512, + "top": 488, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvJKyMiZ0PZo=", + "_parent": { + "$ref": "AAAAAAFmvJKyMiZr8rQ=" + }, + "model": { + "$ref": "AAAAAAFmvJKyLyZpGk8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1512, + "top": 488, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1808, + "top": 1176, + "width": 123, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvJKyMiZszjA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvJKyMiZxvMI=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvJKyMiZy0Qs=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvJKyMiZzlMc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvJKyMiZ0PZo=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvJLZkCaV5cs=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJLZkCaTR+o=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvJLZkCaWrgA=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaV5cs=" + }, + "model": { + "$ref": "AAAAAAFmvJLZkCaTR+o=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvJLZkCaX3Eg=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaWrgA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2624, + "top": 896, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJLZkSaY0QY=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaWrgA=" + }, + "font": "Arial;13;1", + "left": 1973, + "top": 1183, + "width": 107, + "height": 13, + "text": "HotFluidSampler" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJLZkSaZN6Q=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaWrgA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2624, + "top": 896, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJLZkSaaSvU=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaWrgA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2624, + "top": 896, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1968, + "top": 1176, + "width": 117, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJLZkCaX3Eg=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvJLZkSaY0QY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvJLZkSaZN6Q=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJLZkSaaSvU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvJLZkSabEqs=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaV5cs=" + }, + "model": { + "$ref": "AAAAAAFmvJLZkCaTR+o=" + }, + "font": "Arial;13;0", + "left": 1968, + "top": 1201, + "width": 117, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvJLZkSacrLE=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaV5cs=" + }, + "model": { + "$ref": "AAAAAAFmvJLZkCaTR+o=" + }, + "font": "Arial;13;0", + "left": 1968, + "top": 1211, + "width": 117, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvJLZkiad21U=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaV5cs=" + }, + "model": { + "$ref": "AAAAAAFmvJLZkCaTR+o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1512, + "top": 464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvJLZkiaeYCU=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaV5cs=" + }, + "model": { + "$ref": "AAAAAAFmvJLZkCaTR+o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1512, + "top": 464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1968, + "top": 1176, + "width": 117, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvJLZkCaWrgA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvJLZkSabEqs=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvJLZkSacrLE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvJLZkiad21U=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvJLZkiaeYCU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvJMD8ia/A7o=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJMD4ya9tkk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvJMD8ibAslE=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ia/A7o=" + }, + "model": { + "$ref": "AAAAAAFmvJMD4ya9tkk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvJMD8ibBQiA=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ibAslE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2704, + "top": 896, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJMD8ibCLvQ=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ibAslE=" + }, + "font": "Arial;13;1", + "left": 2125, + "top": 1183, + "width": 99, + "height": 13, + "text": "RockCoringDrill" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJMD8ibDu/w=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ibAslE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2704, + "top": 896, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJMD8ibEk7Q=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ibAslE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2704, + "top": 896, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2120, + "top": 1176, + "width": 109, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJMD8ibBQiA=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvJMD8ibCLvQ=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvJMD8ibDu/w=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJMD8ibEk7Q=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvJMD8ibF+gA=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ia/A7o=" + }, + "model": { + "$ref": "AAAAAAFmvJMD4ya9tkk=" + }, + "font": "Arial;13;0", + "left": 2120, + "top": 1201, + "width": 109, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvJMD8ibGkwk=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ia/A7o=" + }, + "model": { + "$ref": "AAAAAAFmvJMD4ya9tkk=" + }, + "font": "Arial;13;0", + "left": 2120, + "top": 1211, + "width": 109, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvJMD8ibHuGc=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ia/A7o=" + }, + "model": { + "$ref": "AAAAAAFmvJMD4ya9tkk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1552, + "top": 464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvJMD8ibIPMo=", + "_parent": { + "$ref": "AAAAAAFmvJMD8ia/A7o=" + }, + "model": { + "$ref": "AAAAAAFmvJMD4ya9tkk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1552, + "top": 464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 2120, + "top": 1176, + "width": 109, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvJMD8ibAslE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvJMD8ibF+gA=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvJMD8ibGkwk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvJMD8ibHuGc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvJMD8ibIPMo=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvJNIOybv/a4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJNIOybthfA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNIOybwgQ8=", + "_parent": { + "$ref": "AAAAAAFmvJNIOybv/a4=" + }, + "model": { + "$ref": "AAAAAAFmvJNIOybthfA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1888, + "top": 1059, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJNIOybv/a4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNIOybxL8Y=", + "_parent": { + "$ref": "AAAAAAFmvJNIOybv/a4=" + }, + "model": { + "$ref": "AAAAAAFmvJNIOybthfA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1888, + "top": 1044, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvJNIOybv/a4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNIOyby+hs=", + "_parent": { + "$ref": "AAAAAAFmvJNIOybv/a4=" + }, + "model": { + "$ref": "AAAAAAFmvJNIOybthfA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1888, + "top": 1089, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJNIOybv/a4=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "tail": { + "$ref": "AAAAAAFmvJKyMiZr8rQ=" + }, + "lineStyle": 2, + "points": "1888:1176;1888:1080;2016:1080", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvJNIOybwgQ8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJNIOybxL8Y=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJNIOyby+hs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvJNOSicARig=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJNOSib+9T0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNOUicBaZw=", + "_parent": { + "$ref": "AAAAAAFmvJNOSicARig=" + }, + "model": { + "$ref": "AAAAAAFmvJNOSib+9T0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2051, + "top": 1133, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJNOSicARig=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNOUicCl0o=", + "_parent": { + "$ref": "AAAAAAFmvJNOSicARig=" + }, + "model": { + "$ref": "AAAAAAFmvJNOSib+9T0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2036, + "top": 1133, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvJNOSicARig=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNOUicDXWU=", + "_parent": { + "$ref": "AAAAAAFmvJNOSicARig=" + }, + "model": { + "$ref": "AAAAAAFmvJNOSib+9T0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2080, + "top": 1134, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJNOSicARig=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "tail": { + "$ref": "AAAAAAFmvJLZkCaV5cs=" + }, + "lineStyle": 2, + "points": "2066:1176;2066:1105", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvJNOUicBaZw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJNOUicCl0o=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJNOUicDXWU=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvJNTdicRcH8=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJNTdScPurA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNTdicStKA=", + "_parent": { + "$ref": "AAAAAAFmvJNTdicRcH8=" + }, + "model": { + "$ref": "AAAAAAFmvJNTdScPurA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2199, + "top": 1089, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJNTdicRcH8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNTdicTd7o=", + "_parent": { + "$ref": "AAAAAAFmvJNTdicRcH8=" + }, + "model": { + "$ref": "AAAAAAFmvJNTdScPurA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2199, + "top": 1104, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvJNTdicRcH8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJNTdicU3OQ=", + "_parent": { + "$ref": "AAAAAAFmvJNTdicRcH8=" + }, + "model": { + "$ref": "AAAAAAFmvJNTdScPurA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2200, + "top": 1059, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJNTdicRcH8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvJFp1iWctIw=" + }, + "tail": { + "$ref": "AAAAAAFmvJMD8ia/A7o=" + }, + "lineStyle": 2, + "points": "2200:1176;2200:1080;2131:1080", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvJNTdicStKA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJNTdicTd7o=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJNTdicU3OQ=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvJXn3icq67Q=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvJXn3icr3OE=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "model": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvJXn3icsG+A=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icr3OE=" + }, + "font": "Arial;13;0", + "left": 1581, + "top": 1013, + "width": 96.517578125, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJXn3ictmk4=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icr3OE=" + }, + "font": "Arial;13;1", + "left": 1581, + "top": 1028, + "width": 96.517578125, + "height": 13, + "text": "WaterReadings" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJXn3icumSs=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icr3OE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2336, + "top": 1088, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJXn3icvtew=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icr3OE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2336, + "top": 1088, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1576, + "top": 1008, + "width": 106.517578125, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJXn3icsG+A=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvJXn3ictmk4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvJXn3icumSs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJXn3icvtew=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvJXn3icwZxc=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "model": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + }, + "font": "Arial;13;0", + "left": 1576, + "top": 1046, + "width": 106.517578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvJXn3icxVmI=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "model": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + }, + "font": "Arial;13;0", + "left": 1576, + "top": 1056, + "width": 106.517578125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvJXn3icyXWw=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "model": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1368, + "top": 560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvJXn3yczkak=", + "_parent": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "model": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1368, + "top": 560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1576, + "top": 1008, + "width": 106.517578125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvJXn3icr3OE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvJXn3icwZxc=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvJXn3icxVmI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvJXn3icyXWw=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvJXn3yczkak=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvJgOjidUv/s=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJgOhydS2uI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvJgOjidVCCg=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidUv/s=" + }, + "model": { + "$ref": "AAAAAAFmvJgOhydS2uI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvJgOjidWr7s=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidVCCg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2592, + "top": 1360, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJgOjidXOmU=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidVCCg=" + }, + "font": "Arial;13;1", + "left": 1557, + "top": 1183, + "width": 39, + "height": 13, + "text": "PH" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJgOjidYna4=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidVCCg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2592, + "top": 1360, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJgOjidZ354=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidVCCg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2592, + "top": 1360, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1552, + "top": 1176, + "width": 49, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJgOjidWr7s=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvJgOjidXOmU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvJgOjidYna4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJgOjidZ354=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvJgOjidauF4=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidUv/s=" + }, + "model": { + "$ref": "AAAAAAFmvJgOhydS2uI=" + }, + "font": "Arial;13;0", + "left": 1552, + "top": 1201, + "width": 49, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvJgOjidbogw=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidUv/s=" + }, + "model": { + "$ref": "AAAAAAFmvJgOhydS2uI=" + }, + "font": "Arial;13;0", + "left": 1552, + "top": 1211, + "width": 49, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvJgOjidcWEk=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidUv/s=" + }, + "model": { + "$ref": "AAAAAAFmvJgOhydS2uI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1496, + "top": 696, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvJgOjiddD1I=", + "_parent": { + "$ref": "AAAAAAFmvJgOjidUv/s=" + }, + "model": { + "$ref": "AAAAAAFmvJgOhydS2uI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1496, + "top": 696, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1552, + "top": 1176, + "width": 49, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvJgOjidVCCg=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvJgOjidauF4=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvJgOjidbogw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvJgOjidcWEk=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvJgOjiddD1I=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvJnm2yd+Gk8=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJnm2Cd8670=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvJnm2yd/k/M=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd+Gk8=" + }, + "model": { + "$ref": "AAAAAAFmvJnm2Cd8670=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvJnm2yeAp20=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd/k/M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2608, + "top": 1216, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJnm2yeBQfk=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd/k/M=" + }, + "font": "Arial;13;1", + "left": 1645, + "top": 1183, + "width": 48, + "height": 13, + "text": "Salinity" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJnm2yeCBKg=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd/k/M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2949, + "top": 1806, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJnm2yeDxWY=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd/k/M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2608, + "top": 1216, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1640, + "top": 1176, + "width": 58, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJnm2yeAp20=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvJnm2yeBQfk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvJnm2yeCBKg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJnm2yeDxWY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvJnm2yeEzGY=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd+Gk8=" + }, + "model": { + "$ref": "AAAAAAFmvJnm2Cd8670=" + }, + "font": "Arial;13;0", + "left": 1640, + "top": 1201, + "width": 58, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvJnm2yeFRzY=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd+Gk8=" + }, + "model": { + "$ref": "AAAAAAFmvJnm2Cd8670=" + }, + "font": "Arial;13;0", + "left": 1640, + "top": 1211, + "width": 58, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvJnm2yeG/UI=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd+Gk8=" + }, + "model": { + "$ref": "AAAAAAFmvJnm2Cd8670=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1840, + "top": 1237, + "width": 160.517578125, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvJnm2yeH1sA=", + "_parent": { + "$ref": "AAAAAAFmvJnm2yd+Gk8=" + }, + "model": { + "$ref": "AAAAAAFmvJnm2Cd8670=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1504, + "top": 624, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1640, + "top": 1176, + "width": 58, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvJnm2yd/k/M=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvJnm2yeEzGY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvJnm2yeFRzY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvJnm2yeG/UI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvJnm2yeH1sA=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvJrDzSe4m8Y=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJrDzCe2MH0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrDzSe5Y5o=", + "_parent": { + "$ref": "AAAAAAFmvJrDzSe4m8Y=" + }, + "model": { + "$ref": "AAAAAAFmvJrDzCe2MH0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1561, + "top": 1113, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJrDzSe4m8Y=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrDzSe6yFI=", + "_parent": { + "$ref": "AAAAAAFmvJrDzSe4m8Y=" + }, + "model": { + "$ref": "AAAAAAFmvJrDzCe2MH0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1546, + "top": 1113, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvJrDzSe4m8Y=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrDzSe78ag=", + "_parent": { + "$ref": "AAAAAAFmvJrDzSe4m8Y=" + }, + "model": { + "$ref": "AAAAAAFmvJrDzCe2MH0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1590, + "top": 1114, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJrDzSe4m8Y=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "tail": { + "$ref": "AAAAAAFmvJgOjidUv/s=" + }, + "lineStyle": 2, + "points": "1576:1176;1576:1065", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvJrDzSe5Y5o=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJrDzSe6yFI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJrDzSe78ag=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvJrJcCfJ2zk=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJrJbSfHXRk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrJcCfKfJU=", + "_parent": { + "$ref": "AAAAAAFmvJrJcCfJ2zk=" + }, + "model": { + "$ref": "AAAAAAFmvJrJbSfHXRk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1657, + "top": 1113, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJrJcCfJ2zk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrJcCfLuDo=", + "_parent": { + "$ref": "AAAAAAFmvJrJcCfJ2zk=" + }, + "model": { + "$ref": "AAAAAAFmvJrJbSfHXRk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1642, + "top": 1113, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvJrJcCfJ2zk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrJcCfMGRI=", + "_parent": { + "$ref": "AAAAAAFmvJrJcCfJ2zk=" + }, + "model": { + "$ref": "AAAAAAFmvJrJbSfHXRk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1686, + "top": 1114, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJrJcCfJ2zk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "tail": { + "$ref": "AAAAAAFmvJnm2yd+Gk8=" + }, + "lineStyle": 2, + "points": "1672:1176;1672:1065", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvJrJcCfKfJU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJrJcCfLuDo=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJrJcCfMGRI=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvJrOOyfaLwY=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJrOOyfY+0w=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrOOyfbKI0=", + "_parent": { + "$ref": "AAAAAAFmvJrOOyfaLwY=" + }, + "model": { + "$ref": "AAAAAAFmvJrOOyfY+0w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1628, + "top": 740, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJrOOyfaLwY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrOOyfcP6o=", + "_parent": { + "$ref": "AAAAAAFmvJrOOyfaLwY=" + }, + "model": { + "$ref": "AAAAAAFmvJrOOyfY+0w=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1628, + "top": 725, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvJrOOyfaLwY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJrOOyfdR+Y=", + "_parent": { + "$ref": "AAAAAAFmvJrOOyfaLwY=" + }, + "model": { + "$ref": "AAAAAAFmvJrOOyfY+0w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1628, + "top": 770, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJrOOyfaLwY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "tail": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "lineStyle": 2, + "points": "1628:1008;1628:761;1992:761", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvJrOOyfbKI0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJrOOyfcP6o=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJrOOyfdR+Y=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvJ1gOCgYEPM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJ1gNigWJLY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvJ1gOCgZD+Y=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgYEPM=" + }, + "model": { + "$ref": "AAAAAAFmvJ1gNigWJLY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvJ1gOCgaJXU=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgZD+Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1728, + "top": 960, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJ1gOCgbfkw=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgZD+Y=" + }, + "font": "Arial;13;1", + "left": 1389, + "top": 1183, + "width": 115, + "height": 13, + "text": "IndexOfRefraction" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJ1gOCgcj0Y=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgZD+Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1728, + "top": 960, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvJ1gOCgdqck=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgZD+Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1728, + "top": 960, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1384, + "top": 1176, + "width": 125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJ1gOCgaJXU=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvJ1gOCgbfkw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvJ1gOCgcj0Y=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJ1gOCgdqck=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvJ1gOCge7o4=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgYEPM=" + }, + "model": { + "$ref": "AAAAAAFmvJ1gNigWJLY=" + }, + "font": "Arial;13;0", + "left": 1384, + "top": 1201, + "width": 125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvJ1gOCgf1Xk=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgYEPM=" + }, + "model": { + "$ref": "AAAAAAFmvJ1gNigWJLY=" + }, + "font": "Arial;13;0", + "left": 1384, + "top": 1211, + "width": 125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvJ1gOCggYUA=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgYEPM=" + }, + "model": { + "$ref": "AAAAAAFmvJ1gNigWJLY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": 480, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvJ1gOCgha9I=", + "_parent": { + "$ref": "AAAAAAFmvJ1gOCgYEPM=" + }, + "model": { + "$ref": "AAAAAAFmvJ1gNigWJLY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": 480, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 1384, + "top": 1176, + "width": 125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvJ1gOCgZD+Y=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvJ1gOCge7o4=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvJ1gOCgf1Xk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvJ1gOCggYUA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvJ1gOCgha9I=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvJ2DPShDpEI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvJ2DPShB61M=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJ2DPShECnE=", + "_parent": { + "$ref": "AAAAAAFmvJ2DPShDpEI=" + }, + "model": { + "$ref": "AAAAAAFmvJ2DPShB61M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1448, + "top": 1011, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJ2DPShDpEI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJ2DPShF6NE=", + "_parent": { + "$ref": "AAAAAAFmvJ2DPShDpEI=" + }, + "model": { + "$ref": "AAAAAAFmvJ2DPShB61M=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1448, + "top": 996, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvJ2DPShDpEI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvJ2DPShGnZ8=", + "_parent": { + "$ref": "AAAAAAFmvJ2DPShDpEI=" + }, + "model": { + "$ref": "AAAAAAFmvJ2DPShB61M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1448, + "top": 1041, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvJ2DPShDpEI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvJXn3icq67Q=" + }, + "tail": { + "$ref": "AAAAAAFmvJ1gOCgYEPM=" + }, + "lineStyle": 2, + "points": "1448:1176;1448:1032;1576:1032", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvJ2DPShECnE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvJ2DPShF6NE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvJ2DPShGnZ8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvKSk4ihd4vc=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvKSk4iheQCk=", + "_parent": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "model": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvKSk4ihfSZ4=", + "_parent": { + "$ref": "AAAAAAFmvKSk4iheQCk=" + }, + "font": "Arial;13;0", + "left": 3837, + "top": 741, + "width": 65.04443359375, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvKSk4yhg2IQ=", + "_parent": { + "$ref": "AAAAAAFmvKSk4iheQCk=" + }, + "font": "Arial;13;1", + "left": 3837, + "top": 756, + "width": 65.04443359375, + "height": 13, + "text": "Data" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvKSk4yhhvnE=", + "_parent": { + "$ref": "AAAAAAFmvKSk4iheQCk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3424, + "top": 1200, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvKSk4yhirc4=", + "_parent": { + "$ref": "AAAAAAFmvKSk4iheQCk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3424, + "top": 1200, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3832, + "top": 736, + "width": 75.04443359375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvKSk4ihfSZ4=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvKSk4yhg2IQ=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvKSk4yhhvnE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvKSk4yhirc4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvKSk4yhj2Sc=", + "_parent": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "model": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + }, + "font": "Arial;13;0", + "left": 3832, + "top": 774, + "width": 75.04443359375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvKSk4yhkV+M=", + "_parent": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "model": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + }, + "font": "Arial;13;0", + "left": 3832, + "top": 784, + "width": 75.04443359375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvKSk4yhl8AI=", + "_parent": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "model": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1712, + "top": 600, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvKSk4yhmPpk=", + "_parent": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "model": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1712, + "top": 600, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 3832, + "top": 736, + "width": 75.04443359375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvKSk4iheQCk=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvKSk4yhj2Sc=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvKSk4yhkV+M=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvKSk4yhl8AI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvKSk4yhmPpk=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvKXV3yiJzmo=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvKXV3yiKtQ4=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "model": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvKXV3yiLUeU=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiKtQ4=" + }, + "font": "Arial;13;0", + "left": 2973, + "top": 749, + "width": 150, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvKXV3yiMmxA=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiKtQ4=" + }, + "font": "Arial;13;1", + "left": 2973, + "top": 764, + "width": 150, + "height": 13, + "text": "DataCollector" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvKXV3yiNLaU=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiKtQ4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2208, + "top": 912, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvKXV3yiONVA=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiKtQ4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2208, + "top": 912, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2968, + "top": 744, + "width": 160, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvKXV3yiLUeU=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvKXV3yiMmxA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvKXV3yiNLaU=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvKXV3yiONVA=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvKXV3yiPtZY=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "model": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "font": "Arial;13;0", + "left": 2968, + "top": 782, + "width": 160, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvKXV3yiQWSk=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "model": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvKqRxy1fJwE=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiQWSk=" + }, + "model": { + "$ref": "AAAAAAFmvKqRcy1cj00=" + }, + "font": "Arial;13;0", + "showShadow": false, + "left": 2973, + "top": 797, + "width": 150, + "height": 13, + "text": "+performReading(): Data", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2968, + "top": 792, + "width": 160, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvKXV3yiR6x4=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "model": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1104, + "top": 456, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvKXV3yiSUrs=", + "_parent": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "model": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1104, + "top": 456, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "containerChangeable": true, + "left": 2968, + "top": 744, + "width": 160, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFmvKXV3yiKtQ4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvKXV3yiPtZY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvKXV3yiQWSk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvKXV3yiR6x4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvKXV3yiSUrs=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFmvKnKRCwdZS0=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKOiwZ2gY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCweonM=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKOiwZ2gY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2648, + "top": 784, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCwfmdk=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKOiwZ2gY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2648, + "top": 799, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCwg8V0=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKOiwZ2gY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2649, + "top": 754, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCwhPmk=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKRCwaGhk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2942, + "top": 783, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCwiTic=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKRCwaGhk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2939, + "top": 797, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCwj69c=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKRCwaGhk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2946, + "top": 756, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCwkNwA=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKRCwbiHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2356, + "top": 783, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCwlsaM=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKRCwbiHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2359, + "top": 797, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKnKRCwmpbU=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKRCwbiHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2352, + "top": 756, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFmvKnKRCwn1t8=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKRCwaGhk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 960, + "top": 464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFmvKnKRCwoljc=", + "_parent": { + "$ref": "AAAAAAFmvKnKRCwdZS0=" + }, + "model": { + "$ref": "AAAAAAFmvKnKRCwbiHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 960, + "top": 464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvFghSx8+luk=" + }, + "tail": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "lineStyle": 2, + "points": "2968:775;2331:775", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvKnKRCweonM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvKnKRCwfmdk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvKnKRCwg8V0=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFmvKnKRCwhPmk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFmvKnKRCwiTic=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFmvKnKRCwj69c=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFmvKnKRCwkNwA=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFmvKnKRCwlsaM=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFmvKnKRCwmpbU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFmvKnKRCwn1t8=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFmvKnKRCwoljc=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFmvKotRC04MQw=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvKotRC02GBE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKotRS058SY=", + "_parent": { + "$ref": "AAAAAAFmvKotRC04MQw=" + }, + "model": { + "$ref": "AAAAAAFmvKotRC02GBE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3479, + "top": 751, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvKotRC04MQw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKotRS06jLc=", + "_parent": { + "$ref": "AAAAAAFmvKotRC04MQw=" + }, + "model": { + "$ref": "AAAAAAFmvKotRC02GBE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3479, + "top": 736, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvKotRC04MQw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvKotRS07TCE=", + "_parent": { + "$ref": "AAAAAAFmvKotRC04MQw=" + }, + "model": { + "$ref": "AAAAAAFmvKotRC02GBE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3479, + "top": 781, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvKotRC04MQw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "showShadow": false, + "head": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "tail": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "lineStyle": 2, + "points": "3127:772;3832:772", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvKotRS058SY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvKotRS06jLc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvKotRS07TCE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvLMRky5x934=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvLMRky5yqRs=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5x934=" + }, + "model": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvLMRky5z6mc=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5yqRs=" + }, + "font": "Arial;13;0", + "left": 2821, + "top": 829, + "width": 157.03515625, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvLMRlC50rkw=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5yqRs=" + }, + "font": "Arial;13;1", + "left": 2821, + "top": 844, + "width": 157.03515625, + "height": 13, + "text": "DCTopographicalMapper" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvLMRlC516KA=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5yqRs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1376, + "top": 576, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvLMRlC52e7c=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5yqRs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1376, + "top": 576, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2816, + "top": 824, + "width": 167.03515625, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvLMRky5z6mc=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvLMRlC50rkw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvLMRlC516KA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvLMRlC52e7c=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvLMRlC53rW4=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5x934=" + }, + "model": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + }, + "font": "Arial;13;0", + "left": 2816, + "top": 862, + "width": 167.03515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvLMRlC54Mj8=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5x934=" + }, + "model": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + }, + "font": "Arial;13;0", + "left": 2816, + "top": 872, + "width": 167.03515625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvLMRlC55/nY=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5x934=" + }, + "model": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 680, + "top": 272, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvLMRlC56fOE=", + "_parent": { + "$ref": "AAAAAAFmvLMRky5x934=" + }, + "model": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 680, + "top": 272, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2816, + "top": 824, + "width": 167.03515625, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvLMRky5yqRs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvLMRlC53rW4=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvLMRlC54Mj8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvLMRlC55/nY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvLMRlC56fOE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvL+w6i7qUVI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvL+w6i7rgcY=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7qUVI=" + }, + "model": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvL+w6i7s6rM=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7rgcY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1600, + "top": 688, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvL+w6i7t3yw=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7rgcY=" + }, + "font": "Arial;13;1", + "left": 2613, + "top": 943, + "width": 247.50146484375, + "height": 13, + "text": "DCSonar" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvL+w6i7ueD4=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7rgcY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1600, + "top": 688, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvL+w6y7vJ/c=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7rgcY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1600, + "top": 688, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2608, + "top": 936, + "width": 257.50146484375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvL+w6i7s6rM=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvL+w6i7t3yw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvL+w6i7ueD4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvL+w6y7vJ/c=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvL+w6y7wrEc=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7qUVI=" + }, + "model": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "font": "Arial;13;0", + "left": 2608, + "top": 961, + "width": 257.50146484375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvL+w6y7xUZU=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7qUVI=" + }, + "model": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvL/jMy8wg1c=", + "_parent": { + "$ref": "AAAAAAFmvL+w6y7xUZU=" + }, + "model": { + "$ref": "AAAAAAFmvL/i5i8qIM4=" + }, + "font": "Arial;13;0", + "left": 2613, + "top": 976, + "width": 247.50146484375, + "height": 13, + "text": "+performReading(): SonarReading", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2608, + "top": 971, + "width": 257.50146484375, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvL+w6y7yu4I=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7qUVI=" + }, + "model": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 792, + "top": 328, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvL+w6y7zzN4=", + "_parent": { + "$ref": "AAAAAAFmvL+w6i7qUVI=" + }, + "model": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 792, + "top": 328, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2608, + "top": 936, + "width": 257.50146484375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvL+w6i7rgcY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvL+w6y7wrEc=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvL+w6y7xUZU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvL+w6y7yu4I=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvL+w6y7zzN4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvMAnKy9lfk4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvMAnKy9mdRE=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9lfk4=" + }, + "model": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvMAnKy9nN1A=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9mdRE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 976, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMAnLC9o+HE=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9mdRE=" + }, + "font": "Arial;13;1", + "left": 2757, + "top": 1103, + "width": 247.50146484375, + "height": 13, + "text": "DCLaser" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMAnLC9py+Y=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9mdRE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 976, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMAnLC9q0SY=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9mdRE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 976, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2752, + "top": 1096, + "width": 257.50146484375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMAnKy9nN1A=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvMAnLC9o+HE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvMAnLC9py+Y=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMAnLC9q0SY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvMAnLC9rotc=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9lfk4=" + }, + "model": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8IyKN0qUZS4=", + "_parent": { + "$ref": "AAAAAAFmvMAnLC9rotc=" + }, + "model": { + "$ref": "AAAAAAFm8IyKBkqOK24=" + }, + "font": "Arial;13;0", + "left": 2757, + "top": 1126, + "width": 247.50146484375, + "height": 13, + "text": "-distance: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2752, + "top": 1121, + "width": 257.50146484375, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvMAnLC9sYiY=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9lfk4=" + }, + "model": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvMBCKi+lkuU=", + "_parent": { + "$ref": "AAAAAAFmvMAnLC9sYiY=" + }, + "model": { + "$ref": "AAAAAAFmvMBB4y+fTCw=" + }, + "font": "Arial;13;0", + "left": 2757, + "top": 1149, + "width": 247.50146484375, + "height": 13, + "text": "+performReading(): LaserReading", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2752, + "top": 1144, + "width": 257.50146484375, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvMAnLC9tOOU=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9lfk4=" + }, + "model": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 584, + "top": 472, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvMAnLC9uRxM=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9lfk4=" + }, + "model": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 584, + "top": 472, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2752, + "top": 1096, + "width": 257.50146484375, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFmvMAnKy9mdRE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvMAnLC9rotc=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvMAnLC9sYiY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvMAnLC9tOOU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvMAnLC9uRxM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMBsni/lMfk=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMBsnS/jS9A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMBsni/m3wc=", + "_parent": { + "$ref": "AAAAAAFmvMBsni/lMfk=" + }, + "model": { + "$ref": "AAAAAAFmvMBsnS/jS9A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2809, + "top": 901, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMBsni/lMfk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMBsni/nHVA=", + "_parent": { + "$ref": "AAAAAAFmvMBsni/lMfk=" + }, + "model": { + "$ref": "AAAAAAFmvMBsnS/jS9A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2794, + "top": 901, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMBsni/lMfk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMBsni/obsM=", + "_parent": { + "$ref": "AAAAAAFmvMBsni/lMfk=" + }, + "model": { + "$ref": "AAAAAAFmvMBsnS/jS9A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2838, + "top": 902, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMBsni/lMfk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvLMRky5x934=" + }, + "tail": { + "$ref": "AAAAAAFmvL+w6i7qUVI=" + }, + "lineStyle": 2, + "points": "2824:936;2824:881", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMBsni/m3wc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMBsni/nHVA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMBsni/obsM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMBwmS//dpg=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMBwmS/90xI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMBwmTAAYLA=", + "_parent": { + "$ref": "AAAAAAFmvMBwmS//dpg=" + }, + "model": { + "$ref": "AAAAAAFmvMBwmS/90xI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2945, + "top": 981, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMBwmS//dpg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMBwmTABPhk=", + "_parent": { + "$ref": "AAAAAAFmvMBwmS//dpg=" + }, + "model": { + "$ref": "AAAAAAFmvMBwmS/90xI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2930, + "top": 981, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMBwmS//dpg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMBwmTACFi4=", + "_parent": { + "$ref": "AAAAAAFmvMBwmS//dpg=" + }, + "model": { + "$ref": "AAAAAAFmvMBwmS/90xI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2975, + "top": 982, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMBwmS//dpg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvLMRky5x934=" + }, + "tail": { + "$ref": "AAAAAAFmvMAnKy9lfk4=" + }, + "lineStyle": 2, + "points": "2960:1096;2960:881", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMBwmTAAYLA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMBwmTABPhk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMBwmTACFi4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMB1fjAZ86w=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMB1fjAXz1A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMB1fjAaD3s=", + "_parent": { + "$ref": "AAAAAAFmvMB1fjAZ86w=" + }, + "model": { + "$ref": "AAAAAAFmvMB1fjAXz1A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2899, + "top": 779, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMB1fjAZ86w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMB1fjAbhgw=", + "_parent": { + "$ref": "AAAAAAFmvMB1fjAZ86w=" + }, + "model": { + "$ref": "AAAAAAFmvMB1fjAXz1A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2899, + "top": 764, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMB1fjAZ86w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMB1fjAc25A=", + "_parent": { + "$ref": "AAAAAAFmvMB1fjAZ86w=" + }, + "model": { + "$ref": "AAAAAAFmvMB1fjAXz1A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2899, + "top": 809, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMB1fjAZ86w=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "tail": { + "$ref": "AAAAAAFmvLMRky5x934=" + }, + "lineStyle": 2, + "points": "2899:824;2899:800;2968:800", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMB1fjAaD3s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMB1fjAbhgw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMB1fjAc25A=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvMC+MjB/4h0=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvMC+MjCAGA8=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB/4h0=" + }, + "model": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvMC+MjCB1Qk=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjCAGA8=" + }, + "font": "Arial;13;0", + "left": 3525, + "top": 989, + "width": 194.0224609375, + "height": 13, + "text": "«abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMC+MjCC+nQ=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjCAGA8=" + }, + "font": "Arial;13;1", + "left": 3525, + "top": 1004, + "width": 194.0224609375, + "height": 13, + "text": "TopographicalMapping" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMC+MjCDBec=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjCAGA8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1840, + "top": 864, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMC+MjCE9CQ=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjCAGA8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1840, + "top": 864, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3520, + "top": 984, + "width": 204.0224609375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMC+MjCB1Qk=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvMC+MjCC+nQ=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvMC+MjCDBec=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMC+MjCE9CQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvMC+MjCFYE8=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB/4h0=" + }, + "model": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8JXa3mCauqg=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjCFYE8=" + }, + "model": { + "$ref": "AAAAAAFm8JXaq2CU+tA=" + }, + "font": "Arial;13;0", + "left": 3525, + "top": 1027, + "width": 194.0224609375, + "height": 13, + "text": "-depth: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3520, + "top": 1022, + "width": 204.0224609375, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvMC+MjCGPvY=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB/4h0=" + }, + "model": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JZEZWEoyC8=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjCGPvY=" + }, + "model": { + "$ref": "AAAAAAFm8JZEM2EiA0U=" + }, + "font": "Arial;13;0", + "left": 3525, + "top": 1050, + "width": 194.0224609375, + "height": 13, + "text": "+calculateDepth(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JcE+2JSgeI=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjCGPvY=" + }, + "model": { + "$ref": "AAAAAAFm8JcEy2JM58g=" + }, + "font": "Arial;13;0", + "left": 3525, + "top": 1065, + "width": 194.0224609375, + "height": 13, + "text": "+getDepth(): double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3520, + "top": 1045, + "width": 204.0224609375, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvMC+MjCHLY0=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB/4h0=" + }, + "model": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 920, + "top": 432, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvMC+MzCI770=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB/4h0=" + }, + "model": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 920, + "top": 432, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3520, + "top": 984, + "width": 204.0224609375, + "height": 99, + "nameCompartment": { + "$ref": "AAAAAAFmvMC+MjCAGA8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvMC+MjCFYE8=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvMC+MjCGPvY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvMC+MjCHLY0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvMC+MzCI770=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMD8ozDIQyU=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMD8ojDGPYU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMD8ozDJJys=", + "_parent": { + "$ref": "AAAAAAFmvMD8ozDIQyU=" + }, + "model": { + "$ref": "AAAAAAFmvMD8ojDGPYU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3712, + "top": 772, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMD8ozDIQyU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMD8ozDKim0=", + "_parent": { + "$ref": "AAAAAAFmvMD8ozDIQyU=" + }, + "model": { + "$ref": "AAAAAAFmvMD8ojDGPYU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3712, + "top": 757, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMD8ozDIQyU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMD8ozDLhqM=", + "_parent": { + "$ref": "AAAAAAFmvMD8ozDIQyU=" + }, + "model": { + "$ref": "AAAAAAFmvMD8ojDGPYU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3712, + "top": 802, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMD8ozDIQyU=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "tail": { + "$ref": "AAAAAAFmvMC+MjB/4h0=" + }, + "lineStyle": 2, + "points": "3712:984;3712:793;3832:793", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMD8ozDJJys=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMD8ozDKim0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMD8ozDLhqM=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvMGEUDEBXJw=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvMGEUDECzk4=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDEBXJw=" + }, + "model": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvMGEUDEDsNo=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDECzk4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1712, + "top": 832, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMGEUDEEShc=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDECzk4=" + }, + "font": "Arial;13;1", + "left": 2837, + "top": 1207, + "width": 240.27783203125, + "height": 13, + "text": "DCPhotoSensor" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMGEUDEF2S0=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDECzk4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1712, + "top": 832, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMGEUDEGK8A=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDECzk4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1712, + "top": 832, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2832, + "top": 1200, + "width": 250.27783203125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMGEUDEDsNo=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvMGEUDEEShc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvMGEUDEF2S0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMGEUDEGK8A=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvMGEUTEH8LM=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDEBXJw=" + }, + "model": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "font": "Arial;13;0", + "left": 2832, + "top": 1225, + "width": 250.27783203125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvMGEUTEI/G4=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDEBXJw=" + }, + "model": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvMQtTTNIDnA=", + "_parent": { + "$ref": "AAAAAAFmvMGEUTEI/G4=" + }, + "model": { + "$ref": "AAAAAAFmvMQs/zNCjhs=" + }, + "font": "Arial;13;0", + "showShadow": false, + "left": 2837, + "top": 1240, + "width": 240.27783203125, + "height": 13, + "text": "+performReading(): PhotoSensorReading", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2832, + "top": 1235, + "width": 250.27783203125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvMGEUTEJigA=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDEBXJw=" + }, + "model": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 856, + "top": 416, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvMGEUTEKrcw=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDEBXJw=" + }, + "model": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 856, + "top": 416, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2832, + "top": 1200, + "width": 250.27783203125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvMGEUDECzk4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvMGEUTEH8LM=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvMGEUTEI/G4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvMGEUTEJigA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvMGEUTEKrcw=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvMGm3TE9APs=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvMGm3TE+pLo=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE9APs=" + }, + "model": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvMGm3TE/JoE=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE+pLo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2032, + "top": 944, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMGm3TFA4EU=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE+pLo=" + }, + "font": "Arial;13;1", + "left": 3837, + "top": 1015, + "width": 134, + "height": 13, + "text": "PhotoSensorReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMGm3TFBpWs=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE+pLo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2032, + "top": 944, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMGm3TFCwQs=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE+pLo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2032, + "top": 944, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3832, + "top": 1008, + "width": 144, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMGm3TE/JoE=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvMGm3TFA4EU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvMGm3TFBpWs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMGm3TFCwQs=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvMGm3TFD6gc=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE9APs=" + }, + "model": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8JIM9l1C4ik=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TFD6gc=" + }, + "model": { + "$ref": "AAAAAAFm8JIMxl08lWo=" + }, + "font": "Arial;13;0", + "left": 3837, + "top": 1038, + "width": 134, + "height": 13, + "text": "-wavelength: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3832, + "top": 1033, + "width": 144, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvMGm3TFEPJU=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE9APs=" + }, + "model": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JHgVFzzvgQ=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TFEPJU=" + }, + "model": { + "$ref": "AAAAAAFm8JHgJFztbTA=" + }, + "font": "Arial;13;0", + "left": 3837, + "top": 1061, + "width": 134, + "height": 13, + "text": "+getReading()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3832, + "top": 1056, + "width": 144, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvMGm3TFFk5w=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE9APs=" + }, + "model": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1016, + "top": 472, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvMGm3TFGow4=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE9APs=" + }, + "model": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1016, + "top": 472, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3832, + "top": 1008, + "width": 144, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFmvMGm3TE+pLo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvMGm3TFD6gc=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvMGm3TFEPJU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvMGm3TFFk5w=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvMGm3TFGow4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMHIlzGG5ww=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMHIlTGEZGY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMHIlzGHkA8=", + "_parent": { + "$ref": "AAAAAAFmvMHIlzGG5ww=" + }, + "model": { + "$ref": "AAAAAAFmvMHIlTGEZGY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3865, + "top": 893, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMHIlzGG5ww=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMHIlzGIS28=", + "_parent": { + "$ref": "AAAAAAFmvMHIlzGG5ww=" + }, + "model": { + "$ref": "AAAAAAFmvMHIlTGEZGY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3850, + "top": 893, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMHIlzGG5ww=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMHIlzGJaeQ=", + "_parent": { + "$ref": "AAAAAAFmvMHIlzGG5ww=" + }, + "model": { + "$ref": "AAAAAAFmvMHIlTGEZGY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3895, + "top": 894, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMHIlzGG5ww=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "tail": { + "$ref": "AAAAAAFmvMGm3TE9APs=" + }, + "lineStyle": 2, + "points": "3880:1008;3880:793", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMHIlzGHkA8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMHIlzGIS28=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMHIlzGJaeQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMHl4jHF6U0=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMHl4THDZXk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMHl4jHGYXs=", + "_parent": { + "$ref": "AAAAAAFmvMHl4jHF6U0=" + }, + "model": { + "$ref": "AAAAAAFmvMHl4THDZXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3009, + "top": 1000, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMHl4jHF6U0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMHl4jHHynw=", + "_parent": { + "$ref": "AAAAAAFmvMHl4jHF6U0=" + }, + "model": { + "$ref": "AAAAAAFmvMHl4THDZXk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2994, + "top": 1000, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMHl4jHF6U0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMHl4zHIAQs=", + "_parent": { + "$ref": "AAAAAAFmvMHl4jHF6U0=" + }, + "model": { + "$ref": "AAAAAAFmvMHl4THDZXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3039, + "top": 1001, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMHl4jHF6U0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "tail": { + "$ref": "AAAAAAFmvMGEUDEBXJw=" + }, + "lineStyle": 2, + "points": "3024:1200;3024:814", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMHl4jHGYXs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMHl4jHHynw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMHl4zHIAQs=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvMNraTLK1Aw=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvMNraTLLreE=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "model": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvMNraTLMGWw=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLLreE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3093, + "top": 1021, + "width": 124, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMNraTLNfUo=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLLreE=" + }, + "font": "Arial;13;1", + "left": 3093, + "top": 1023, + "width": 207.00341796875, + "height": 13, + "text": "DCMaterialSampler" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMNraTLOL1Q=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLLreE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1792, + "top": 544, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMNraTLPRAY=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLLreE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1792, + "top": 544, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3088, + "top": 1016, + "width": 217.00341796875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMNraTLMGWw=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvMNraTLNfUo=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvMNraTLOL1Q=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMNraTLPRAY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvMNraTLQ1Po=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "model": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8Iw3EklPG6M=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLQ1Po=" + }, + "model": { + "$ref": "AAAAAAFm8Iw24ElJN5E=" + }, + "font": "Arial;13;0", + "left": 3093, + "top": 1046, + "width": 207.00341796875, + "height": 13, + "text": "-volume: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3088, + "top": 1041, + "width": 217.00341796875, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvMNraTLRhIg=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "model": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8IsgcEbQIOU=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLRhIg=" + }, + "model": { + "$ref": "AAAAAAFm8IsgK0bKHNk=" + }, + "font": "Arial;13;0", + "left": 3093, + "top": 1069, + "width": 207.00341796875, + "height": 13, + "text": "+performReading(): MaterialSample", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3088, + "top": 1064, + "width": 217.00341796875, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvMNraTLSbKo=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "model": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 272, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvMNraTLTv6M=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "model": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 272, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3088, + "top": 1016, + "width": 217.00341796875, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFmvMNraTLLreE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvMNraTLQ1Po=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvMNraTLRhIg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvMNraTLSbKo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvMNraTLTv6M=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMXbvzPOfxw=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMXbvjPMKwg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMXbvzPPyFE=", + "_parent": { + "$ref": "AAAAAAFmvMXbvzPOfxw=" + }, + "model": { + "$ref": "AAAAAAFmvMXbvjPMKwg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3207, + "top": 809, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMXbvzPOfxw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMXbvzPQmZQ=", + "_parent": { + "$ref": "AAAAAAFmvMXbvzPOfxw=" + }, + "model": { + "$ref": "AAAAAAFmvMXbvjPMKwg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3207, + "top": 824, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMXbvzPOfxw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMXbvzPRToE=", + "_parent": { + "$ref": "AAAAAAFmvMXbvzPOfxw=" + }, + "model": { + "$ref": "AAAAAAFmvMXbvjPMKwg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3208, + "top": 779, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMXbvzPOfxw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "tail": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "lineStyle": 2, + "points": "3208:1016;3208:800;3127:800", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMXbvzPPyFE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMXbvzPQmZQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMXbvzPRToE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvMj52DQd6fY=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMj52DQbeIM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvMj52TQe984=", + "_parent": { + "$ref": "AAAAAAFmvMj52DQd6fY=" + }, + "model": { + "$ref": "AAAAAAFmvMj52DQbeIM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvMj52TQfd9w=", + "_parent": { + "$ref": "AAAAAAFmvMj52TQe984=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1904, + "top": 1056, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMj52TQgzv0=", + "_parent": { + "$ref": "AAAAAAFmvMj52TQe984=" + }, + "font": "Arial;13;1", + "left": 3197, + "top": 1215, + "width": 236, + "height": 13, + "text": "DCRockCoringDrill" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMj52TQh8UU=", + "_parent": { + "$ref": "AAAAAAFmvMj52TQe984=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1904, + "top": 1056, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMj52TQiHsU=", + "_parent": { + "$ref": "AAAAAAFmvMj52TQe984=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1904, + "top": 1056, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3192, + "top": 1208, + "width": 246, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMj52TQfd9w=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvMj52TQgzv0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvMj52TQh8UU=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMj52TQiHsU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvMj52TQjGBs=", + "_parent": { + "$ref": "AAAAAAFmvMj52DQd6fY=" + }, + "model": { + "$ref": "AAAAAAFmvMj52DQbeIM=" + }, + "font": "Arial;13;0", + "left": 3192, + "top": 1233, + "width": 246, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvMj52TQkj1I=", + "_parent": { + "$ref": "AAAAAAFmvMj52DQd6fY=" + }, + "model": { + "$ref": "AAAAAAFmvMj52DQbeIM=" + }, + "font": "Arial;13;0", + "left": 3192, + "top": 1243, + "width": 246, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvMj52TQlHbs=", + "_parent": { + "$ref": "AAAAAAFmvMj52DQd6fY=" + }, + "model": { + "$ref": "AAAAAAFmvMj52DQbeIM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 952, + "top": 528, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvMj52TQm7Dk=", + "_parent": { + "$ref": "AAAAAAFmvMj52DQd6fY=" + }, + "model": { + "$ref": "AAAAAAFmvMj52DQbeIM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 952, + "top": 528, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3192, + "top": 1208, + "width": 246, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvMj52TQe984=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvMj52TQjGBs=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvMj52TQkj1I=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvMj52TQlHbs=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvMj52TQm7Dk=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvMv75jX8qqM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMv75TX63aQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvMv75jX9nUA=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX8qqM=" + }, + "model": { + "$ref": "AAAAAAFmvMv75TX63aQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvMv75zX+Ofs=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX9nUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3717, + "top": 1773, + "width": 210, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMv75zX/v5E=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX9nUA=" + }, + "font": "Arial;13;1", + "left": 2981, + "top": 1295, + "width": 210, + "height": 13, + "text": "DCHotFluidSampler" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMv75zYAN3Y=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX9nUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1472, + "top": 960, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvMv75zYBzxM=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX9nUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1472, + "top": 960, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2976, + "top": 1288, + "width": 220, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMv75zX+Ofs=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvMv75zX/v5E=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvMv75zYAN3Y=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMv75zYBzxM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvMv75zYCx/8=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX8qqM=" + }, + "model": { + "$ref": "AAAAAAFmvMv75TX63aQ=" + }, + "font": "Arial;13;0", + "left": 2976, + "top": 1313, + "width": 220, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvMv75zYDDAc=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX8qqM=" + }, + "model": { + "$ref": "AAAAAAFmvMv75TX63aQ=" + }, + "font": "Arial;13;0", + "left": 2976, + "top": 1323, + "width": 220, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvMv75zYEhCI=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX8qqM=" + }, + "model": { + "$ref": "AAAAAAFmvMv75TX63aQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 736, + "top": 480, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvMv75zYF93o=", + "_parent": { + "$ref": "AAAAAAFmvMv75jX8qqM=" + }, + "model": { + "$ref": "AAAAAAFmvMv75TX63aQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 736, + "top": 480, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2976, + "top": 1288, + "width": 220, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvMv75jX9nUA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvMv75zYCx/8=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvMv75zYDDAc=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvMv75zYEhCI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvMv75zYF93o=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMyKoTa6nsI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMyKoTa4K5o=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMyKoja7Mfs=", + "_parent": { + "$ref": "AAAAAAFmvMyKoTa6nsI=" + }, + "model": { + "$ref": "AAAAAAFmvMyKoTa4K5o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3121, + "top": 1180, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMyKoTa6nsI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMyKoja8184=", + "_parent": { + "$ref": "AAAAAAFmvMyKoTa6nsI=" + }, + "model": { + "$ref": "AAAAAAFmvMyKoTa4K5o=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3106, + "top": 1180, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMyKoTa6nsI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMyKoja96bw=", + "_parent": { + "$ref": "AAAAAAFmvMyKoTa6nsI=" + }, + "model": { + "$ref": "AAAAAAFmvMyKoTa4K5o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3151, + "top": 1181, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMyKoTa6nsI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "tail": { + "$ref": "AAAAAAFmvMv75jX8qqM=" + }, + "lineStyle": 2, + "points": "3136:1288;3136:1086", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMyKoja7Mfs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMyKoja8184=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMyKoja96bw=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvMzJrjcidMo=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvMzJrTcgfFE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMzJrjcjwIE=", + "_parent": { + "$ref": "AAAAAAFmvMzJrjcidMo=" + }, + "model": { + "$ref": "AAAAAAFmvMzJrTcgfFE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3185, + "top": 1140, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMzJrjcidMo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMzJrjckQeg=", + "_parent": { + "$ref": "AAAAAAFmvMzJrjcidMo=" + }, + "model": { + "$ref": "AAAAAAFmvMzJrTcgfFE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3170, + "top": 1140, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvMzJrjcidMo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvMzJrjclJ9Y=", + "_parent": { + "$ref": "AAAAAAFmvMzJrjcidMo=" + }, + "model": { + "$ref": "AAAAAAFmvMzJrTcgfFE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3214, + "top": 1141, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvMzJrjcidMo=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "tail": { + "$ref": "AAAAAAFmvMj52DQd6fY=" + }, + "lineStyle": 2, + "points": "3200:1208;3200:1086", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvMzJrjcjwIE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvMzJrjckQeg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvMzJrjclJ9Y=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvM3YjzdVm0I=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvM3YjjdT1/4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvM3YjzdW7ns=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdVm0I=" + }, + "model": { + "$ref": "AAAAAAFmvM3YjjdT1/4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvM3YjzdX6DM=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdW7ns=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1648, + "top": 832, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvM3YjzdYrFc=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdW7ns=" + }, + "font": "Arial;13;1", + "left": 3277, + "top": 1111, + "width": 207.00341796875, + "height": 13, + "text": "DCChemicalScanner" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvM3YjzdZIZM=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdW7ns=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1648, + "top": 832, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvM3YjzdaKzU=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdW7ns=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1648, + "top": 832, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3272, + "top": 1104, + "width": 217.00341796875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvM3YjzdX6DM=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvM3YjzdYrFc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvM3YjzdZIZM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvM3YjzdaKzU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvM3Yjzdbkjc=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdVm0I=" + }, + "model": { + "$ref": "AAAAAAFmvM3YjjdT1/4=" + }, + "font": "Arial;13;0", + "left": 3272, + "top": 1129, + "width": 217.00341796875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvM3YjzdcaxI=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdVm0I=" + }, + "model": { + "$ref": "AAAAAAFmvM3YjjdT1/4=" + }, + "font": "Arial;13;0", + "left": 3272, + "top": 1139, + "width": 217.00341796875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvM3YjzddvnM=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdVm0I=" + }, + "model": { + "$ref": "AAAAAAFmvM3YjjdT1/4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 824, + "top": 416, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvM3Yjzdexaw=", + "_parent": { + "$ref": "AAAAAAFmvM3YjzdVm0I=" + }, + "model": { + "$ref": "AAAAAAFmvM3YjjdT1/4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 824, + "top": 416, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3272, + "top": 1104, + "width": 217.00341796875, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvM3YjzdW7ns=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvM3Yjzdbkjc=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvM3YjzdcaxI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvM3YjzddvnM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvM3Yjzdexaw=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvM4VOzfIvhE=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvM4VOzfG8C0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvM4VOzfJWoU=", + "_parent": { + "$ref": "AAAAAAFmvM4VOzfIvhE=" + }, + "model": { + "$ref": "AAAAAAFmvM4VOzfG8C0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3327, + "top": 1057, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvM4VOzfIvhE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvM4VOzfKe44=", + "_parent": { + "$ref": "AAAAAAFmvM4VOzfIvhE=" + }, + "model": { + "$ref": "AAAAAAFmvM4VOzfG8C0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3327, + "top": 1072, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvM4VOzfIvhE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvM4VOzfLTrk=", + "_parent": { + "$ref": "AAAAAAFmvM4VOzfIvhE=" + }, + "model": { + "$ref": "AAAAAAFmvM4VOzfG8C0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3328, + "top": 1027, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvM4VOzfIvhE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvMNraTLK1Aw=" + }, + "tail": { + "$ref": "AAAAAAFmvM3YjzdVm0I=" + }, + "lineStyle": 2, + "points": "3328:1104;3328:1048;3304:1048", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvM4VOzfJWoU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvM4VOzfKe44=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvM4VOzfLTrk=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvM5txDgI5yU=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvM5txDgJk8g=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgI5yU=" + }, + "model": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvM5txDgK/Pk=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgJk8g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1904, + "top": 912, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvM5txDgLd9s=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgJk8g=" + }, + "font": "Arial;13;1", + "left": 4077, + "top": 1015, + "width": 123.9443359375, + "height": 13, + "text": "MaterialSample" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvM5txTgM5/c=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgJk8g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1904, + "top": 912, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvM5txTgNJ8s=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgJk8g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1904, + "top": 912, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4072, + "top": 1008, + "width": 133.9443359375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvM5txDgK/Pk=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvM5txDgLd9s=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvM5txTgM5/c=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvM5txTgNJ8s=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvM5txTgOSxE=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgI5yU=" + }, + "model": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8I50wFooBGE=", + "_parent": { + "$ref": "AAAAAAFmvM5txTgOSxE=" + }, + "model": { + "$ref": "AAAAAAFm8I50j1oiamE=" + }, + "font": "Arial;13;0", + "left": 4077, + "top": 1038, + "width": 123.9443359375, + "height": 13, + "text": "-volume: double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8I7QolqVwsE=", + "_parent": { + "$ref": "AAAAAAFmvM5txTgOSxE=" + }, + "model": { + "$ref": "AAAAAAFm8I7Qb1qPd7I=" + }, + "font": "Arial;13;0", + "left": 4077, + "top": 1053, + "width": 123.9443359375, + "height": 13, + "text": "-mass: double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8I7+5Frkg7E=", + "_parent": { + "$ref": "AAAAAAFmvM5txTgOSxE=" + }, + "model": { + "$ref": "AAAAAAFm8I7+tVrePas=" + }, + "font": "Arial;13;0", + "left": 4077, + "top": 1068, + "width": 123.9443359375, + "height": 13, + "text": "-density: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4072, + "top": 1033, + "width": 133.9443359375, + "height": 53 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvM5txTgP7QI=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgI5yU=" + }, + "model": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8I80dVszVCs=", + "_parent": { + "$ref": "AAAAAAFmvM5txTgP7QI=" + }, + "model": { + "$ref": "AAAAAAFm8I80QlstF+0=" + }, + "font": "Arial;13;0", + "left": 4077, + "top": 1091, + "width": 123.9443359375, + "height": 13, + "text": "+getVolume(): double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JE5ZlwDfCI=", + "_parent": { + "$ref": "AAAAAAFmvM5txTgP7QI=" + }, + "model": { + "$ref": "AAAAAAFm8JE5NVv9KRE=" + }, + "font": "Arial;13;0", + "left": 4077, + "top": 1106, + "width": 123.9443359375, + "height": 13, + "text": "+getMass(): double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JFtD1xawEA=", + "_parent": { + "$ref": "AAAAAAFmvM5txTgP7QI=" + }, + "model": { + "$ref": "AAAAAAFm8JFs3lxUXqQ=" + }, + "font": "Arial;13;0", + "left": 4077, + "top": 1121, + "width": 123.9443359375, + "height": 13, + "text": "+getDensity(): double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4072, + "top": 1086, + "width": 133.9443359375, + "height": 53 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvM5txTgQgUE=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgI5yU=" + }, + "model": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 952, + "top": 456, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvM5txTgRmuQ=", + "_parent": { + "$ref": "AAAAAAFmvM5txDgI5yU=" + }, + "model": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 952, + "top": 456, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4072, + "top": 1008, + "width": 133.9443359375, + "height": 131, + "nameCompartment": { + "$ref": "AAAAAAFmvM5txDgJk8g=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvM5txTgOSxE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvM5txTgP7QI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvM5txTgQgUE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvM5txTgRmuQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvM6C5Dg+eDU=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvM6C5Dg8FqQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvM6C5Dg/smo=", + "_parent": { + "$ref": "AAAAAAFmvM6C5Dg+eDU=" + }, + "model": { + "$ref": "AAAAAAFmvM6C5Dg8FqQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4126, + "top": 802, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvM6C5Dg+eDU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvM6C5ThAERs=", + "_parent": { + "$ref": "AAAAAAFmvM6C5Dg+eDU=" + }, + "model": { + "$ref": "AAAAAAFmvM6C5Dg8FqQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4126, + "top": 817, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvM6C5Dg+eDU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvM6C5jhBtpU=", + "_parent": { + "$ref": "AAAAAAFmvM6C5Dg+eDU=" + }, + "model": { + "$ref": "AAAAAAFmvM6C5Dg8FqQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4127, + "top": 772, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvM6C5Dg+eDU=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "tail": { + "$ref": "AAAAAAFmvM5txDgI5yU=" + }, + "lineStyle": 2, + "points": "4127:1008;4127:793;3906:793", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvM6C5Dg/smo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvM6C5ThAERs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvM6C5jhBtpU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvNJCODia6xM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvNJCODibGKY=", + "_parent": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "model": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvNJCODicmf8=", + "_parent": { + "$ref": "AAAAAAFmvNJCODibGKY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1936, + "top": 976, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNJCODidt/0=", + "_parent": { + "$ref": "AAAAAAFmvNJCODibGKY=" + }, + "font": "Arial;13;1", + "left": 4245, + "top": 999, + "width": 90.517578125, + "height": 13, + "text": "WaterReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNJCODiegQg=", + "_parent": { + "$ref": "AAAAAAFmvNJCODibGKY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1936, + "top": 976, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNJCODifvOE=", + "_parent": { + "$ref": "AAAAAAFmvNJCODibGKY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1936, + "top": 976, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4240, + "top": 992, + "width": 100.517578125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNJCODicmf8=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvNJCODidt/0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvNJCODiegQg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNJCODifvOE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvNJCODigThA=", + "_parent": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "model": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + }, + "font": "Arial;13;0", + "left": 4240, + "top": 1017, + "width": 100.517578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvNJCODihZqA=", + "_parent": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "model": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + }, + "font": "Arial;13;0", + "left": 4240, + "top": 1027, + "width": 100.517578125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvNJCODiiVew=", + "_parent": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "model": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 968, + "top": 488, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvNJCODijfj8=", + "_parent": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "model": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 968, + "top": 488, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4240, + "top": 992, + "width": 100.517578125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmvNJCODibGKY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvNJCODigThA=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvNJCODihZqA=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvNJCODiiVew=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvNJCODijfj8=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvNJgTDjdGQQ=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNJgTDjbL/4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNJgTDjebFY=", + "_parent": { + "$ref": "AAAAAAFmvNJgTDjdGQQ=" + }, + "model": { + "$ref": "AAAAAAFmvNJgTDjbL/4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4295, + "top": 769, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNJgTDjdGQQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNJgTDjfZpg=", + "_parent": { + "$ref": "AAAAAAFmvNJgTDjdGQQ=" + }, + "model": { + "$ref": "AAAAAAFmvNJgTDjbL/4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4295, + "top": 784, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvNJgTDjdGQQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNJgTDjgJeI=", + "_parent": { + "$ref": "AAAAAAFmvNJgTDjdGQQ=" + }, + "model": { + "$ref": "AAAAAAFmvNJgTDjbL/4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4296, + "top": 739, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNJgTDjdGQQ=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvKSk4ihd4vc=" + }, + "tail": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "lineStyle": 2, + "points": "4296:992;4296:760;3906:760", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvNJgTDjebFY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNJgTDjfZpg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNJgTDjgJeI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvNRUVTkNUmc=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvNRUVTkOIDE=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "model": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvNRUVTkPcYs=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkOIDE=" + }, + "font": "Arial;13;0", + "left": 3005, + "top": 621, + "width": 114.517578125, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNRUVTkQXvM=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkOIDE=" + }, + "font": "Arial;13;1", + "left": 3005, + "top": 636, + "width": 114.517578125, + "height": 13, + "text": "DCWaterReadings" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNRUVTkRGEU=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkOIDE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1216, + "top": 320, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNRUVTkS8gw=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkOIDE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1216, + "top": 320, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3000, + "top": 616, + "width": 124.517578125, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNRUVTkPcYs=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvNRUVTkQXvM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvNRUVTkRGEU=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNRUVTkS8gw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvNRUVTkTYGE=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "model": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + }, + "font": "Arial;13;0", + "left": 3000, + "top": 654, + "width": 124.517578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvNRUVjkUCok=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "model": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + }, + "font": "Arial;13;0", + "left": 3000, + "top": 664, + "width": 124.517578125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvNRUVjkVYzs=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "model": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 608, + "top": 160, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvNRUVjkW8fw=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "model": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 608, + "top": 160, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3000, + "top": 616, + "width": 124.517578125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvNRUVTkOIDE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvNRUVTkTYGE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvNRUVjkUCok=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvNRUVjkVYzs=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvNRUVjkW8fw=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvNSThTllo7M=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNSThTljnkU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNSThTlm8wo=", + "_parent": { + "$ref": "AAAAAAFmvNSThTllo7M=" + }, + "model": { + "$ref": "AAAAAAFmvNSThTljnkU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3073, + "top": 701, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNSThTllo7M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNSThTlnmaE=", + "_parent": { + "$ref": "AAAAAAFmvNSThTllo7M=" + }, + "model": { + "$ref": "AAAAAAFmvNSThTljnkU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3088, + "top": 701, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvNSThTllo7M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNSThTloi20=", + "_parent": { + "$ref": "AAAAAAFmvNSThTllo7M=" + }, + "model": { + "$ref": "AAAAAAFmvNSThTljnkU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3044, + "top": 702, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNSThTllo7M=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvKXV3yiJzmo=" + }, + "tail": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "lineStyle": 2, + "points": "3059:673;3059:744", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvNSThTlm8wo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNSThTlnmaE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNSThTloi20=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvNTmoDmFdCo=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvNTmoDmGy/E=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmFdCo=" + }, + "model": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvNTmoDmHgFk=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmGy/E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1776, + "top": 768, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNTmoDmIfak=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmGy/E=" + }, + "font": "Arial;13;1", + "left": 3237, + "top": 591, + "width": 199.3037109375, + "height": 13, + "text": "DCPH" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNTmoDmJXlQ=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmGy/E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1776, + "top": 768, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNTmoDmK65k=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmGy/E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1776, + "top": 768, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3232, + "top": 584, + "width": 209.3037109375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNTmoDmHgFk=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvNTmoDmIfak=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvNTmoDmJXlQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNTmoDmK65k=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvNTmoDmLNX0=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmFdCo=" + }, + "model": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "font": "Arial;13;0", + "left": 3232, + "top": 609, + "width": 209.3037109375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvNTmoDmMLUY=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmFdCo=" + }, + "model": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvNeGujshmZc=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmMLUY=" + }, + "model": { + "$ref": "AAAAAAFmvNeGUTsb3m8=" + }, + "font": "Arial;13;0", + "left": 3237, + "top": 624, + "width": 199.3037109375, + "height": 13, + "text": "+performReading(): pHReading", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3232, + "top": 619, + "width": 209.3037109375, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvNTmoTmNoxE=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmFdCo=" + }, + "model": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 888, + "top": 384, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvNTmoTmOqOg=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmFdCo=" + }, + "model": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 888, + "top": 384, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3232, + "top": 584, + "width": 209.3037109375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvNTmoDmGy/E=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvNTmoDmLNX0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvNTmoDmMLUY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvNTmoTmNoxE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvNTmoTmOqOg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvNZkjDm7uW4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvNZkjDm8vMQ=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm7uW4=" + }, + "model": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvNZkjDm9X6U=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm8vMQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1360, + "top": 832, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNZkjDm+WXA=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm8vMQ=" + }, + "font": "Arial;13;1", + "left": 2965, + "top": 495, + "width": 269.8896484375, + "height": 13, + "text": "DCIndexOfRefraction" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNZkjDm/t00=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm8vMQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1360, + "top": 832, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNZkjDnAxB8=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm8vMQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1360, + "top": 832, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2960, + "top": 488, + "width": 279.8896484375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNZkjDm9X6U=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvNZkjDm+WXA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvNZkjDm/t00=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNZkjDnAxB8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvNZkjDnBZGA=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm7uW4=" + }, + "model": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8I2Dn063oSQ=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDnBZGA=" + }, + "model": { + "$ref": "AAAAAAFm8I2DbE6x7eM=" + }, + "font": "Arial;13;0", + "left": 2965, + "top": 518, + "width": 269.8896484375, + "height": 13, + "text": "-AngleOfIncidence: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2960, + "top": 513, + "width": 279.8896484375, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvNZkjDnCaUc=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm7uW4=" + }, + "model": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvNdocDrwVaM=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDnCaUc=" + }, + "model": { + "$ref": "AAAAAAFmvNdoFTrqbDM=" + }, + "font": "Arial;13;0", + "left": 2965, + "top": 541, + "width": 269.8896484375, + "height": 13, + "text": "+performReading(): IndexOfRefractionReading", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2960, + "top": 536, + "width": 279.8896484375, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvNZkjDnDREg=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm7uW4=" + }, + "model": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 680, + "top": 416, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvNZkjDnEBIU=", + "_parent": { + "$ref": "AAAAAAFmvNZkjDm7uW4=" + }, + "model": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 680, + "top": 416, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2960, + "top": 488, + "width": 279.8896484375, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFmvNZkjDm8vMQ=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvNZkjDnBZGA=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvNZkjDnCaUc=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvNZkjDnDREg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvNZkjDnEBIU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmvNa0ozoB4mg=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmvNa0ozoCeQI=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoB4mg=" + }, + "model": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmvNa0ozoD1KA=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoCeQI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1024, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNa0ozoEK0g=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoCeQI=" + }, + "font": "Arial;13;1", + "left": 2629, + "top": 591, + "width": 241.55908203125, + "height": 13, + "text": "DCSalinity" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNa0ozoFK84=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoCeQI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1024, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmvNa0ozoG5dY=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoCeQI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1024, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2624, + "top": 584, + "width": 251.55908203125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNa0ozoD1KA=" + }, + "nameLabel": { + "$ref": "AAAAAAFmvNa0ozoEK0g=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmvNa0ozoFK84=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNa0ozoG5dY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmvNa0ozoHzDo=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoB4mg=" + }, + "model": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "font": "Arial;13;0", + "left": 2624, + "top": 609, + "width": 251.55908203125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmvNa0ozoIwwQ=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoB4mg=" + }, + "model": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmvNcMtzrCGfw=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoIwwQ=" + }, + "model": { + "$ref": "AAAAAAFmvNcMYDq8m70=" + }, + "font": "Arial;13;0", + "left": 2629, + "top": 624, + "width": 241.55908203125, + "height": 13, + "text": "+performReading(): SalinityReading", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2624, + "top": 619, + "width": 251.55908203125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmvNa0ozoJg8I=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoB4mg=" + }, + "model": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 584, + "top": 512, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmvNa0ozoKHt4=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozoB4mg=" + }, + "model": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 584, + "top": 512, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2624, + "top": 584, + "width": 251.55908203125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFmvNa0ozoCeQI=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmvNa0ozoHzDo=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmvNa0ozoIwwQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmvNa0ozoJg8I=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmvNa0ozoKHt4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvNbrwzpkbMI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNbrwzpiE2A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNbrwzplsFE=", + "_parent": { + "$ref": "AAAAAAFmvNbrwzpkbMI=" + }, + "model": { + "$ref": "AAAAAAFmvNbrwzpiE2A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3177, + "top": 625, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNbrwzpkbMI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNbrwzpm7O0=", + "_parent": { + "$ref": "AAAAAAFmvNbrwzpkbMI=" + }, + "model": { + "$ref": "AAAAAAFmvNbrwzpiE2A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3177, + "top": 640, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvNbrwzpkbMI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNbrwzpnAd8=", + "_parent": { + "$ref": "AAAAAAFmvNbrwzpkbMI=" + }, + "model": { + "$ref": "AAAAAAFmvNbrwzpiE2A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3178, + "top": 595, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNbrwzpkbMI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "tail": { + "$ref": "AAAAAAFmvNTmoDmFdCo=" + }, + "lineStyle": 2, + "points": "3232:616;3124:616", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvNbrwzplsFE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNbrwzpm7O0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNbrwzpnAd8=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvNbvzzp+yJM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNbvzzp8fH8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNbvzzp/VNo=", + "_parent": { + "$ref": "AAAAAAFmvNbvzzp+yJM=" + }, + "model": { + "$ref": "AAAAAAFmvNbvzzp8fH8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3050, + "top": 580, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNbvzzp+yJM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNbvzzqAq+U=", + "_parent": { + "$ref": "AAAAAAFmvNbvzzp+yJM=" + }, + "model": { + "$ref": "AAAAAAFmvNbvzzp8fH8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3065, + "top": 580, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvNbvzzp+yJM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNbvzzqBp0s=", + "_parent": { + "$ref": "AAAAAAFmvNbvzzp+yJM=" + }, + "model": { + "$ref": "AAAAAAFmvNbvzzp8fH8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3021, + "top": 581, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNbvzzp+yJM=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "tail": { + "$ref": "AAAAAAFmvNZkjDm7uW4=" + }, + "lineStyle": 2, + "points": "3036:558;3036:616", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvNbvzzp/VNo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNbvzzqAq+U=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNbvzzqBp0s=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFmvNb1aTqYAME=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmvNb1aDqWfLQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNb1aTqZBGA=", + "_parent": { + "$ref": "AAAAAAFmvNb1aTqYAME=" + }, + "model": { + "$ref": "AAAAAAFmvNb1aDqWfLQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2937, + "top": 595, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNb1aTqYAME=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNb1aTqaeSM=", + "_parent": { + "$ref": "AAAAAAFmvNb1aTqYAME=" + }, + "model": { + "$ref": "AAAAAAFmvNb1aDqWfLQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2937, + "top": 580, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmvNb1aTqYAME=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmvNb1aTqbH7A=", + "_parent": { + "$ref": "AAAAAAFmvNb1aTqYAME=" + }, + "model": { + "$ref": "AAAAAAFmvNb1aDqWfLQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2937, + "top": 625, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmvNb1aTqYAME=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvNRUVTkNUmc=" + }, + "tail": { + "$ref": "AAAAAAFmvNa0ozoB4mg=" + }, + "lineStyle": 2, + "points": "2875:616;3000:616", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmvNb1aTqZBGA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmvNb1aTqaeSM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmvNb1aTqbH7A=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmx2wqZtFSqjM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmx2wqZtFTOzE=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFSqjM=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmx2wqZtFUROI=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFTOzE=" + }, + "font": "Arial;13;0", + "left": 1013, + "top": 237, + "width": 118.142578125, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx2wqZ9FVUds=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFTOzE=" + }, + "font": "Arial;13;1", + "left": 1013, + "top": 252, + "width": 118.142578125, + "height": 13, + "text": "Observer" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx2wqZ9FWS5k=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFTOzE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 48, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx2wqZ9FXHWE=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFTOzE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 48, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1008, + "top": 232, + "width": 128.142578125, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmx2wqZtFUROI=" + }, + "nameLabel": { + "$ref": "AAAAAAFmx2wqZ9FVUds=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmx2wqZ9FWS5k=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmx2wqZ9FXHWE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmx2wqZ9FYcyg=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFSqjM=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "font": "Arial;13;0", + "left": 1008, + "top": 270, + "width": 128.142578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmx2wqZ9FZeP4=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFSqjM=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmx2ym2tHCIts=", + "_parent": { + "$ref": "AAAAAAFmx2wqZ9FZeP4=" + }, + "model": { + "$ref": "AAAAAAFmx2ymhtG8C3M=" + }, + "font": "Arial;13;0", + "left": 1013, + "top": 285, + "width": 118.142578125, + "height": 13, + "text": "+update(String cmd)", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1008, + "top": 280, + "width": 128.142578125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmx2wqZ9FaRuo=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFSqjM=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": 24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmx2wqZ9FbewE=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFSqjM=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": 24, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1008, + "top": 232, + "width": 128.142578125, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFmx2wqZtFTOzE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmx2wqZ9FYcyg=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmx2wqZ9FZeP4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmx2wqZ9FaRuo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmx2wqZ9FbewE=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFmx2zkRdIKbj4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmx2zkRdII5SQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmx2zkRdILKRU=", + "_parent": { + "$ref": "AAAAAAFmx2zkRdIKbj4=" + }, + "model": { + "$ref": "AAAAAAFmx2zkRdII5SQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1057, + "top": 444, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmx2zkRdIKbj4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmx2zkRdIMl+Y=", + "_parent": { + "$ref": "AAAAAAFmx2zkRdIKbj4=" + }, + "model": { + "$ref": "AAAAAAFmx2zkRdII5SQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1042, + "top": 444, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmx2zkRdIKbj4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmx2zkRdIN+uo=", + "_parent": { + "$ref": "AAAAAAFmx2zkRdIKbj4=" + }, + "model": { + "$ref": "AAAAAAFmx2zkRdII5SQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1087, + "top": 445, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmx2zkRdIKbj4=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmx2wqZtFSqjM=" + }, + "tail": { + "$ref": "AAAAAAFmvFcHHB6Sb3M=" + }, + "lineStyle": 2, + "points": "1072:600;1072:302", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmx2zkRdILKRU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmx2zkRdIMl+Y=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmx2zkRdIN+uo=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmx2z3LtIqh/s=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmx2z3LtIrzqA=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIqh/s=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmx2z3LtIsnYw=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIrzqA=" + }, + "font": "Arial;13;0", + "left": 357, + "top": 237, + "width": 221.05712890625, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx2z3LtIt/Oo=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIrzqA=" + }, + "font": "Arial;13;1", + "left": 357, + "top": 252, + "width": 221.05712890625, + "height": 13, + "text": "Subject" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx2z3LtIuM+U=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIrzqA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -304, + "top": -48, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx2z3LtIvymM=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIrzqA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -304, + "top": -48, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 352, + "top": 232, + "width": 231.05712890625, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFmx2z3LtIsnYw=" + }, + "nameLabel": { + "$ref": "AAAAAAFmx2z3LtIt/Oo=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmx2z3LtIuM+U=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmx2z3LtIvymM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmx2z3LtIwCgM=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIqh/s=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFmx23uCNLBebI=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIwCgM=" + }, + "model": { + "$ref": "AAAAAAFmx23trdK7OR4=" + }, + "font": "Arial;13;0", + "left": 357, + "top": 275, + "width": 221.05712890625, + "height": 13, + "text": "-listOfObservers: ArrayList", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 352, + "top": 270, + "width": 231.05712890625, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmx2z3LtIxOag=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIqh/s=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmx25//9MAvcY=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIxOag=" + }, + "model": { + "$ref": "AAAAAAFmx25/m9L61gQ=" + }, + "font": "Arial;13;0", + "left": 357, + "top": 298, + "width": 221.05712890625, + "height": 13, + "text": "+attach(Observer observer)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmx285fdNG4kI=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIxOag=" + }, + "model": { + "$ref": "AAAAAAFmx285KtNAayw=" + }, + "font": "Arial;13;0", + "left": 357, + "top": 313, + "width": 221.05712890625, + "height": 13, + "text": "+detach(Observer observer)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFmx29zONNeq14=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIxOag=" + }, + "model": { + "$ref": "AAAAAAFmx29y59NYPvM=" + }, + "font": "Arial;13;0", + "left": 357, + "top": 328, + "width": 221.05712890625, + "height": 13, + "text": "+updateObservers(String cmd)", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 352, + "top": 293, + "width": 231.05712890625, + "height": 53 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmx2z3LtIyuM8=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIqh/s=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -152, + "top": -24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmx2z3LtIz9pY=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIqh/s=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -152, + "top": -24, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 352, + "top": 232, + "width": 231.05712890625, + "height": 114, + "nameCompartment": { + "$ref": "AAAAAAFmx2z3LtIrzqA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmx2z3LtIwCgM=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmx2z3LtIxOag=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmx2z3LtIyuM8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmx2z3LtIz9pY=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFmx20UANJtgQc=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmx20UANJrPUc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFmx20UANJuzms=", + "_parent": { + "$ref": "AAAAAAFmx20UANJtgQc=" + }, + "model": { + "$ref": "AAAAAAFmx20UANJrPUc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFmx20UANJvDXI=", + "_parent": { + "$ref": "AAAAAAFmx20UANJuzms=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 256, + "top": 128, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx20UANJw8nY=", + "_parent": { + "$ref": "AAAAAAFmx20UANJuzms=" + }, + "font": "Arial;13;1", + "left": 445, + "top": 631, + "width": 40.4853515625, + "height": 13, + "text": "Vessel" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx20UANJxkdI=", + "_parent": { + "$ref": "AAAAAAFmx20UANJuzms=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 256, + "top": 128, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFmx20UANJypBo=", + "_parent": { + "$ref": "AAAAAAFmx20UANJuzms=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 256, + "top": 128, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 440, + "top": 624, + "width": 50.4853515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFmx20UANJvDXI=" + }, + "nameLabel": { + "$ref": "AAAAAAFmx20UANJw8nY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFmx20UANJxkdI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmx20UANJypBo=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFmx20UANJzdKQ=", + "_parent": { + "$ref": "AAAAAAFmx20UANJtgQc=" + }, + "model": { + "$ref": "AAAAAAFmx20UANJrPUc=" + }, + "font": "Arial;13;0", + "left": 440, + "top": 649, + "width": 50.4853515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFmx20UANJ0mx8=", + "_parent": { + "$ref": "AAAAAAFmx20UANJtgQc=" + }, + "model": { + "$ref": "AAAAAAFmx20UANJrPUc=" + }, + "font": "Arial;13;0", + "left": 440, + "top": 659, + "width": 50.4853515625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFmx20UANJ1Y38=", + "_parent": { + "$ref": "AAAAAAFmx20UANJtgQc=" + }, + "model": { + "$ref": "AAAAAAFmx20UANJrPUc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 144, + "top": 64, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFmx20UAdJ2d8Y=", + "_parent": { + "$ref": "AAAAAAFmx20UANJtgQc=" + }, + "model": { + "$ref": "AAAAAAFmx20UANJrPUc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 144, + "top": 64, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 440, + "top": 624, + "width": 50.4853515625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFmx20UANJuzms=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFmx20UANJzdKQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAFmx20UANJ0mx8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFmx20UANJ1Y38=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFmx20UAdJ2d8Y=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFmx3CBStPdQ+k=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmx3CBStPbnec=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmx3CBStPeLJA=", + "_parent": { + "$ref": "AAAAAAFmx3CBStPdQ+k=" + }, + "model": { + "$ref": "AAAAAAFmx3CBStPbnec=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": 477, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmx3CBStPdQ+k=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmx3CBStPfnDg=", + "_parent": { + "$ref": "AAAAAAFmx3CBStPdQ+k=" + }, + "model": { + "$ref": "AAAAAAFmx3CBStPbnec=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 433, + "top": 477, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmx3CBStPdQ+k=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmx3CBStPgx34=", + "_parent": { + "$ref": "AAAAAAFmx3CBStPdQ+k=" + }, + "model": { + "$ref": "AAAAAAFmx3CBStPbnec=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 478, + "top": 478, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmx3CBStPdQ+k=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmx2z3LtIqh/s=" + }, + "tail": { + "$ref": "AAAAAAFmx20UANJtgQc=" + }, + "lineStyle": 2, + "points": "463:624;463:345", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmx3CBStPeLJA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmx3CBStPfnDg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmx3CBStPgx34=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFmySA7xdUqZL8=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9Um/Ec=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUrDLY=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9Um/Ec=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 795, + "top": 263, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUseBw=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9Um/Ec=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 795, + "top": 248, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUtEzs=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9Um/Ec=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 795, + "top": 293, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUu6vY=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9UnlEQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 607, + "top": 263, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUvV1c=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9UnlEQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 610, + "top": 249, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUwwDA=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9UnlEQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 603, + "top": 290, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUxMjM=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9Uomws=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 982, + "top": 263, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUyP/A=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9Uomws=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 979, + "top": 249, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFmySA7xdUzf8M=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9Uomws=" + }, + "font": "Arial;13;0", + "left": 976, + "top": 290, + "width": 20, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "text": "0..*" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFmySA7xdU0YEY=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9UnlEQ=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFmySA7xdU1Aq8=", + "_parent": { + "$ref": "AAAAAAFmySA7xdUqZL8=" + }, + "model": { + "$ref": "AAAAAAFmySA7w9Uomws=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmx2wqZtFSqjM=" + }, + "tail": { + "$ref": "AAAAAAFmx2z3LtIqh/s=" + }, + "lineStyle": 2, + "points": "582:284;1008:284", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFmySA7xdUrDLY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFmySA7xdUseBw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFmySA7xdUtEzs=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFmySA7xdUu6vY=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFmySA7xdUvV1c=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFmySA7xdUwwDA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFmySA7xdUxMjM=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFmySA7xdUyP/A=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFmySA7xdUzf8M=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFmySA7xdU0YEY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFmySA7xdU1Aq8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8JKRzl4X//Y=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8JKRzl4YZl0=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4X//Y=" + }, + "model": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8JKRzl4Zhqs=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4YZl0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -256, + "top": 12, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8JKRz14aYdw=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4YZl0=" + }, + "font": "Arial;13;1", + "left": 3517, + "top": 1127, + "width": 132.4755859375, + "height": 13, + "text": "SonarReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8JKRz14bY50=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4YZl0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -256, + "top": 12, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8JKRz14cyUI=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4YZl0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -256, + "top": 12, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3512, + "top": 1120, + "width": 142.4755859375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8JKRzl4Zhqs=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8JKRz14aYdw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8JKRz14bY50=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8JKRz14cyUI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8JKRz14d+tc=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4X//Y=" + }, + "model": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8JMEQV8aGjg=", + "_parent": { + "$ref": "AAAAAAFm8JKRz14d+tc=" + }, + "model": { + "$ref": "AAAAAAFm8JMEDF8R3hc=" + }, + "font": "Arial;13;0", + "left": 3517, + "top": 1150, + "width": 132.4755859375, + "height": 13, + "text": "-responseTime: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3512, + "top": 1145, + "width": 142.4755859375, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8JKRz14engs=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4X//Y=" + }, + "model": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JPbNV+4Bvk=", + "_parent": { + "$ref": "AAAAAAFm8JKRz14engs=" + }, + "model": { + "$ref": "AAAAAAFm8JPa/V+vB8o=" + }, + "font": "Arial;13;0", + "left": 3517, + "top": 1173, + "width": 132.4755859375, + "height": 13, + "text": "+getReading(): double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3512, + "top": 1168, + "width": 142.4755859375, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8JKRz14f6Ew=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4X//Y=" + }, + "model": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": 6, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8JKRz14gKcs=", + "_parent": { + "$ref": "AAAAAAFm8JKRzl4X//Y=" + }, + "model": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": 6, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3512, + "top": 1120, + "width": 142.4755859375, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFm8JKRzl4YZl0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8JKRz14d+tc=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8JKRz14engs=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8JKRz14f6Ew=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8JKRz14gKcs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8JKSfl5exGc=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8JKSfl5c/hI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8JKSfl5fimg=", + "_parent": { + "$ref": "AAAAAAFm8JKSfl5exGc=" + }, + "model": { + "$ref": "AAAAAAFm8JKSfl5c/hI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3584, + "top": 1090, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8JKSfl5exGc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8JKSfl5gaOY=", + "_parent": { + "$ref": "AAAAAAFm8JKSfl5exGc=" + }, + "model": { + "$ref": "AAAAAAFm8JKSfl5c/hI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3570, + "top": 1085, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8JKSfl5exGc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8JKSfl5hUI4=", + "_parent": { + "$ref": "AAAAAAFm8JKSfl5exGc=" + }, + "model": { + "$ref": "AAAAAAFm8JKSfl5c/hI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3613, + "top": 1099, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8JKSfl5exGc=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvMC+MjB/4h0=" + }, + "tail": { + "$ref": "AAAAAAFm8JKRzl4X//Y=" + }, + "lineStyle": 1, + "points": "3594:1119;3605:1083", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8JKSfl5fimg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8JKSfl5gaOY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8JKSfl5hUI4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8JfNPWXc6TM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8JfNPWXdZys=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXc6TM=" + }, + "model": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8JfNPWXegK8=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXdZys=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8JfNPWXfgqo=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXdZys=" + }, + "font": "Arial;13;1", + "left": 3668.4755859375, + "top": 1127, + "width": 131.16162109375, + "height": 13, + "text": "LaserReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8JfNPWXg4eA=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXdZys=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8JfNPWXhXZ4=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXdZys=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3663.4755859375, + "top": 1120, + "width": 141.16162109375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8JfNPWXegK8=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8JfNPWXfgqo=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8JfNPWXg4eA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8JfNPWXhXZ4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8JfNPWXixq0=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXc6TM=" + }, + "model": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8JgoiWbkj2c=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXixq0=" + }, + "model": { + "$ref": "AAAAAAFm8JgoVGbbPVU=" + }, + "font": "Arial;13;0", + "left": 3668.4755859375, + "top": 1150, + "width": 131.16162109375, + "height": 13, + "text": "-distance: double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8JhllmczlFE=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXixq0=" + }, + "model": { + "$ref": "AAAAAAFm8JhlYmcqFVM=" + }, + "font": "Arial;13;0", + "left": 3668.4755859375, + "top": 1165, + "width": 131.16162109375, + "height": 13, + "text": "-angle: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3663.4755859375, + "top": 1145, + "width": 141.16162109375, + "height": 38 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8JfNPWXj9+c=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXc6TM=" + }, + "model": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JikR2eC1pg=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXj9+c=" + }, + "model": { + "$ref": "AAAAAAFm8JikEmd5MWQ=" + }, + "font": "Arial;13;0", + "left": 3668.4755859375, + "top": 1188, + "width": 131.16162109375, + "height": 13, + "text": "+getDistance(): double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JjjEmfZEHQ=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXj9+c=" + }, + "model": { + "$ref": "AAAAAAFm8Jji3WfQtKA=" + }, + "font": "Arial;13;0", + "left": 3668.4755859375, + "top": 1203, + "width": 131.16162109375, + "height": 13, + "text": "+getAngle(): double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3663.4755859375, + "top": 1183, + "width": 141.16162109375, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8JfNPWXk73o=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXc6TM=" + }, + "model": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8JfNPWXlTcU=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXc6TM=" + }, + "model": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3663.4755859375, + "top": 1120, + "width": 141.16162109375, + "height": 101, + "nameCompartment": { + "$ref": "AAAAAAFm8JfNPWXdZys=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8JfNPWXixq0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8JfNPWXj9+c=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8JfNPWXk73o=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8JfNPWXlTcU=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8JfN7GYj7/U=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8JfN7GYhkNg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8JfN7GYk5HI=", + "_parent": { + "$ref": "AAAAAAFm8JfN7GYj7/U=" + }, + "model": { + "$ref": "AAAAAAFm8JfN7GYhkNg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3664, + "top": 1104, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8JfN7GYj7/U=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8JfN7GYlUVw=", + "_parent": { + "$ref": "AAAAAAFm8JfN7GYj7/U=" + }, + "model": { + "$ref": "AAAAAAFm8JfN7GYhkNg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3652, + "top": 1113, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8JfN7GYj7/U=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8JfN7GYmLL0=", + "_parent": { + "$ref": "AAAAAAFm8JfN7GYj7/U=" + }, + "model": { + "$ref": "AAAAAAFm8JfN7GYhkNg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3687, + "top": 1085, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8JfN7GYj7/U=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvMC+MjB/4h0=" + }, + "tail": { + "$ref": "AAAAAAFm8JfNPWXc6TM=" + }, + "lineStyle": 1, + "points": "3691:1119;3662:1083", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8JfN7GYk5HI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8JfN7GYlUVw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8JfN7GYmLL0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8Jp+PGpwx34=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8Jp+PWpxN1w=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PGpwx34=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8Jp+PWpygYY=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PWpxN1w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 108, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Jp+PWpzmOc=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PWpxN1w=" + }, + "font": "Arial;13;1", + "left": 4109, + "top": 1167, + "width": 129.009765625, + "height": 13, + "text": "PHReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Jp+PWp0iJk=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PWpxN1w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 108, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Jp+PWp1TL0=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PWpxN1w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 108, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4104, + "top": 1160, + "width": 139.009765625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Jp+PWpygYY=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8Jp+PWpzmOc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8Jp+PWp0iJk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Jp+PWp1TL0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8Jp+PWp2Pfg=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PGpwx34=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8Jrfkms2hVQ=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PWp2Pfg=" + }, + "model": { + "$ref": "AAAAAAFm8JrfXmstXks=" + }, + "font": "Arial;13;0", + "left": 4109, + "top": 1190, + "width": 129.009765625, + "height": 13, + "text": "-pH: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4104, + "top": 1185, + "width": 139.009765625, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8Jp+PWp3QZE=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PGpwx34=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JsepWujNaE=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PWp3QZE=" + }, + "model": { + "$ref": "AAAAAAFm8Jseb2uaeKY=" + }, + "font": "Arial;13;0", + "left": 4109, + "top": 1213, + "width": 129.009765625, + "height": 13, + "text": "+getReading(): double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4104, + "top": 1208, + "width": 139.009765625, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8Jp+PWp4COo=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PGpwx34=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136, + "top": 54, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8Jp+PWp5S9M=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PGpwx34=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136, + "top": 54, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4104, + "top": 1160, + "width": 139.009765625, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFm8Jp+PWpxN1w=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8Jp+PWp2Pfg=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8Jp+PWp3QZE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8Jp+PWp4COo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8Jp+PWp5S9M=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8Jp+6Wq3YsM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+6Wq1U9o=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Jp+6Wq4NL8=", + "_parent": { + "$ref": "AAAAAAFm8Jp+6Wq3YsM=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+6Wq1U9o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4222, + "top": 1083, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Jp+6Wq3YsM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Jp+6Wq5s98=", + "_parent": { + "$ref": "AAAAAAFm8Jp+6Wq3YsM=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+6Wq1U9o=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4209, + "top": 1075, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8Jp+6Wq3YsM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Jp+6Wq6OJ8=", + "_parent": { + "$ref": "AAAAAAFm8Jp+6Wq3YsM=" + }, + "model": { + "$ref": "AAAAAAFm8Jp+6Wq1U9o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4247, + "top": 1100, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Jp+6Wq3YsM=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "tail": { + "$ref": "AAAAAAFm8Jp+PGpwx34=" + }, + "lineStyle": 1, + "points": "4196:1159;4274:1037", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8Jp+6Wq4NL8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Jp+6Wq5s98=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Jp+6Wq6OJ8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8Jt+/mwpQvw=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8Jt+/mwq9Nk=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwpQvw=" + }, + "model": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8Jt+/mwrxCo=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwq9Nk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136.01953125, + "top": 92, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Jt+/mwsNe4=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwq9Nk=" + }, + "font": "Arial;13;1", + "left": 4325, + "top": 1159, + "width": 129.009765625, + "height": 13, + "text": "SalinityReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Jt+/mwtNp4=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwq9Nk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136.01953125, + "top": 92, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Jt+/mwuzqc=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwq9Nk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136.01953125, + "top": 92, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4320, + "top": 1152, + "width": 139.009765625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Jt+/mwrxCo=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8Jt+/mwsNe4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8Jt+/mwtNp4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Jt+/mwuzqc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8Jt+/mwvNmg=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwpQvw=" + }, + "model": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8Jwzq24xEOc=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwvNmg=" + }, + "model": { + "$ref": "AAAAAAFm8Jwzcm4oqSY=" + }, + "font": "Arial;13;0", + "left": 4325, + "top": 1182, + "width": 129.009765625, + "height": 13, + "text": "-salinity: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4320, + "top": 1177, + "width": 139.009765625, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8Jt+/mwwVlk=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwpQvw=" + }, + "model": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8JzU2G6Ak4s=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwwVlk=" + }, + "model": { + "$ref": "AAAAAAFm8JzUoG53xMk=" + }, + "font": "Arial;13;0", + "left": 4325, + "top": 1205, + "width": 129.009765625, + "height": 13, + "text": "+getReading(): double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4320, + "top": 1200, + "width": 139.009765625, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8Jt+/mwxfMQ=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwpQvw=" + }, + "model": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -68.009765625, + "top": 46, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8Jt+/mwySEM=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/mwpQvw=" + }, + "model": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -68.009765625, + "top": 46, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4320, + "top": 1152, + "width": 139.009765625, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFm8Jt+/mwq9Nk=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8Jt+/mwvNmg=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8Jt+/mwwVlk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8Jt+/mwxfMQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8Jt+/mwySEM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8Jt/qmxwSMY=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8Jt/qWxuC1s=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Jt/qmxxSG4=", + "_parent": { + "$ref": "AAAAAAFm8Jt/qmxwSMY=" + }, + "model": { + "$ref": "AAAAAAFm8Jt/qWxuC1s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4322, + "top": 1095, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Jt/qmxwSMY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Jt/qmxynt4=", + "_parent": { + "$ref": "AAAAAAFm8Jt/qmxwSMY=" + }, + "model": { + "$ref": "AAAAAAFm8Jt/qWxuC1s=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4309, + "top": 1103, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8Jt/qmxwSMY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Jt/qmxz1xY=", + "_parent": { + "$ref": "AAAAAAFm8Jt/qmxwSMY=" + }, + "model": { + "$ref": "AAAAAAFm8Jt/qWxuC1s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4347, + "top": 1080, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Jt/qmxwSMY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "tail": { + "$ref": "AAAAAAFm8Jt+/mwpQvw=" + }, + "lineStyle": 1, + "points": "4368:1151;4302:1037", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8Jt/qmxxSG4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Jt/qmxynt4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Jt/qmxz1xY=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8J39cm7WRPQ=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8J39cm7XMxw=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7WRPQ=" + }, + "model": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8J39cm7YHMI=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7XMxw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -360.01953125, + "top": 32, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8J39cm7ZK3w=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7XMxw=" + }, + "font": "Arial;13;1", + "left": 4205, + "top": 1271, + "width": 186.80517578125, + "height": 13, + "text": "IndexOfRefractionReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8J39cm7aWaA=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7XMxw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -360.01953125, + "top": 32, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8J39cm7bBEc=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7XMxw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -360.01953125, + "top": 32, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4200, + "top": 1264, + "width": 196.80517578125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8J39cm7YHMI=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8J39cm7ZK3w=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8J39cm7aWaA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8J39cm7bBEc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8J39cm7cuts=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7WRPQ=" + }, + "model": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8J/TUXD6sXo=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7cuts=" + }, + "model": { + "$ref": "AAAAAAFm8J/TGnDxGMk=" + }, + "font": "Arial;13;0", + "left": 4205, + "top": 1294, + "width": 186.80517578125, + "height": 13, + "text": "-angleOfIncidence: double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8KAlMnFbHQ4=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7cuts=" + }, + "model": { + "$ref": "AAAAAAFm8KAk+3FSuQg=" + }, + "font": "Arial;13;0", + "left": 4205, + "top": 1309, + "width": 186.80517578125, + "height": 13, + "text": "-angleOfRefraction: double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm8KFpGHHOuKg=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7cuts=" + }, + "model": { + "$ref": "AAAAAAFm8KFo4HHFkKc=" + }, + "font": "Arial;13;0", + "left": 4205, + "top": 1324, + "width": 186.80517578125, + "height": 13, + "text": "-indexOfRefraction: double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4200, + "top": 1289, + "width": 196.80517578125, + "height": 53 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8J39cm7d8lI=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7WRPQ=" + }, + "model": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8KHou3Id/7A=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7d8lI=" + }, + "model": { + "$ref": "AAAAAAFm8KHohXIUMkg=" + }, + "font": "Arial;13;0", + "left": 4205, + "top": 1347, + "width": 186.80517578125, + "height": 13, + "text": "+getangleOfIncidence(): double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8KJA23LIdJY=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7d8lI=" + }, + "model": { + "$ref": "AAAAAAFm8KJApHK/K1Y=" + }, + "font": "Arial;13;0", + "left": 4205, + "top": 1362, + "width": 186.80517578125, + "height": 13, + "text": "+getAngleOfRefraction(): double", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm8KMMOXMfHcQ=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7d8lI=" + }, + "model": { + "$ref": "AAAAAAFm8KMMBHMWLJ8=" + }, + "font": "Arial;13;0", + "left": 4205, + "top": 1377, + "width": 186.80517578125, + "height": 13, + "text": "+getIndexOfRefraction(): double", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4200, + "top": 1342, + "width": 196.80517578125, + "height": 53 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8J39cm7enIY=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7WRPQ=" + }, + "model": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -180.009765625, + "top": 16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8J39cm7f6oQ=", + "_parent": { + "$ref": "AAAAAAFm8J39cm7WRPQ=" + }, + "model": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -180.009765625, + "top": 16, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4200, + "top": 1264, + "width": 196.80517578125, + "height": 131, + "nameCompartment": { + "$ref": "AAAAAAFm8J39cm7XMxw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8J39cm7cuts=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8J39cm7d8lI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8J39cm7enIY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8J39cm7f6oQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8J3+Im8d/VA=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpllB0=" + }, + "model": { + "$ref": "AAAAAAFm8J3+Im8bBYc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8J3+Im8eJ4E=", + "_parent": { + "$ref": "AAAAAAFm8J3+Im8d/VA=" + }, + "model": { + "$ref": "AAAAAAFm8J3+Im8bBYc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4277, + "top": 1144, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8J3+Im8d/VA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8J3+Im8fOos=", + "_parent": { + "$ref": "AAAAAAFm8J3+Im8d/VA=" + }, + "model": { + "$ref": "AAAAAAFm8J3+Im8bBYc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4262, + "top": 1144, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8J3+Im8d/VA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8J3+Im8ghVA=", + "_parent": { + "$ref": "AAAAAAFm8J3+Im8d/VA=" + }, + "model": { + "$ref": "AAAAAAFm8J3+Im8bBYc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4306, + "top": 1143, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8J3+Im8d/VA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFmvNJCODia6xM=" + }, + "tail": { + "$ref": "AAAAAAFm8J39cm7WRPQ=" + }, + "lineStyle": 1, + "points": "4295:1263;4290:1037", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8J3+Im8eJ4E=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8J3+Im8fOos=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8J3+Im8ghVA=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvFcHGx6QDw4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Submersible", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFmx2zkRdII5SQ=", + "_parent": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "source": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "target": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + } + } + ], + "stereotype": "Abstract", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFmyhSepwVi9Xc=", + "_parent": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "name": "dataCollection", + "type": "Collection" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvJC4UyWKghM=", + "_parent": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "name": "getSubmersible", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvJDDRSWRAXo=", + "_parent": { + "$ref": "AAAAAAFmvJC4UyWKghM=" + }, + "type": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "direction": "return" + } + ], + "isAbstract": true + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvKyGKC4fCPA=", + "_parent": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "name": "collectData", + "stereotype": "", + "isAbstract": true + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFmyhaibgX0oSo=", + "_parent": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + }, + "name": "addData", + "visibility": "protected", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmyhbfgwYN3n4=", + "_parent": { + "$ref": "AAAAAAFmyhaibgX0oSo=" + }, + "name": "Data data", + "visibility": "protected", + "type": "" + } + ] + } + ], + "isAbstract": true + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvFfzZR6+CdU=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "AUV", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvFpOoiFSTJs=", + "_parent": { + "$ref": "AAAAAAFmvFfzZR6+CdU=" + }, + "source": { + "$ref": "AAAAAAFmvFfzZR6+CdU=" + }, + "target": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvFgDvR7oG1I=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "ROV", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvFpTpiF1vbA=", + "_parent": { + "$ref": "AAAAAAFmvFgDvR7oG1I=" + }, + "source": { + "$ref": "AAAAAAFmvFgDvR7oG1I=" + }, + "target": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvFgRJx8S9iM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "MS", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvFpYqCGYVTY=", + "_parent": { + "$ref": "AAAAAAFmvFgRJx8S9iM=" + }, + "source": { + "$ref": "AAAAAAFmvFgRJx8S9iM=" + }, + "target": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvFghSx88L4s=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Equipment", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvFpgWCG7IQA=", + "_parent": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "source": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "target": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAFmvKcxZio+2wY=", + "_parent": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmvKcxZio/BXw=", + "_parent": { + "$ref": "AAAAAAFmvKcxZio+2wY=" + }, + "reference": { + "$ref": "AAAAAAFmvFghSx88L4s=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmvKcxZypAR+Y=", + "_parent": { + "$ref": "AAAAAAFmvKcxZio+2wY=" + }, + "reference": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "aggregation": "composite" + } + } + ], + "stereotype": "Abstract", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFmvFxQLyTJRmQ=", + "_parent": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "name": "submersible", + "visibility": "private", + "type": { + "$ref": "AAAAAAFmvFcHGx6QDw4=" + } + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFmvKZoyinNpmQ=", + "_parent": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "name": "dataCollector", + "visibility": "private", + "type": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvFzsHyTW+l0=", + "_parent": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "name": "setSubmersible", + "visibility": "protected", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvFzsHyTXSyE=", + "_parent": { + "$ref": "AAAAAAFmvFzsHyTW+l0=" + }, + "name": "Submersible submersible", + "type": "" + } + ] + } + ], + "isAbstract": true + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvFjVoR93OFI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Sonar", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvFpmqiHeQsI=", + "_parent": { + "$ref": "AAAAAAFmvFjVoR93OFI=" + }, + "source": { + "$ref": "AAAAAAFmvFjVoR93OFI=" + }, + "target": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvFjl5h+hybc=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Laser", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvFpstCIBa5U=", + "_parent": { + "$ref": "AAAAAAFmvFjl5h+hybc=" + }, + "source": { + "$ref": "AAAAAAFmvFjl5h+hybc=" + }, + "target": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvGsVqyTtV0U=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "TopographicalMapper", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvGuC4CUZus0=", + "_parent": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + }, + "source": { + "$ref": "AAAAAAFmvGsVqyTtV0U=" + }, + "target": { + "$ref": "AAAAAAFmvFghSx88L4s=" + } + } + ], + "stereotype": "Abstract", + "isAbstract": true + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvHIRVCU5U78=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "PhotoSensor", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvHIvViVjSYs=", + "_parent": { + "$ref": "AAAAAAFmvHIRVCU5U78=" + }, + "source": { + "$ref": "AAAAAAFmvHIRVCU5U78=" + }, + "target": { + "$ref": "AAAAAAFmvFghSx88L4s=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvJFp0SWalVY=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "MaterialSampler", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvJKmUiZYl0M=", + "_parent": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + }, + "source": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + }, + "target": { + "$ref": "AAAAAAFmvFghSx88L4s=" + } + } + ], + "stereotype": "Abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvJKyLyZpGk8=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "ChemicalScanner", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvJNIOybthfA=", + "_parent": { + "$ref": "AAAAAAFmvJKyLyZpGk8=" + }, + "source": { + "$ref": "AAAAAAFmvJKyLyZpGk8=" + }, + "target": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvJLZkCaTR+o=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "HotFluidSampler", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvJNOSib+9T0=", + "_parent": { + "$ref": "AAAAAAFmvJLZkCaTR+o=" + }, + "source": { + "$ref": "AAAAAAFmvJLZkCaTR+o=" + }, + "target": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvJMD4ya9tkk=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "RockCoringDrill", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvJNTdScPurA=", + "_parent": { + "$ref": "AAAAAAFmvJMD4ya9tkk=" + }, + "source": { + "$ref": "AAAAAAFmvJMD4ya9tkk=" + }, + "target": { + "$ref": "AAAAAAFmvJFp0SWalVY=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvJXn1CcoYZU=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "WaterReadings", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvJrOOyfY+0w=", + "_parent": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + }, + "source": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + }, + "target": { + "$ref": "AAAAAAFmvFghSx88L4s=" + } + } + ], + "stereotype": "Abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvJgOhydS2uI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "PH", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvJrDzCe2MH0=", + "_parent": { + "$ref": "AAAAAAFmvJgOhydS2uI=" + }, + "source": { + "$ref": "AAAAAAFmvJgOhydS2uI=" + }, + "target": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvJnm2Cd8670=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Salinity", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvJrJbSfHXRk=", + "_parent": { + "$ref": "AAAAAAFmvJnm2Cd8670=" + }, + "source": { + "$ref": "AAAAAAFmvJnm2Cd8670=" + }, + "target": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvJ1gNigWJLY=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "IndexOfRefraction", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvJ2DPShB61M=", + "_parent": { + "$ref": "AAAAAAFmvJ1gNigWJLY=" + }, + "source": { + "$ref": "AAAAAAFmvJ1gNigWJLY=" + }, + "target": { + "$ref": "AAAAAAFmvJXn1CcoYZU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvKSk4ihbS4s=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Data", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFmvKYt3Ci06as=", + "_parent": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmvKYt3Ci13i4=", + "_parent": { + "$ref": "AAAAAAFmvKYt3Ci06as=" + }, + "reference": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmvKYt3Ci2koo=", + "_parent": { + "$ref": "AAAAAAFmvKYt3Ci06as=" + }, + "reference": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + } + } + } + ], + "stereotype": "Interface" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvKXV2yiH+5o=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DataCollector", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFmvKnKOiwZ2gY=", + "_parent": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmvKnKRCwaGhk=", + "_parent": { + "$ref": "AAAAAAFmvKnKOiwZ2gY=" + }, + "reference": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmvKnKRCwbiHI=", + "_parent": { + "$ref": "AAAAAAFmvKnKOiwZ2gY=" + }, + "reference": { + "$ref": "AAAAAAFmvFghSx88L4s=" + }, + "aggregation": "composite" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAFmvKotRC02GBE=", + "_parent": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "source": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "target": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + } + } + ], + "stereotype": "Interface", + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvKqRcy1cj00=", + "_parent": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + }, + "name": "performReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvKs/TC2kthg=", + "_parent": { + "$ref": "AAAAAAFmvKqRcy1cj00=" + }, + "type": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + }, + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvLMRki5vaX4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCTopographicalMapper", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMB1fjAXz1A=", + "_parent": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + }, + "source": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + }, + "target": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + } + } + ], + "stereotype": "Interface" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvL+w6S7oZDM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCSonar", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMBsnS/jS9A=", + "_parent": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "source": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "target": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvL/i5i8qIM4=", + "_parent": { + "$ref": "AAAAAAFmvL+w6S7oZDM=" + }, + "name": "performReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvMAJwy9G8Gc=", + "_parent": { + "$ref": "AAAAAAFmvL/i5i8qIM4=" + }, + "type": "SonarReading", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvMAnKy9jlOU=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCLaser", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMBwmS/90xI=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "source": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "target": { + "$ref": "AAAAAAFmvLMRki5vaX4=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8IyKBkqOK24=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "name": "distance", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvMBB4y+fTCw=", + "_parent": { + "$ref": "AAAAAAFmvMAnKy9jlOU=" + }, + "name": "performReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvMBMcy+1cYU=", + "_parent": { + "$ref": "AAAAAAFmvMBB4y+fTCw=" + }, + "type": "LaserReading", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvMC+MjB9y+Q=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "TopographicalMapping", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMD8ojDGPYU=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "source": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "target": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + } + } + ], + "stereotype": "abstract", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8JXaq2CU+tA=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "name": "depth", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8JZEM2EiA0U=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "name": "calculateDepth", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8JagXWFHaqw=", + "_parent": { + "$ref": "AAAAAAFm8JZEM2EiA0U=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8JcEy2JM58g=", + "_parent": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + }, + "name": "getDepth", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8Jc6/WJx+zQ=", + "_parent": { + "$ref": "AAAAAAFm8JcEy2JM58g=" + }, + "type": "double", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvMGEUDD/p4s=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCPhotoSensor", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMHl4THDZXk=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "source": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "target": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvMQs/zNCjhs=", + "_parent": { + "$ref": "AAAAAAFmvMGEUDD/p4s=" + }, + "name": "performReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvMRQqzNYix8=", + "_parent": { + "$ref": "AAAAAAFmvMQs/zNCjhs=" + }, + "type": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvMGm3TE7WJw=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "PhotoSensorReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMHIlTGEZGY=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "source": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "target": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8JIMxl08lWo=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "name": "wavelength", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8JHgJFztbTA=", + "_parent": { + "$ref": "AAAAAAFmvMGm3TE7WJw=" + }, + "name": "getReading" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvMNraTLI0K8=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCMaterialSampler", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMXbvjPMKwg=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "source": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "target": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8Iw24ElJN5E=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "name": "volume", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8IsgK0bKHNk=", + "_parent": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + }, + "name": "performReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8IsqTkbvxPw=", + "_parent": { + "$ref": "AAAAAAFm8IsgK0bKHNk=" + }, + "type": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvMj52DQbeIM=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCRockCoringDrill", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMzJrTcgfFE=", + "_parent": { + "$ref": "AAAAAAFmvMj52DQbeIM=" + }, + "source": { + "$ref": "AAAAAAFmvMj52DQbeIM=" + }, + "target": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvMv75TX63aQ=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCHotFluidSampler", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvMyKoTa4K5o=", + "_parent": { + "$ref": "AAAAAAFmvMv75TX63aQ=" + }, + "source": { + "$ref": "AAAAAAFmvMv75TX63aQ=" + }, + "target": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvM3YjjdT1/4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCChemicalScanner", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvM4VOzfG8C0=", + "_parent": { + "$ref": "AAAAAAFmvM3YjjdT1/4=" + }, + "source": { + "$ref": "AAAAAAFmvM3YjjdT1/4=" + }, + "target": { + "$ref": "AAAAAAFmvMNraTLI0K8=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvM5twzgGia4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "MaterialSample", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvM6C5Dg8FqQ=", + "_parent": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "source": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "target": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8I50j1oiamE=", + "_parent": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "name": "volume", + "visibility": "private", + "type": "double" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8I7Qb1qPd7I=", + "_parent": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "name": "mass", + "visibility": "private", + "type": "double" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8I7+tVrePas=", + "_parent": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "name": "density", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8I80QlstF+0=", + "_parent": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "name": "getVolume", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8I+21FuVUrg=", + "_parent": { + "$ref": "AAAAAAFm8I80QlstF+0=" + }, + "type": "double", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8JE5NVv9KRE=", + "_parent": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "name": "getMass", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8JFic1wiWkA=", + "_parent": { + "$ref": "AAAAAAFm8JE5NVv9KRE=" + }, + "type": "double", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8JFs3lxUXqQ=", + "_parent": { + "$ref": "AAAAAAFmvM5twzgGia4=" + }, + "name": "getDensity", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8JGitVx5PMk=", + "_parent": { + "$ref": "AAAAAAFm8JFs3lxUXqQ=" + }, + "type": "double", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvNJCNziYrvc=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "WaterReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvNJgTDjbL/4=", + "_parent": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + }, + "source": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + }, + "target": { + "$ref": "AAAAAAFmvKSk4ihbS4s=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvNRUVTkLNpE=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCWaterReadings", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvNSThTljnkU=", + "_parent": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + }, + "source": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + }, + "target": { + "$ref": "AAAAAAFmvKXV2yiH+5o=" + } + } + ], + "stereotype": "Interface" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvNTmoDmDNJY=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCPH", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvNbrwzpiE2A=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "source": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "target": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvNeGUTsb3m8=", + "_parent": { + "$ref": "AAAAAAFmvNTmoDmDNJY=" + }, + "name": "performReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvNeNQDsxr0s=", + "_parent": { + "$ref": "AAAAAAFmvNeGUTsb3m8=" + }, + "type": "pHReading", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvNZkizm5IuI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCIndexOfRefraction", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvNbvzzp8fH8=", + "_parent": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "source": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "target": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8I2DbE6x7eM=", + "_parent": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "name": "AngleOfIncidence", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvNdoFTrqbDM=", + "_parent": { + "$ref": "AAAAAAFmvNZkizm5IuI=" + }, + "name": "performReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvNd6FjsNdn0=", + "_parent": { + "$ref": "AAAAAAFmvNdoFTrqbDM=" + }, + "type": "IndexOfRefractionReading", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmvNa0ozn/jT0=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "DCSalinity", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFmvNb1aDqWfLQ=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "source": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "target": { + "$ref": "AAAAAAFmvNRUVTkLNpE=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmvNcMYDq8m70=", + "_parent": { + "$ref": "AAAAAAFmvNa0ozn/jT0=" + }, + "name": "performReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmvNcXMDrSA9U=", + "_parent": { + "$ref": "AAAAAAFmvNcMYDq8m70=" + }, + "type": "SalinityReading", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmx2wqZtFQ0d8=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Observer", + "stereotype": "Interface", + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmx2ymhtG8C3M=", + "_parent": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "name": "update", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmx2yulNHS3+A=", + "_parent": { + "$ref": "AAAAAAFmx2ymhtG8C3M=" + }, + "name": "String cmd", + "type": "" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmx2z3LtIoL5A=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Subject", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFmx3Bq09OJiLg=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmx3Bq09OKYpc=", + "_parent": { + "$ref": "AAAAAAFmx3Bq09OJiLg=" + }, + "reference": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmx3Bq09OLGB4=", + "_parent": { + "$ref": "AAAAAAFmx3Bq09OJiLg=" + }, + "reference": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAFmySA7w9Um/Ec=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmySA7w9UnlEQ=", + "_parent": { + "$ref": "AAAAAAFmySA7w9Um/Ec=" + }, + "reference": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFmySA7w9Uomws=", + "_parent": { + "$ref": "AAAAAAFmySA7w9Um/Ec=" + }, + "reference": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "aggregation": "shared", + "multiplicity": "0..*" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAFm739r5V4Slh4=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFm739r5V4TmmU=", + "_parent": { + "$ref": "AAAAAAFm739r5V4Slh4=" + }, + "reference": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFm739r5V4UjTI=", + "_parent": { + "$ref": "AAAAAAFm739r5V4Slh4=" + }, + "reference": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "aggregation": "shared" + } + } + ], + "stereotype": "Interface", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFmx23trdK7OR4=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "name": "listOfObservers", + "visibility": "private", + "type": "ArrayList" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFmx25/m9L61gQ=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "name": "attach", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmx266qdMWy04=", + "_parent": { + "$ref": "AAAAAAFmx25/m9L61gQ=" + }, + "name": "Observer observer", + "type": "" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFmx285KtNAayw=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "name": "detach", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmx29yNtNQ4Ls=", + "_parent": { + "$ref": "AAAAAAFmx285KtNAayw=" + }, + "name": "Observer observer", + "type": "" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFmx29y59NYPvM=", + "_parent": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "name": "updateObservers", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFmx2/IeNNoa0c=", + "_parent": { + "$ref": "AAAAAAFmx29y59NYPvM=" + }, + "name": "String cmd", + "type": "" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFmx20UANJrPUc=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "Vessel", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFmx3CBStPbnec=", + "_parent": { + "$ref": "AAAAAAFmx20UANJrPUc=" + }, + "source": { + "$ref": "AAAAAAFmx20UANJrPUc=" + }, + "target": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8JKRzV4VmDo=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "SonarReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8JKSfl5c/hI=", + "_parent": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "source": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "target": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8JMEDF8R3hc=", + "_parent": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "name": "responseTime", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8JPa/V+vB8o=", + "_parent": { + "$ref": "AAAAAAFm8JKRzV4VmDo=" + }, + "name": "getReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8JQrtV/UPGQ=", + "_parent": { + "$ref": "AAAAAAFm8JPa/V+vB8o=" + }, + "type": "double", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8JfNPWXayz4=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "LaserReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8JfN7GYhkNg=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "source": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "target": { + "$ref": "AAAAAAFmvMC+MjB9y+Q=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8JgoVGbbPVU=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "name": "distance", + "visibility": "private", + "type": "double" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8JhlYmcqFVM=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "name": "angle", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8JikEmd5MWQ=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "name": "getDistance", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8JjXV2eey6k=", + "_parent": { + "$ref": "AAAAAAFm8JikEmd5MWQ=" + }, + "type": "double", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8Jji3WfQtKA=", + "_parent": { + "$ref": "AAAAAAFm8JfNPWXayz4=" + }, + "name": "getAngle", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8JkTxWf1z0A=", + "_parent": { + "$ref": "AAAAAAFm8Jji3WfQtKA=" + }, + "type": "double", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8Jp+PGpuHgY=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "PHReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8Jp+6Wq1U9o=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "source": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "target": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8JrfXmstXks=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "name": "pH", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8Jseb2uaeKY=", + "_parent": { + "$ref": "AAAAAAFm8Jp+PGpuHgY=" + }, + "name": "getReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8JtZzGu/0j0=", + "_parent": { + "$ref": "AAAAAAFm8Jseb2uaeKY=" + }, + "type": "double", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8Jt+/WwnBzI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "SalinityReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8Jt/qWxuC1s=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "source": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "target": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8Jwzcm4oqSY=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "name": "salinity", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8JzUoG53xMk=", + "_parent": { + "$ref": "AAAAAAFm8Jt+/WwnBzI=" + }, + "name": "getReading", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8J0D5W6ccck=", + "_parent": { + "$ref": "AAAAAAFm8JzUoG53xMk=" + }, + "type": "double", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8J39cW7U3vI=", + "_parent": { + "$ref": "AAAAAAFmvFTHChpkZ6M=" + }, + "name": "IndexOfRefractionReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8J3+Im8bBYc=", + "_parent": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "source": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "target": { + "$ref": "AAAAAAFmvNJCNziYrvc=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8J/TGnDxGMk=", + "_parent": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "name": "angleOfIncidence", + "visibility": "private", + "type": "double" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8KAk+3FSuQg=", + "_parent": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "name": "angleOfRefraction", + "visibility": "private", + "type": "double" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm8KFo4HHFkKc=", + "_parent": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "name": "indexOfRefraction", + "visibility": "private", + "type": "double" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8KHohXIUMkg=", + "_parent": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "name": "getangleOfIncidence", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8KIk03I5qWY=", + "_parent": { + "$ref": "AAAAAAFm8KHohXIUMkg=" + }, + "type": "double", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8KJApHK/K1Y=", + "_parent": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "name": "getAngleOfRefraction", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8KJ2yXLkA10=", + "_parent": { + "$ref": "AAAAAAFm8KJApHK/K1Y=" + }, + "type": "double", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm8KMMBHMWLJ8=", + "_parent": { + "$ref": "AAAAAAFm8J39cW7U3vI=" + }, + "name": "getIndexOfRefraction", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm8KM9RnM7M0E=", + "_parent": { + "$ref": "AAAAAAFm8KMMBHMWLJ8=" + }, + "type": "double", + "direction": "return" + } + ] + } + ] + } + ] + }, + { + "_type": "UMLModel", + "_id": "AAAAAAFm72pmKVlSejo=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model1", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFm72p73FlbDBo=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "ClassDiagram1", + "defaultDiagram": true, + "ownedViews": [ + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72s8c1m+wCs=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72s8dFm/AFg=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m+wCs=" + }, + "model": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72s8dFnA384=", + "_parent": { + "$ref": "AAAAAAFm72s8dFm/AFg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -144, + "top": -64, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72s8dFnB6xs=", + "_parent": { + "$ref": "AAAAAAFm72s8dFm/AFg=" + }, + "font": "Arial;13;1", + "left": 157, + "top": 303, + "width": 224.31982421875, + "height": 13, + "text": "Vessel" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72s8dFnCXf4=", + "_parent": { + "$ref": "AAAAAAFm72s8dFm/AFg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -144, + "top": -64, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72s8dFnDacc=", + "_parent": { + "$ref": "AAAAAAFm72s8dFm/AFg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -144, + "top": -64, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 152, + "top": 296, + "width": 234.31982421875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm72s8dFnA384=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72s8dFnB6xs=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72s8dFnCXf4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72s8dFnDacc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72s8dFnEQYc=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m+wCs=" + }, + "model": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm720IgluxxEE=", + "_parent": { + "$ref": "AAAAAAFm72s8dFnEQYc=" + }, + "model": { + "$ref": "AAAAAAFm720ILVuu0tI=" + }, + "font": "Arial;13;0", + "left": 157, + "top": 326, + "width": 224.31982421875, + "height": 13, + "text": "-listOfObservers: ArrayList", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 152, + "top": 321, + "width": 234.31982421875, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72s8dFnFjIk=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m+wCs=" + }, + "model": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm721jzFu50YU=", + "_parent": { + "$ref": "AAAAAAFm72s8dFnFjIk=" + }, + "model": { + "$ref": "AAAAAAFm721jhFu2hcc=" + }, + "font": "Arial;13;0", + "left": 157, + "top": 349, + "width": 224.31982421875, + "height": 13, + "text": "+Vessel()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm722KtVvBVxs=", + "_parent": { + "$ref": "AAAAAAFm72s8dFnFjIk=" + }, + "model": { + "$ref": "AAAAAAFm722Khlu+9JU=" + }, + "font": "Arial;13;0", + "left": 157, + "top": 364, + "width": 224.31982421875, + "height": 13, + "text": "+attach(Observer observer)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm723FxVvKVJg=", + "_parent": { + "$ref": "AAAAAAFm72s8dFnFjIk=" + }, + "model": { + "$ref": "AAAAAAFm723FelvHzso=" + }, + "font": "Arial;13;0", + "left": 157, + "top": 379, + "width": 224.31982421875, + "height": 13, + "text": "+detach(Observer observer)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm723idFvTiaY=", + "_parent": { + "$ref": "AAAAAAFm72s8dFnFjIk=" + }, + "model": { + "$ref": "AAAAAAFm723iRFvQ3sw=" + }, + "font": "Arial;13;0", + "left": 157, + "top": 394, + "width": 224.31982421875, + "height": 13, + "text": "+getNoSubmersibles(): int", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 152, + "top": 344, + "width": 234.31982421875, + "height": 68 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72s8dFnGFGo=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m+wCs=" + }, + "model": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -72, + "top": -32, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72s8dFnH8vI=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m+wCs=" + }, + "model": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -72, + "top": -32, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 152, + "top": 296, + "width": 234.31982421875, + "height": 131, + "nameCompartment": { + "$ref": "AAAAAAFm72s8dFm/AFg=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72s8dFnEQYc=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72s8dFnFjIk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72s8dFnGFGo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72s8dFnH8vI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72s/8Vnn8Gk=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72s/8Vnl98w=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72s/8VnorOo=", + "_parent": { + "$ref": "AAAAAAFm72s/8Vnn8Gk=" + }, + "model": { + "$ref": "AAAAAAFm72s/8Vnl98w=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72s/8lnphh0=", + "_parent": { + "$ref": "AAAAAAFm72s/8VnorOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 208, + "top": 64, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72s/8lnqx5M=", + "_parent": { + "$ref": "AAAAAAFm72s/8VnorOo=" + }, + "font": "Arial;13;1", + "left": 589, + "top": 367, + "width": 41.919921875, + "height": 13, + "text": "AUV" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72s/8lnrLgo=", + "_parent": { + "$ref": "AAAAAAFm72s/8VnorOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 208, + "top": 64, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72s/8lnsykA=", + "_parent": { + "$ref": "AAAAAAFm72s/8VnorOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 208, + "top": 64, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 584, + "top": 360, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm72s/8lnphh0=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72s/8lnqx5M=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72s/8lnrLgo=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72s/8lnsykA=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72s/8lnt7+M=", + "_parent": { + "$ref": "AAAAAAFm72s/8Vnn8Gk=" + }, + "model": { + "$ref": "AAAAAAFm72s/8Vnl98w=" + }, + "font": "Arial;13;0", + "left": 584, + "top": 385, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72s/8lnuvcw=", + "_parent": { + "$ref": "AAAAAAFm72s/8Vnn8Gk=" + }, + "model": { + "$ref": "AAAAAAFm72s/8Vnl98w=" + }, + "font": "Arial;13;0", + "left": 584, + "top": 395, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72s/8lnvPr0=", + "_parent": { + "$ref": "AAAAAAFm72s/8Vnn8Gk=" + }, + "model": { + "$ref": "AAAAAAFm72s/8Vnl98w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 104, + "top": 32, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72s/8lnwG8k=", + "_parent": { + "$ref": "AAAAAAFm72s/8Vnn8Gk=" + }, + "model": { + "$ref": "AAAAAAFm72s/8Vnl98w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 104, + "top": 32, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 584, + "top": 360, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm72s/8VnorOo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72s/8lnt7+M=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72s/8lnuvcw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72s/8lnvPr0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72s/8lnwG8k=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72tC1FoQs4M=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72tC1FoObIk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72tC1FoRzJA=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoQs4M=" + }, + "model": { + "$ref": "AAAAAAFm72tC1FoObIk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72tC1FoS62M=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoRzJA=" + }, + "font": "Arial;13;0", + "left": 813, + "top": 109, + "width": 80.57080078125, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tC1FoTKTA=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoRzJA=" + }, + "font": "Arial;13;1", + "left": 813, + "top": 124, + "width": 80.57080078125, + "height": 13, + "text": "Moveable" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tC1FoUIy4=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoRzJA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 800, + "top": -640, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tC1FoV67k=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoRzJA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 800, + "top": -640, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 808, + "top": 104, + "width": 90.57080078125, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm72tC1FoS62M=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72tC1FoTKTA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72tC1FoUIy4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72tC1FoV67k=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72tC1FoW0qs=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoQs4M=" + }, + "model": { + "$ref": "AAAAAAFm72tC1FoObIk=" + }, + "font": "Arial;13;0", + "left": 808, + "top": 142, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72tC1FoXEk0=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoQs4M=" + }, + "model": { + "$ref": "AAAAAAFm72tC1FoObIk=" + }, + "font": "Arial;13;0", + "left": 808, + "top": 152, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72tC1FoYLik=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoQs4M=" + }, + "model": { + "$ref": "AAAAAAFm72tC1FoObIk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 400, + "top": -320, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72tC1VoZ/N0=", + "_parent": { + "$ref": "AAAAAAFm72tC1FoQs4M=" + }, + "model": { + "$ref": "AAAAAAFm72tC1FoObIk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 400, + "top": -320, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 808, + "top": 104, + "width": 90.57080078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm72tC1FoRzJA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72tC1FoW0qs=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72tC1FoXEk0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72tC1FoYLik=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72tC1VoZ/N0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72tOW1pCjtU=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72tOW1pARbQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72tOW1pDJak=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pCjtU=" + }, + "model": { + "$ref": "AAAAAAFm72tOW1pARbQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72tOW1pEzWY=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pDJak=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 608, + "top": -240, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tOW1pFBqg=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pDJak=" + }, + "font": "Arial;13;1", + "left": 757, + "top": 359, + "width": 41.919921875, + "height": 13, + "text": "MS" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tOW1pGKl0=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pDJak=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 608, + "top": -240, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tOW1pH6D8=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pDJak=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 608, + "top": -240, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 752, + "top": 352, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm72tOW1pEzWY=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72tOW1pFBqg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72tOW1pGKl0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72tOW1pH6D8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72tOW1pId7c=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pCjtU=" + }, + "model": { + "$ref": "AAAAAAFm72tOW1pARbQ=" + }, + "font": "Arial;13;0", + "left": 752, + "top": 377, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72tOW1pJZV8=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pCjtU=" + }, + "model": { + "$ref": "AAAAAAFm72tOW1pARbQ=" + }, + "font": "Arial;13;0", + "left": 752, + "top": 387, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72tOW1pKWc0=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pCjtU=" + }, + "model": { + "$ref": "AAAAAAFm72tOW1pARbQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": -120, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72tOXFpLaec=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pCjtU=" + }, + "model": { + "$ref": "AAAAAAFm72tOW1pARbQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": -120, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 752, + "top": 352, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm72tOW1pDJak=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72tOW1pId7c=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72tOW1pJZV8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72tOW1pKWc0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72tOXFpLaec=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72tTSVpr9wg=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72tTSFppeN4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72tTSVpsMyg=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpr9wg=" + }, + "model": { + "$ref": "AAAAAAFm72tTSFppeN4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72tTSVptOhc=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpsMyg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 656, + "top": -208, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tTSVpuaIM=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpsMyg=" + }, + "font": "Arial;13;1", + "left": 869, + "top": 359, + "width": 41.919921875, + "height": 13, + "text": "ROV" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tTSVpvwps=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpsMyg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 656, + "top": -208, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72tTSVpwIWQ=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpsMyg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 656, + "top": -208, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 864, + "top": 352, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm72tTSVptOhc=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72tTSVpuaIM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72tTSVpvwps=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72tTSVpwIWQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72tTSVpxWC0=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpr9wg=" + }, + "model": { + "$ref": "AAAAAAFm72tTSFppeN4=" + }, + "font": "Arial;13;0", + "left": 864, + "top": 377, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72tTSVpy/uw=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpr9wg=" + }, + "model": { + "$ref": "AAAAAAFm72tTSFppeN4=" + }, + "font": "Arial;13;0", + "left": 864, + "top": 387, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72tTSVpz6X0=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpr9wg=" + }, + "model": { + "$ref": "AAAAAAFm72tTSFppeN4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 328, + "top": -104, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72tTSVp0YkI=", + "_parent": { + "$ref": "AAAAAAFm72tTSVpr9wg=" + }, + "model": { + "$ref": "AAAAAAFm72tTSFppeN4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 328, + "top": -104, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 864, + "top": 352, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm72tTSVpsMyg=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72tTSVpxWC0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72tTSVpy/uw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72tTSVpz6X0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72tTSVp0YkI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72yOClrkcsU=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72yOClrlrlg=", + "_parent": { + "$ref": "AAAAAAFm72yOClrkcsU=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72yOClrmHC0=", + "_parent": { + "$ref": "AAAAAAFm72yOClrlrlg=" + }, + "font": "Arial;13;0", + "left": 149, + "top": 117, + "width": 221.05712890625, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72yOClrnUqw=", + "_parent": { + "$ref": "AAAAAAFm72yOClrlrlg=" + }, + "font": "Arial;13;1", + "left": 149, + "top": 132, + "width": 221.05712890625, + "height": 13, + "text": "Subject" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72yOClroCZc=", + "_parent": { + "$ref": "AAAAAAFm72yOClrlrlg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -930, + "top": -478, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72yOClrpE8o=", + "_parent": { + "$ref": "AAAAAAFm72yOClrlrlg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -930, + "top": -478, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 144, + "top": 112, + "width": 231.05712890625, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm72yOClrmHC0=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72yOClrnUqw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72yOClroCZc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72yOClrpE8o=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72yOClrqMqE=", + "_parent": { + "$ref": "AAAAAAFm72yOClrkcsU=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFm72yOClrrgzA=", + "_parent": { + "$ref": "AAAAAAFm72yOClrqMqE=" + }, + "model": { + "$ref": "AAAAAAFmx23trdK7OR4=" + }, + "font": "Arial;13;0", + "left": 149, + "top": 155, + "width": 221.05712890625, + "height": 13, + "text": "-listOfObservers: ArrayList", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 144, + "top": 150, + "width": 231.05712890625, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72yOClrsDhs=", + "_parent": { + "$ref": "AAAAAAFm72yOClrkcsU=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm72yOClrtgJ8=", + "_parent": { + "$ref": "AAAAAAFm72yOClrsDhs=" + }, + "model": { + "$ref": "AAAAAAFmx25/m9L61gQ=" + }, + "font": "Arial;13;0", + "left": 149, + "top": 178, + "width": 221.05712890625, + "height": 13, + "text": "+attach(Observer observer)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm72yOClruScc=", + "_parent": { + "$ref": "AAAAAAFm72yOClrsDhs=" + }, + "model": { + "$ref": "AAAAAAFmx285KtNAayw=" + }, + "font": "Arial;13;0", + "left": 149, + "top": 193, + "width": 221.05712890625, + "height": 13, + "text": "+detach(Observer observer)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm72yOClrvHYM=", + "_parent": { + "$ref": "AAAAAAFm72yOClrsDhs=" + }, + "model": { + "$ref": "AAAAAAFmx29y59NYPvM=" + }, + "font": "Arial;13;0", + "left": 149, + "top": 208, + "width": 221.05712890625, + "height": 13, + "text": "+updateObservers(String cmd)", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 144, + "top": 173, + "width": 231.05712890625, + "height": 53 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72yOClrwx9o=", + "_parent": { + "$ref": "AAAAAAFm72yOClrkcsU=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -360, + "top": -144, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72yOClrxU3g=", + "_parent": { + "$ref": "AAAAAAFm72yOClrkcsU=" + }, + "model": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -360, + "top": -144, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 144, + "top": 112, + "width": 231.05712890625, + "height": 114, + "nameCompartment": { + "$ref": "AAAAAAFm72yOClrlrlg=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72yOClrqMqE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72yOClrsDhs=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72yOClrwx9o=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72yOClrxU3g=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72zGi1uHmI0=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72zGi1uI5Sw=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uHmI0=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72zGi1uJTwg=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uI5Sw=" + }, + "font": "Arial;13;0", + "left": 629, + "top": 93, + "width": 118.142578125, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72zGi1uKiuk=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uI5Sw=" + }, + "font": "Arial;13;1", + "left": 629, + "top": 108, + "width": 118.142578125, + "height": 13, + "text": "Observer" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72zGi1uLJf4=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uI5Sw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 474, + "top": -451, + "width": 166.892578125, + "height": 13, + "text": "(from Seabed Explorer Craft)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72zGi1uMu8E=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uI5Sw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 474, + "top": -451, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 624, + "top": 88, + "width": 128.142578125, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm72zGi1uJTwg=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72zGi1uKiuk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72zGi1uLJf4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72zGi1uMu8E=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72zGi1uNufQ=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uHmI0=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "font": "Arial;13;0", + "left": 624, + "top": 126, + "width": 128.142578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72zGi1uO4K0=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uHmI0=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFm72zGi1uPTIM=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uO4K0=" + }, + "model": { + "$ref": "AAAAAAFmx2ymhtG8C3M=" + }, + "font": "Arial;13;0", + "left": 629, + "top": 141, + "width": 118.142578125, + "height": 13, + "text": "+update(String cmd)", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 624, + "top": 136, + "width": 128.142578125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72zGi1uQpGU=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uHmI0=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 40, + "top": -120, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72zGi1uRhfo=", + "_parent": { + "$ref": "AAAAAAFm72zGi1uHmI0=" + }, + "model": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 40, + "top": -120, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 624, + "top": 88, + "width": 128.142578125, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAFm72zGi1uI5Sw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72zGi1uNufQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72zGi1uO4K0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72zGi1uQpGU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72zGi1uRhfo=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72/0V1vmi50=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72/0V1vn8gI=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "model": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72/0V1voopw=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vn8gI=" + }, + "font": "Arial;13;0", + "left": 1213, + "top": 133, + "width": 67.16455078125, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/0V1vpE2Y=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vn8gI=" + }, + "font": "Arial;13;1", + "left": 1213, + "top": 148, + "width": 67.16455078125, + "height": 13, + "text": "Equipment" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/0V1vqjjc=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vn8gI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1344, + "top": -656, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/0V1vreYw=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vn8gI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1344, + "top": -656, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1208, + "top": 128, + "width": 77.16455078125, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm72/0V1voopw=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72/0V1vpE2Y=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72/0V1vqjjc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72/0V1vreYw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72/0V1vsRIg=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "model": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + }, + "font": "Arial;13;0", + "left": 1208, + "top": 166, + "width": 77.16455078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72/0V1vtvC8=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "model": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + }, + "font": "Arial;13;0", + "left": 1208, + "top": 176, + "width": 77.16455078125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72/0V1vu1Uk=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "model": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 672, + "top": -328, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72/0WFvvA8M=", + "_parent": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "model": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 672, + "top": -328, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1208, + "top": 128, + "width": 77.16455078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm72/0V1vn8gI=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72/0V1vsRIg=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72/0V1vtvC8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72/0V1vu1Uk=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72/0WFvvA8M=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72/4D1wPD5k=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72/4D1wQiG8=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wPD5k=" + }, + "model": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72/4EFwRNlM=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wQiG8=" + }, + "font": "Arial;13;0", + "left": 1029, + "top": 221, + "width": 134.82421875, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/4EFwSGRs=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wQiG8=" + }, + "font": "Arial;13;1", + "left": 1029, + "top": 236, + "width": 134.82421875, + "height": 13, + "text": "TopographicalMapper" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/4EFwT3Co=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wQiG8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 624, + "top": -480, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/4EFwUe7g=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wQiG8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 624, + "top": -480, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1024, + "top": 216, + "width": 144.82421875, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm72/4EFwRNlM=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72/4EFwSGRs=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72/4EFwT3Co=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72/4EFwUe7g=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72/4EFwVyLo=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wPD5k=" + }, + "model": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + }, + "font": "Arial;13;0", + "left": 1024, + "top": 254, + "width": 144.82421875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72/4EFwWZV8=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wPD5k=" + }, + "model": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + }, + "font": "Arial;13;0", + "left": 1024, + "top": 264, + "width": 144.82421875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72/4EFwXJfc=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wPD5k=" + }, + "model": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 312, + "top": -240, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72/4EFwYG74=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wPD5k=" + }, + "model": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 312, + "top": -240, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1024, + "top": 216, + "width": 144.82421875, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm72/4D1wQiG8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72/4EFwVyLo=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72/4EFwWZV8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72/4EFwXJfc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72/4EFwYG74=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72/6l1w42g0=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72/6llw20SY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72/6l1w5bo8=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w42g0=" + }, + "model": { + "$ref": "AAAAAAFm72/6llw20SY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72/6l1w6dxQ=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w5bo8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 144, + "top": -256, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/6l1w7VYg=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w5bo8=" + }, + "font": "Arial;13;1", + "left": 981, + "top": 335, + "width": 41.919921875, + "height": 13, + "text": "Sonar" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/6l1w8un0=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w5bo8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 144, + "top": -256, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72/6l1w9yuU=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w5bo8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 144, + "top": -256, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 976, + "top": 328, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm72/6l1w6dxQ=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72/6l1w7VYg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72/6l1w8un0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72/6l1w9yuU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72/6l1w+Me4=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w42g0=" + }, + "model": { + "$ref": "AAAAAAFm72/6llw20SY=" + }, + "font": "Arial;13;0", + "left": 976, + "top": 353, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72/6l1w/nQk=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w42g0=" + }, + "model": { + "$ref": "AAAAAAFm72/6llw20SY=" + }, + "font": "Arial;13;0", + "left": 976, + "top": 363, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72/6l1xAIeg=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w42g0=" + }, + "model": { + "$ref": "AAAAAAFm72/6llw20SY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 72, + "top": -128, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72/6l1xBRqE=", + "_parent": { + "$ref": "AAAAAAFm72/6l1w42g0=" + }, + "model": { + "$ref": "AAAAAAFm72/6llw20SY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 72, + "top": -128, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 976, + "top": 328, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm72/6l1w5bo8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72/6l1w+Me4=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72/6l1w/nQk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72/6l1xAIeg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72/6l1xBRqE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm72//m1yKC2M=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm72//m1yI2W0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm72//m1yLvXo=", + "_parent": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "model": { + "$ref": "AAAAAAFm72//m1yI2W0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm72//m1yMqlo=", + "_parent": { + "$ref": "AAAAAAFm72//m1yLvXo=" + }, + "font": "Arial;13;0", + "left": 597, + "top": 709, + "width": 84.51904296875, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72//m1yN1+w=", + "_parent": { + "$ref": "AAAAAAFm72//m1yLvXo=" + }, + "font": "Arial;13;1", + "left": 597, + "top": 724, + "width": 84.51904296875, + "height": 13, + "text": "DataCollector" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72//m1yOrOM=", + "_parent": { + "$ref": "AAAAAAFm72//m1yLvXo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -256, + "top": 288, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm72//m1yPa38=", + "_parent": { + "$ref": "AAAAAAFm72//m1yLvXo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -256, + "top": 288, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 592, + "top": 704, + "width": 94.51904296875, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm72//m1yMqlo=" + }, + "nameLabel": { + "$ref": "AAAAAAFm72//m1yN1+w=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm72//m1yOrOM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm72//m1yPa38=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm72//m1yQ9F0=", + "_parent": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "model": { + "$ref": "AAAAAAFm72//m1yI2W0=" + }, + "font": "Arial;13;0", + "left": 592, + "top": 742, + "width": 94.51904296875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm72//m1yRuAU=", + "_parent": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "model": { + "$ref": "AAAAAAFm72//m1yI2W0=" + }, + "font": "Arial;13;0", + "left": 592, + "top": 752, + "width": 94.51904296875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm72//m1ySJl0=", + "_parent": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "model": { + "$ref": "AAAAAAFm72//m1yI2W0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": 144, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm72//m1yTlh4=", + "_parent": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "model": { + "$ref": "AAAAAAFm72//m1yI2W0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": 144, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 592, + "top": 704, + "width": 94.51904296875, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm72//m1yLvXo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm72//m1yQ9F0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm72//m1yRuAU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm72//m1ySJl0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm72//m1yTlh4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm73ACvFyz6ec=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm73ACvFy0oq4=", + "_parent": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "model": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm73ACvFy121I=", + "_parent": { + "$ref": "AAAAAAFm73ACvFy0oq4=" + }, + "font": "Arial;13;0", + "left": 1421, + "top": 165, + "width": 100.4326171875, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73ACvFy2LwY=", + "_parent": { + "$ref": "AAAAAAFm73ACvFy0oq4=" + }, + "font": "Arial;13;1", + "left": 1421, + "top": 180, + "width": 100.4326171875, + "height": 13, + "text": "MaterialSampler" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73ACvFy3Q9M=", + "_parent": { + "$ref": "AAAAAAFm73ACvFy0oq4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1024, + "top": -800, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73ACvFy4Hdk=", + "_parent": { + "$ref": "AAAAAAFm73ACvFy0oq4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1024, + "top": -800, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1416, + "top": 160, + "width": 110.4326171875, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm73ACvFy121I=" + }, + "nameLabel": { + "$ref": "AAAAAAFm73ACvFy2LwY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm73ACvFy3Q9M=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm73ACvFy4Hdk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm73ACvFy5mCs=", + "_parent": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "model": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + }, + "font": "Arial;13;0", + "left": 1416, + "top": 198, + "width": 110.4326171875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm73ACvFy6Hk4=", + "_parent": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "model": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + }, + "font": "Arial;13;0", + "left": 1416, + "top": 208, + "width": 110.4326171875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm73ACvFy7CKE=", + "_parent": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "model": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 512, + "top": -400, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm73ACvFy8K/E=", + "_parent": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "model": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 512, + "top": -400, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1416, + "top": 160, + "width": 110.4326171875, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm73ACvFy0oq4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm73ACvFy5mCs=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm73ACvFy6Hk4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm73ACvFy7CKE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm73ACvFy8K/E=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm73AFzFzcID4=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm73AFy1zaZVg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm73AFzFzdxV0=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzcID4=" + }, + "model": { + "$ref": "AAAAAAFm73AFy1zaZVg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm73AFzFzem9s=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzdxV0=" + }, + "font": "Arial;13;0", + "left": 1517, + "top": 21, + "width": 94.1484375, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AFzFzfn60=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzdxV0=" + }, + "font": "Arial;13;1", + "left": 1517, + "top": 36, + "width": 94.1484375, + "height": 13, + "text": "WaterReadings" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AFzFzgKCc=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzdxV0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1872, + "top": -1296, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AFzFzh6xk=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzdxV0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1872, + "top": -1296, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1512, + "top": 16, + "width": 104.1484375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm73AFzFzem9s=" + }, + "nameLabel": { + "$ref": "AAAAAAFm73AFzFzfn60=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm73AFzFzgKCc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm73AFzFzh6xk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm73AFzFzitRY=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzcID4=" + }, + "model": { + "$ref": "AAAAAAFm73AFy1zaZVg=" + }, + "font": "Arial;13;0", + "left": 1512, + "top": 54, + "width": 104.1484375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm73AFzFzjiww=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzcID4=" + }, + "model": { + "$ref": "AAAAAAFm73AFy1zaZVg=" + }, + "font": "Arial;13;0", + "left": 1512, + "top": 64, + "width": 104.1484375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm73AFzFzkDjA=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzcID4=" + }, + "model": { + "$ref": "AAAAAAFm73AFy1zaZVg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 936, + "top": -648, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm73AFzFzlOdw=", + "_parent": { + "$ref": "AAAAAAFm73AFzFzcID4=" + }, + "model": { + "$ref": "AAAAAAFm73AFy1zaZVg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 936, + "top": -648, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1512, + "top": 16, + "width": 104.1484375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm73AFzFzdxV0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm73AFzFzitRY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm73AFzFzjiww=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm73AFzFzkDjA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm73AFzFzlOdw=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm73AIp10FxvU=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm73AIp10DSz4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm73AIp10G6xI=", + "_parent": { + "$ref": "AAAAAAFm73AIp10FxvU=" + }, + "model": { + "$ref": "AAAAAAFm73AIp10DSz4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm73AIp10Hitw=", + "_parent": { + "$ref": "AAAAAAFm73AIp10G6xI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 624, + "top": -656, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AIp10IAbo=", + "_parent": { + "$ref": "AAAAAAFm73AIp10G6xI=" + }, + "font": "Arial;13;1", + "left": 1061, + "top": 335, + "width": 49.14990234375, + "height": 13, + "text": "Laser" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AIp10J3Lo=", + "_parent": { + "$ref": "AAAAAAFm73AIp10G6xI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 624, + "top": -656, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AIp10KujA=", + "_parent": { + "$ref": "AAAAAAFm73AIp10G6xI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 624, + "top": -656, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1056, + "top": 328, + "width": 59.14990234375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm73AIp10Hitw=" + }, + "nameLabel": { + "$ref": "AAAAAAFm73AIp10IAbo=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm73AIp10J3Lo=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm73AIp10KujA=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm73AIp10LWlE=", + "_parent": { + "$ref": "AAAAAAFm73AIp10FxvU=" + }, + "model": { + "$ref": "AAAAAAFm73AIp10DSz4=" + }, + "font": "Arial;13;0", + "left": 1056, + "top": 353, + "width": 59.14990234375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm73AIp10Mcyw=", + "_parent": { + "$ref": "AAAAAAFm73AIp10FxvU=" + }, + "model": { + "$ref": "AAAAAAFm73AIp10DSz4=" + }, + "font": "Arial;13;0", + "left": 1056, + "top": 363, + "width": 59.14990234375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm73AIp10Nf0E=", + "_parent": { + "$ref": "AAAAAAFm73AIp10FxvU=" + }, + "model": { + "$ref": "AAAAAAFm73AIp10DSz4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 312, + "top": -328, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm73AIp10Og+Q=", + "_parent": { + "$ref": "AAAAAAFm73AIp10FxvU=" + }, + "model": { + "$ref": "AAAAAAFm73AIp10DSz4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 312, + "top": -328, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1056, + "top": 328, + "width": 59.14990234375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm73AIp10G6xI=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm73AIp10LWlE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm73AIp10Mcyw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm73AIp10Nf0E=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm73AIp10Og+Q=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm73ALt10uOTo=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm73ALt10sQ1s=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm73ALt10vjqk=", + "_parent": { + "$ref": "AAAAAAFm73ALt10uOTo=" + }, + "model": { + "$ref": "AAAAAAFm73ALt10sQ1s=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm73ALt10wnvs=", + "_parent": { + "$ref": "AAAAAAFm73ALt10vjqk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1408, + "top": -1120, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73ALt10xKKk=", + "_parent": { + "$ref": "AAAAAAFm73ALt10vjqk=" + }, + "font": "Arial;13;1", + "left": 1629, + "top": 103, + "width": 80.89453125, + "height": 13, + "text": "PhotoSensor" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73ALt10ynqE=", + "_parent": { + "$ref": "AAAAAAFm73ALt10vjqk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1408, + "top": -1120, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73ALt10zoxA=", + "_parent": { + "$ref": "AAAAAAFm73ALt10vjqk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1408, + "top": -1120, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1624, + "top": 96, + "width": 90.89453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm73ALt10wnvs=" + }, + "nameLabel": { + "$ref": "AAAAAAFm73ALt10xKKk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm73ALt10ynqE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm73ALt10zoxA=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm73ALt100oNQ=", + "_parent": { + "$ref": "AAAAAAFm73ALt10uOTo=" + }, + "model": { + "$ref": "AAAAAAFm73ALt10sQ1s=" + }, + "font": "Arial;13;0", + "left": 1624, + "top": 121, + "width": 90.89453125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm73ALt101fyI=", + "_parent": { + "$ref": "AAAAAAFm73ALt10uOTo=" + }, + "model": { + "$ref": "AAAAAAFm73ALt10sQ1s=" + }, + "font": "Arial;13;0", + "left": 1624, + "top": 131, + "width": 90.89453125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm73ALt102HJ8=", + "_parent": { + "$ref": "AAAAAAFm73ALt10uOTo=" + }, + "model": { + "$ref": "AAAAAAFm73ALt10sQ1s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 704, + "top": -560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm73ALt103PVc=", + "_parent": { + "$ref": "AAAAAAFm73ALt10uOTo=" + }, + "model": { + "$ref": "AAAAAAFm73ALt10sQ1s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 704, + "top": -560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1624, + "top": 96, + "width": 90.89453125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm73ALt10vjqk=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm73ALt100oNQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm73ALt101fyI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm73ALt102HJ8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm73ALt103PVc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm73AlK11Xt/k=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm73AlK11VIhU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm73AlK11YXzs=", + "_parent": { + "$ref": "AAAAAAFm73AlK11Xt/k=" + }, + "model": { + "$ref": "AAAAAAFm73AlK11VIhU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm73AlK11Z6Dc=", + "_parent": { + "$ref": "AAAAAAFm73AlK11YXzs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1728, + "top": -864, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AlK11afw0=", + "_parent": { + "$ref": "AAAAAAFm73AlK11YXzs=" + }, + "font": "Arial;13;1", + "left": 1445, + "top": 319, + "width": 109.103515625, + "height": 13, + "text": "ChemicalScanner" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AlK11bt4Q=", + "_parent": { + "$ref": "AAAAAAFm73AlK11YXzs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1728, + "top": -864, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm73AlK11cCgc=", + "_parent": { + "$ref": "AAAAAAFm73AlK11YXzs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1728, + "top": -864, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1440, + "top": 312, + "width": 119.103515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm73AlK11Z6Dc=" + }, + "nameLabel": { + "$ref": "AAAAAAFm73AlK11afw0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm73AlK11bt4Q=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm73AlK11cCgc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm73AlK11dlqs=", + "_parent": { + "$ref": "AAAAAAFm73AlK11Xt/k=" + }, + "model": { + "$ref": "AAAAAAFm73AlK11VIhU=" + }, + "font": "Arial;13;0", + "left": 1440, + "top": 337, + "width": 119.103515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm73AlK11eVso=", + "_parent": { + "$ref": "AAAAAAFm73AlK11Xt/k=" + }, + "model": { + "$ref": "AAAAAAFm73AlK11VIhU=" + }, + "font": "Arial;13;0", + "left": 1440, + "top": 347, + "width": 119.103515625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm73AlK11f/9k=", + "_parent": { + "$ref": "AAAAAAFm73AlK11Xt/k=" + }, + "model": { + "$ref": "AAAAAAFm73AlK11VIhU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": -432, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm73AlK11gUx0=", + "_parent": { + "$ref": "AAAAAAFm73AlK11Xt/k=" + }, + "model": { + "$ref": "AAAAAAFm73AlK11VIhU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": -432, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1440, + "top": 312, + "width": 119.103515625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm73AlK11YXzs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm73AlK11dlqs=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm73AlK11eVso=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm73AlK11f/9k=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm73AlK11gUx0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm734QJl2IaKU=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm734QJl2Jpd4=", + "_parent": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "model": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm734QJl2KpUA=", + "_parent": { + "$ref": "AAAAAAFm734QJl2Jpd4=" + }, + "font": "Arial;13;0", + "left": 749, + "top": 229, + "width": 78.025390625, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm734QJl2Lzp0=", + "_parent": { + "$ref": "AAAAAAFm734QJl2Jpd4=" + }, + "font": "Arial;13;1", + "left": 749, + "top": 244, + "width": 78.025390625, + "height": 13, + "text": "Submersible" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm734QJl2MoT4=", + "_parent": { + "$ref": "AAAAAAFm734QJl2Jpd4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -640, + "top": -816, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm734QJl2N1Yc=", + "_parent": { + "$ref": "AAAAAAFm734QJl2Jpd4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -640, + "top": -816, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 744, + "top": 224, + "width": 88.025390625, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm734QJl2KpUA=" + }, + "nameLabel": { + "$ref": "AAAAAAFm734QJl2Lzp0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm734QJl2MoT4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm734QJl2N1Yc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm734QJl2OsDE=", + "_parent": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "model": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "font": "Arial;13;0", + "left": 744, + "top": 262, + "width": 88.025390625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm734QJl2PMDU=", + "_parent": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "model": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "font": "Arial;13;0", + "left": 744, + "top": 272, + "width": 88.025390625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm734QJl2QNKE=", + "_parent": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "model": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -320, + "top": -408, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm734QJl2Rv7o=", + "_parent": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "model": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -320, + "top": -408, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 744, + "top": 224, + "width": 88.025390625, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm734QJl2Jpd4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm734QJl2OsDE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm734QJl2PMDU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm734QJl2QNKE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm734QJl2Rv7o=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm736wtV3K52c=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm736wtF3Ithk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm736wtV3LJ0c=", + "_parent": { + "$ref": "AAAAAAFm736wtV3K52c=" + }, + "model": { + "$ref": "AAAAAAFm736wtF3Ithk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 728, + "top": 194, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm736wtV3K52c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm736wtV3M4/w=", + "_parent": { + "$ref": "AAAAAAFm736wtV3K52c=" + }, + "model": { + "$ref": "AAAAAAFm736wtF3Ithk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 716, + "top": 203, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm736wtV3K52c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm736wtV3NuKw=", + "_parent": { + "$ref": "AAAAAAFm736wtV3K52c=" + }, + "model": { + "$ref": "AAAAAAFm736wtF3Ithk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 751, + "top": 175, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm736wtV3K52c=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72zGi1uHmI0=" + }, + "tail": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "lineStyle": 1, + "points": "765:223;715:159", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm736wtV3LJ0c=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm736wtV3M4/w=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm736wtV3NuKw=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm737N6V3dMjo=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm737N6V3bncM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm737N6V3euoQ=", + "_parent": { + "$ref": "AAAAAAFm737N6V3dMjo=" + }, + "model": { + "$ref": "AAAAAAFm737N6V3bncM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 248, + "top": 254, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm737N6V3dMjo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm737N6V3fIHw=", + "_parent": { + "$ref": "AAAAAAFm737N6V3dMjo=" + }, + "model": { + "$ref": "AAAAAAFm737N6V3bncM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 233, + "top": 254, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm737N6V3dMjo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm737N6V3gHDE=", + "_parent": { + "$ref": "AAAAAAFm737N6V3dMjo=" + }, + "model": { + "$ref": "AAAAAAFm737N6V3bncM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 277, + "top": 253, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm737N6V3dMjo=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72yOClrkcsU=" + }, + "tail": { + "$ref": "AAAAAAFm72s8c1m+wCs=" + }, + "lineStyle": 1, + "points": "265:295;262:226", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm737N6V3euoQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm737N6V3fIHw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm737N6V3gHDE=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm7386NF3wbpI=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm7386NF3u/9k=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm7386NF3xQ5M=", + "_parent": { + "$ref": "AAAAAAFm7386NF3wbpI=" + }, + "model": { + "$ref": "AAAAAAFm7386NF3u/9k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 805, + "top": 178, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm7386NF3wbpI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm7386NF3ymzY=", + "_parent": { + "$ref": "AAAAAAFm7386NF3wbpI=" + }, + "model": { + "$ref": "AAAAAAFm7386NF3u/9k=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 792, + "top": 171, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm7386NF3wbpI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm7386NF3zAGI=", + "_parent": { + "$ref": "AAAAAAFm7386NF3wbpI=" + }, + "model": { + "$ref": "AAAAAAFm7386NF3u/9k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 193, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm7386NF3wbpI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72tC1FoQs4M=" + }, + "tail": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "lineStyle": 1, + "points": "803:223;836:162", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm7386NF3xQ5M=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm7386NF3ymzY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm7386NF3zAGI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFm739r5l4WgXM=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4Slh4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r5l4XS2Q=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4Slh4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 497, + "top": 122, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r5l4YZQc=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4Slh4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 495, + "top": 107, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r5l4ZzXY=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4Slh4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 500, + "top": 151, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r5l4ant8=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4TmmU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 399, + "top": 132, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r5l4bcsA=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4TmmU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 400, + "top": 118, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r5l4cD3w=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4TmmU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 397, + "top": 160, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r5l4dFs0=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4UjTI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 595, + "top": 111, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r5l4eX1Y=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4UjTI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 591, + "top": 98, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm739r514fToo=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4UjTI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 602, + "top": 138, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFm739r5l4WgXM=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFm739r514gdRs=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4TmmU=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFm739r514hU4g=", + "_parent": { + "$ref": "AAAAAAFm739r5l4WgXM=" + }, + "model": { + "$ref": "AAAAAAFm739r5V4UjTI=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72zGi1uHmI0=" + }, + "tail": { + "$ref": "AAAAAAFm72yOClrkcsU=" + }, + "lineStyle": 1, + "points": "375:156;623:130", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm739r5l4XS2Q=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm739r5l4YZQc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm739r5l4ZzXY=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFm739r5l4ant8=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFm739r5l4bcsA=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFm739r5l4cD3w=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFm739r5l4dFs0=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFm739r5l4eX1Y=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFm739r514fToo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFm739r514gdRs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFm739r514hU4g=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm73/vnV6TWUk=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm73/vm16ROKA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/vnV6Ufmk=", + "_parent": { + "$ref": "AAAAAAFm73/vnV6TWUk=" + }, + "model": { + "$ref": "AAAAAAFm73/vm16ROKA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 682, + "top": 303, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm73/vnV6TWUk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/vnV6VlXA=", + "_parent": { + "$ref": "AAAAAAFm73/vnV6TWUk=" + }, + "model": { + "$ref": "AAAAAAFm73/vm16ROKA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 673, + "top": 291, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm73/vnV6TWUk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/vnV6Wcx8=", + "_parent": { + "$ref": "AAAAAAFm73/vnV6TWUk=" + }, + "model": { + "$ref": "AAAAAAFm73/vm16ROKA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 699, + "top": 328, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm73/vnV6TWUk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "tail": { + "$ref": "AAAAAAFm72s/8Vnn8Gk=" + }, + "lineStyle": 1, + "points": "636:362;746:282", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm73/vnV6Ufmk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm73/vnV6VlXA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm73/vnV6Wcx8=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm73/zZ16zr1c=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm73/zZl6xwqw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/zZ160u0o=", + "_parent": { + "$ref": "AAAAAAFm73/zZ16zr1c=" + }, + "model": { + "$ref": "AAAAAAFm73/zZl6xwqw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 767, + "top": 308, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm73/zZ16zr1c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/zZ161WSk=", + "_parent": { + "$ref": "AAAAAAFm73/zZ16zr1c=" + }, + "model": { + "$ref": "AAAAAAFm73/zZl6xwqw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 752, + "top": 307, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm73/zZ16zr1c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/zZ162e7Q=", + "_parent": { + "$ref": "AAAAAAFm73/zZ16zr1c=" + }, + "model": { + "$ref": "AAAAAAFm73/zZl6xwqw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 796, + "top": 311, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm73/zZ16zr1c=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "tail": { + "$ref": "AAAAAAFm72tOW1pCjtU=" + }, + "lineStyle": 1, + "points": "779:351;785:282", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm73/zZ160u0o=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm73/zZ161WSk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm73/zZ162e7Q=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm73/4FV7T77U=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm73/4FF7RslI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/4FV7UIm4=", + "_parent": { + "$ref": "AAAAAAFm73/4FV7T77U=" + }, + "model": { + "$ref": "AAAAAAFm73/4FF7RslI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 829, + "top": 319, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm73/4FV7T77U=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/4FV7V914=", + "_parent": { + "$ref": "AAAAAAFm73/4FV7T77U=" + }, + "model": { + "$ref": "AAAAAAFm73/4FF7RslI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 818, + "top": 329, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm73/4FV7T77U=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm73/4FV7WivY=", + "_parent": { + "$ref": "AAAAAAFm73/4FV7T77U=" + }, + "model": { + "$ref": "AAAAAAFm73/4FF7RslI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 852, + "top": 300, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm73/4FV7T77U=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "tail": { + "$ref": "AAAAAAFm72tTSVpr9wg=" + }, + "lineStyle": 1, + "points": "870:351;812:282", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm73/4FV7UIm4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm73/4FV7V914=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm73/4FV7WivY=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74HkwV8y5bU=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74HkwV8w6dk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74HkwV8zAls=", + "_parent": { + "$ref": "AAAAAAFm74HkwV8y5bU=" + }, + "model": { + "$ref": "AAAAAAFm74HkwV8w6dk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1022, + "top": 211, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74HkwV8y5bU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74HkwV80lDk=", + "_parent": { + "$ref": "AAAAAAFm74HkwV8y5bU=" + }, + "model": { + "$ref": "AAAAAAFm74HkwV8w6dk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1025, + "top": 226, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74HkwV8y5bU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74HkwV81Csk=", + "_parent": { + "$ref": "AAAAAAFm74HkwV8y5bU=" + }, + "model": { + "$ref": "AAAAAAFm74HkwV8w6dk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1015, + "top": 182, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74HkwV8y5bU=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm734QJl2IaKU=" + }, + "tail": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "lineStyle": 1, + "points": "1207:164;832:243", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74HkwV8zAls=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74HkwV80lDk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74HkwV81Csk=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74JnOF9yBgM=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74JnOF9wM8U=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74JnOF9zS1c=", + "_parent": { + "$ref": "AAAAAAFm74JnOF9yBgM=" + }, + "model": { + "$ref": "AAAAAAFm74JnOF9wM8U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 178, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74JnOF9yBgM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74JnOF90gCM=", + "_parent": { + "$ref": "AAAAAAFm74JnOF9yBgM=" + }, + "model": { + "$ref": "AAAAAAFm74JnOF9wM8U=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1160, + "top": 165, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74JnOF9yBgM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74JnOF91S/I=", + "_parent": { + "$ref": "AAAAAAFm74JnOF9yBgM=" + }, + "model": { + "$ref": "AAAAAAFm74JnOF9wM8U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1183, + "top": 203, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74JnOF9yBgM=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "tail": { + "$ref": "AAAAAAFm72/4D1wPD5k=" + }, + "lineStyle": 1, + "points": "1145:215;1207:179", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74JnOF9zS1c=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74JnOF90gCM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74JnOF91S/I=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74Kwdl+yhQg=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74Kwdl+wCXs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Kwdl+zseg=", + "_parent": { + "$ref": "AAAAAAFm74Kwdl+yhQg=" + }, + "model": { + "$ref": "AAAAAAFm74Kwdl+wCXs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1032, + "top": 283, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74Kwdl+yhQg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Kwdl+05zE=", + "_parent": { + "$ref": "AAAAAAFm74Kwdl+yhQg=" + }, + "model": { + "$ref": "AAAAAAFm74Kwdl+wCXs=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1021, + "top": 273, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74Kwdl+yhQg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Kwd1+1k5w=", + "_parent": { + "$ref": "AAAAAAFm74Kwdl+yhQg=" + }, + "model": { + "$ref": "AAAAAAFm74Kwdl+wCXs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1055, + "top": 304, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74Kwdl+yhQg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72/4D1wPD5k=" + }, + "tail": { + "$ref": "AAAAAAFm72/6l1w42g0=" + }, + "lineStyle": 1, + "points": "1021:327;1068:274", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74Kwdl+zseg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74Kwdl+05zE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74Kwd1+1k5w=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74TZ8mJNpYQ=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74TZ8mJLNLM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74TZ8mJO1XQ=", + "_parent": { + "$ref": "AAAAAAFm74TZ8mJNpYQ=" + }, + "model": { + "$ref": "AAAAAAFm74TZ8mJLNLM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1347, + "top": 179, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74TZ8mJNpYQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74TZ8mJPc2w=", + "_parent": { + "$ref": "AAAAAAFm74TZ8mJNpYQ=" + }, + "model": { + "$ref": "AAAAAAFm74TZ8mJLNLM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1345, + "top": 194, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74TZ8mJNpYQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74TZ8mJQ8uM=", + "_parent": { + "$ref": "AAAAAAFm74TZ8mJNpYQ=" + }, + "model": { + "$ref": "AAAAAAFm74TZ8mJLNLM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1352, + "top": 150, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74TZ8mJNpYQ=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "tail": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "lineStyle": 1, + "points": "1415:180;1285:162", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74TZ8mJO1XQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74TZ8mJPc2w=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74TZ8mJQ8uM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74Vpj2MMwA8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74Vpj2MKx4c=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Vpj2MN+ME=", + "_parent": { + "$ref": "AAAAAAFm74Vpj2MMwA8=" + }, + "model": { + "$ref": "AAAAAAFm74Vpj2MKx4c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1403, + "top": 110, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74Vpj2MMwA8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Vpj2MOKGE=", + "_parent": { + "$ref": "AAAAAAFm74Vpj2MMwA8=" + }, + "model": { + "$ref": "AAAAAAFm74Vpj2MKx4c=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1408, + "top": 124, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74Vpj2MMwA8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Vpj2MP9ro=", + "_parent": { + "$ref": "AAAAAAFm74Vpj2MMwA8=" + }, + "model": { + "$ref": "AAAAAAFm74Vpj2MKx4c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1392, + "top": 81, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74Vpj2MMwA8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "tail": { + "$ref": "AAAAAAFm73AFzFzcID4=" + }, + "lineStyle": 1, + "points": "1511:62;1285:142", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74Vpj2MN+ME=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74Vpj2MOKGE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74Vpj2MP9ro=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74Yb0GRGQIA=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74YbzmREH/U=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Yb0GRHEWU=", + "_parent": { + "$ref": "AAAAAAFm74Yb0GRGQIA=" + }, + "model": { + "$ref": "AAAAAAFm74YbzmREH/U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1455, + "top": 145, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74Yb0GRGQIA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Yb0GRIQjY=", + "_parent": { + "$ref": "AAAAAAFm74Yb0GRGQIA=" + }, + "model": { + "$ref": "AAAAAAFm74YbzmREH/U=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1456, + "top": 160, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74Yb0GRGQIA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74Yb0GRJ9Q4=", + "_parent": { + "$ref": "AAAAAAFm74Yb0GRGQIA=" + }, + "model": { + "$ref": "AAAAAAFm74YbzmREH/U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1452, + "top": 116, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74Yb0GRGQIA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72/0V1vmi50=" + }, + "tail": { + "$ref": "AAAAAAFm73ALt10uOTo=" + }, + "lineStyle": 1, + "points": "1623:122;1285:152", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74Yb0GRHEWU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74Yb0GRIQjY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74Yb0GRJ9Q4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74af7WVFd3I=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74af7GVDnfM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74af7WVGVDo=", + "_parent": { + "$ref": "AAAAAAFm74af7WVFd3I=" + }, + "model": { + "$ref": "AAAAAAFm74af7GVDnfM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1074, + "top": 292, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74af7WVFd3I=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74af7WVHdtM=", + "_parent": { + "$ref": "AAAAAAFm74af7WVFd3I=" + }, + "model": { + "$ref": "AAAAAAFm74af7GVDnfM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1059, + "top": 290, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74af7WVFd3I=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74af7WVIzcg=", + "_parent": { + "$ref": "AAAAAAFm74af7WVFd3I=" + }, + "model": { + "$ref": "AAAAAAFm74af7GVDnfM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1103, + "top": 295, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74af7WVFd3I=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72/4D1wPD5k=" + }, + "tail": { + "$ref": "AAAAAAFm73AIp10FxvU=" + }, + "lineStyle": 1, + "points": "1087:327;1092:274", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74af7WVGVDo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74af7WVHdtM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74af7WVIzcg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm74darGWtkRs=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74daq2WryII=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm74darGWu01s=", + "_parent": { + "$ref": "AAAAAAFm74darGWtkRs=" + }, + "model": { + "$ref": "AAAAAAFm74daq2WryII=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm74darGWvPdg=", + "_parent": { + "$ref": "AAAAAAFm74darGWu01s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": -192, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm74darGWwx50=", + "_parent": { + "$ref": "AAAAAAFm74darGWu01s=" + }, + "font": "Arial;13;1", + "left": 1581, + "top": 287, + "width": 104.00634765625, + "height": 13, + "text": "HotFluidScanner" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm74darGWx9Uw=", + "_parent": { + "$ref": "AAAAAAFm74darGWu01s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": -192, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm74darGWyAH8=", + "_parent": { + "$ref": "AAAAAAFm74darGWu01s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": -192, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1576, + "top": 280, + "width": 114.00634765625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm74darGWvPdg=" + }, + "nameLabel": { + "$ref": "AAAAAAFm74darGWwx50=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm74darGWx9Uw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74darGWyAH8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm74darGWzhUo=", + "_parent": { + "$ref": "AAAAAAFm74darGWtkRs=" + }, + "model": { + "$ref": "AAAAAAFm74daq2WryII=" + }, + "font": "Arial;13;0", + "left": 1576, + "top": 305, + "width": 114.00634765625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm74darGW0SdI=", + "_parent": { + "$ref": "AAAAAAFm74darGWtkRs=" + }, + "model": { + "$ref": "AAAAAAFm74daq2WryII=" + }, + "font": "Arial;13;0", + "left": 1576, + "top": 315, + "width": 114.00634765625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm74darGW1ex4=", + "_parent": { + "$ref": "AAAAAAFm74darGWtkRs=" + }, + "model": { + "$ref": "AAAAAAFm74daq2WryII=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 288, + "top": -96, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm74darGW2MkE=", + "_parent": { + "$ref": "AAAAAAFm74darGWtkRs=" + }, + "model": { + "$ref": "AAAAAAFm74daq2WryII=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 288, + "top": -96, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1576, + "top": 280, + "width": 114.00634765625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm74darGWu01s=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm74darGWzhUo=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm74darGW0SdI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm74darGW1ex4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm74darGW2MkE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm74dd4GXlJi8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74dd4GXjo7o=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm74dd4GXmHYQ=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXlJi8=" + }, + "model": { + "$ref": "AAAAAAFm74dd4GXjo7o=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm74dd4GXn5Vs=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXmHYQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": -368, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm74dd4GXoOvk=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXmHYQ=" + }, + "font": "Arial;13;1", + "left": 1645, + "top": 191, + "width": 98.95361328125, + "height": 13, + "text": "RockCoringDrill" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm74dd4WXpHW4=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXmHYQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": -368, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm74dd4WXqL9c=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXmHYQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": -368, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1640, + "top": 184, + "width": 108.95361328125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm74dd4GXn5Vs=" + }, + "nameLabel": { + "$ref": "AAAAAAFm74dd4GXoOvk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm74dd4WXpHW4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74dd4WXqL9c=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm74dd4WXr9t8=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXlJi8=" + }, + "model": { + "$ref": "AAAAAAFm74dd4GXjo7o=" + }, + "font": "Arial;13;0", + "left": 1640, + "top": 209, + "width": 108.95361328125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm74dd4WXsDms=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXlJi8=" + }, + "model": { + "$ref": "AAAAAAFm74dd4GXjo7o=" + }, + "font": "Arial;13;0", + "left": 1640, + "top": 219, + "width": 108.95361328125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm74dd4WXtghc=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXlJi8=" + }, + "model": { + "$ref": "AAAAAAFm74dd4GXjo7o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": -184, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm74dd4WXuSZA=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXlJi8=" + }, + "model": { + "$ref": "AAAAAAFm74dd4GXjo7o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": -184, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1640, + "top": 184, + "width": 108.95361328125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm74dd4GXmHYQ=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm74dd4WXr9t8=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm74dd4WXsDms=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm74dd4WXtghc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm74dd4WXuSZA=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74e9smZXuCI=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74e9sWZV6Dw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74e9smZY5l0=", + "_parent": { + "$ref": "AAAAAAFm74e9smZXuCI=" + }, + "model": { + "$ref": "AAAAAAFm74e9sWZV6Dw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1470, + "top": 260, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74e9smZXuCI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74e9smZZUME=", + "_parent": { + "$ref": "AAAAAAFm74e9smZXuCI=" + }, + "model": { + "$ref": "AAAAAAFm74e9sWZV6Dw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1455, + "top": 263, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74e9smZXuCI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74e9smZaq/o=", + "_parent": { + "$ref": "AAAAAAFm74e9smZXuCI=" + }, + "model": { + "$ref": "AAAAAAFm74e9sWZV6Dw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1499, + "top": 255, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74e9smZXuCI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "tail": { + "$ref": "AAAAAAFm73AlK11Xt/k=" + }, + "lineStyle": 1, + "points": "1494:311;1476:218", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74e9smZY5l0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74e9smZZUME=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74e9smZaq/o=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74fI9GZ3YlY=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74fI9GZ1z64=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74fI9GZ4J/M=", + "_parent": { + "$ref": "AAAAAAFm74fI9GZ3YlY=" + }, + "model": { + "$ref": "AAAAAAFm74fI9GZ1z64=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1547, + "top": 254, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74fI9GZ3YlY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74fI9GZ57cs=", + "_parent": { + "$ref": "AAAAAAFm74fI9GZ3YlY=" + }, + "model": { + "$ref": "AAAAAAFm74fI9GZ1z64=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1538, + "top": 266, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74fI9GZ3YlY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74fI9GZ63Qs=", + "_parent": { + "$ref": "AAAAAAFm74fI9GZ3YlY=" + }, + "model": { + "$ref": "AAAAAAFm74fI9GZ1z64=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1564, + "top": 229, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74fI9GZ3YlY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "tail": { + "$ref": "AAAAAAFm74darGWtkRs=" + }, + "lineStyle": 1, + "points": "1599:279;1513:218", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74fI9GZ4J/M=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74fI9GZ57cs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74fI9GZ63Qs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm74fNV2aXteI=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm74fNV2aV8KQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74fNV2aYvYs=", + "_parent": { + "$ref": "AAAAAAFm74fNV2aXteI=" + }, + "model": { + "$ref": "AAAAAAFm74fNV2aV8KQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1580, + "top": 205, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74fNV2aXteI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74fNV2aZkHs=", + "_parent": { + "$ref": "AAAAAAFm74fNV2aXteI=" + }, + "model": { + "$ref": "AAAAAAFm74fNV2aV8KQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1579, + "top": 220, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm74fNV2aXteI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm74fNV2aaeoA=", + "_parent": { + "$ref": "AAAAAAFm74fNV2aXteI=" + }, + "model": { + "$ref": "AAAAAAFm74fNV2aV8KQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1583, + "top": 176, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm74fNV2aXteI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm73ACvFyz6ec=" + }, + "tail": { + "$ref": "AAAAAAFm74dd4GXlJi8=" + }, + "lineStyle": 1, + "points": "1639:202;1526:193", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm74fNV2aYvYs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm74fNV2aZkHs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm74fNV2aaeoA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DOO1qp6yEI=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DOO1qp7UdI=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "model": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOO1qp8kgI=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp7UdI=" + }, + "font": "Arial;13;0", + "left": 1349, + "top": 701, + "width": 65.04443359375, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOO1qp9V10=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp7UdI=" + }, + "font": "Arial;13;1", + "left": 1349, + "top": 716, + "width": 65.04443359375, + "height": 13, + "text": "Data" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOO1qp+KM0=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp7UdI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2544, + "top": 240, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOO1qp/AhY=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp7UdI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2544, + "top": 240, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1344, + "top": 696, + "width": 75.04443359375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DOO1qp8kgI=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DOO1qp9V10=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DOO1qp+KM0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DOO1qp/AhY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DOO1qqALig=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "model": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + }, + "font": "Arial;13;0", + "left": 1344, + "top": 734, + "width": 75.04443359375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DOO1qqBH5s=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "model": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + }, + "font": "Arial;13;0", + "left": 1344, + "top": 744, + "width": 75.04443359375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DOO1qqCiKQ=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "model": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1272, + "top": 120, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DOO1qqDG5A=", + "_parent": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "model": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1272, + "top": 120, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1344, + "top": 696, + "width": 75.04443359375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm8DOO1qp7UdI=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DOO1qqALig=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DOO1qqBH5s=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DOO1qqCiKQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DOO1qqDG5A=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DOUC6qyBkE=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DOUCqqwyis=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DOUC6qzn9o=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qyBkE=" + }, + "model": { + "$ref": "AAAAAAFm8DOUCqqwyis=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOUC6q0I7k=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qzn9o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2944, + "top": 448, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOUC6q1JiM=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qzn9o=" + }, + "font": "Arial;13;1", + "left": 1765, + "top": 815, + "width": 163.96630859375, + "height": 13, + "text": "IndexOfRefractionReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOUC6q2720=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qzn9o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2944, + "top": 448, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOUC6q3jZ0=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qzn9o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2944, + "top": 448, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1760, + "top": 808, + "width": 173.96630859375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DOUC6q0I7k=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DOUC6q1JiM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DOUC6q2720=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DOUC6q3jZ0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DOUC6q4Ry0=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qyBkE=" + }, + "model": { + "$ref": "AAAAAAFm8DOUCqqwyis=" + }, + "font": "Arial;13;0", + "left": 1760, + "top": 833, + "width": 173.96630859375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DOUC6q5Rq0=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qyBkE=" + }, + "model": { + "$ref": "AAAAAAFm8DOUCqqwyis=" + }, + "font": "Arial;13;0", + "left": 1760, + "top": 843, + "width": 173.96630859375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DOUC6q6PHU=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qyBkE=" + }, + "model": { + "$ref": "AAAAAAFm8DOUCqqwyis=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1472, + "top": 224, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DOUC6q7tFw=", + "_parent": { + "$ref": "AAAAAAFm8DOUC6qyBkE=" + }, + "model": { + "$ref": "AAAAAAFm8DOUCqqwyis=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1472, + "top": 224, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1760, + "top": 808, + "width": 173.96630859375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DOUC6qzn9o=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DOUC6q4Ry0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DOUC6q5Rq0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DOUC6q6PHU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DOUC6q7tFw=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DOYtarqbf8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DOYtaroWEs=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DOYtarrgTg=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarqbf8=" + }, + "model": { + "$ref": "AAAAAAFm8DOYtaroWEs=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOYtarsFAY=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarrgTg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2368, + "top": 592, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOYtartXws=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarrgTg=" + }, + "font": "Arial;13;1", + "left": 1245, + "top": 975, + "width": 132.17724609375, + "height": 13, + "text": "PhotoSensorReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOYtarudSc=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarrgTg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2368, + "top": 592, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOYtqrvIfo=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarrgTg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2368, + "top": 592, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1240, + "top": 968, + "width": 142.17724609375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DOYtarsFAY=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DOYtartXws=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DOYtarudSc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DOYtqrvIfo=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DOYtqrwh2A=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarqbf8=" + }, + "model": { + "$ref": "AAAAAAFm8DOYtaroWEs=" + }, + "font": "Arial;13;0", + "left": 1240, + "top": 993, + "width": 142.17724609375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DOYtqrx2SY=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarqbf8=" + }, + "model": { + "$ref": "AAAAAAFm8DOYtaroWEs=" + }, + "font": "Arial;13;0", + "left": 1240, + "top": 1003, + "width": 142.17724609375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DOYtqryrV8=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarqbf8=" + }, + "model": { + "$ref": "AAAAAAFm8DOYtaroWEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 296, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DOYtqrzRlU=", + "_parent": { + "$ref": "AAAAAAFm8DOYtarqbf8=" + }, + "model": { + "$ref": "AAAAAAFm8DOYtaroWEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 296, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1240, + "top": 968, + "width": 142.17724609375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DOYtarrgTg=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DOYtqrwh2A=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DOYtqrx2SY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DOYtqryrV8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DOYtqrzRlU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DOc1qsixN4=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DOc1qsjzv0=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "model": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOc1qskseI=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsjzv0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2544, + "top": 240, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOc1qslnrs=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsjzv0=" + }, + "font": "Arial;13;1", + "left": 1557, + "top": 807, + "width": 86.91845703125, + "height": 13, + "text": "WaterReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOc1qsmO1U=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsjzv0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2544, + "top": 240, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOc1qsnFHc=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsjzv0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2544, + "top": 240, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1552, + "top": 800, + "width": 96.91845703125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DOc1qskseI=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DOc1qslnrs=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DOc1qsmO1U=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DOc1qsnFHc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DOc1qsokiU=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "model": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + }, + "font": "Arial;13;0", + "left": 1552, + "top": 825, + "width": 96.91845703125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DOc1qsp280=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "model": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + }, + "font": "Arial;13;0", + "left": 1552, + "top": 835, + "width": 96.91845703125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DOc1qsqSiQ=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "model": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1272, + "top": 120, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DOc1qsrHJg=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "model": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1272, + "top": 120, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1552, + "top": 800, + "width": 96.91845703125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DOc1qsjzv0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DOc1qsokiU=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DOc1qsp280=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DOc1qsqSiQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DOc1qsrHJg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DOjp6taMb8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DOjp6tYmAY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DOjp6tbFwA=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6taMb8=" + }, + "model": { + "$ref": "AAAAAAFm8DOjp6tYmAY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOjp6tcE6Y=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6tbFwA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2544, + "top": 320, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOjp6tdX40=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6tbFwA=" + }, + "font": "Arial;13;1", + "left": 1797, + "top": 743, + "width": 68.61181640625, + "height": 13, + "text": "pHReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOjqKteDQU=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6tbFwA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2544, + "top": 320, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOjqKtfm/0=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6tbFwA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2544, + "top": 320, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1792, + "top": 736, + "width": 78.61181640625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DOjp6tcE6Y=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DOjp6tdX40=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DOjqKteDQU=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DOjqKtfm/0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DOjqKtg1tY=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6taMb8=" + }, + "model": { + "$ref": "AAAAAAFm8DOjp6tYmAY=" + }, + "font": "Arial;13;0", + "left": 1792, + "top": 761, + "width": 78.61181640625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DOjqKthkAc=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6taMb8=" + }, + "model": { + "$ref": "AAAAAAFm8DOjp6tYmAY=" + }, + "font": "Arial;13;0", + "left": 1792, + "top": 771, + "width": 78.61181640625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DOjqKti0QU=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6taMb8=" + }, + "model": { + "$ref": "AAAAAAFm8DOjp6tYmAY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1272, + "top": 160, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DOjqKtjo+c=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6taMb8=" + }, + "model": { + "$ref": "AAAAAAFm8DOjp6tYmAY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1272, + "top": 160, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1792, + "top": 736, + "width": 78.61181640625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DOjp6tbFwA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DOjqKtg1tY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DOjqKthkAc=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DOjqKti0QU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DOjqKtjo+c=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DOoq6uSdkw=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DOoq6uQoz0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DOoq6uT0UU=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uSdkw=" + }, + "model": { + "$ref": "AAAAAAFm8DOoq6uQoz0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOoq6uUNjU=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uT0UU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 320, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOoq6uVOTs=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uT0UU=" + }, + "font": "Arial;13;1", + "left": 1029, + "top": 887, + "width": 82.341796875, + "height": 13, + "text": "LocationData" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOoq6uWWIc=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uT0UU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 320, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOoq6uX9kQ=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uT0UU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 320, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1024, + "top": 880, + "width": 92.341796875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DOoq6uUNjU=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DOoq6uVOTs=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DOoq6uWWIc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DOoq6uX9kQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DOoq6uY7q0=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uSdkw=" + }, + "model": { + "$ref": "AAAAAAFm8DOoq6uQoz0=" + }, + "font": "Arial;13;0", + "left": 1024, + "top": 905, + "width": 92.341796875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DOoq6uZhMU=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uSdkw=" + }, + "model": { + "$ref": "AAAAAAFm8DOoq6uQoz0=" + }, + "font": "Arial;13;0", + "left": 1024, + "top": 915, + "width": 92.341796875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DOoq6ua8iE=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uSdkw=" + }, + "model": { + "$ref": "AAAAAAFm8DOoq6uQoz0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 520, + "top": 160, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DOoq6ubDe8=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uSdkw=" + }, + "model": { + "$ref": "AAAAAAFm8DOoq6uQoz0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 520, + "top": 160, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1024, + "top": 880, + "width": 92.341796875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DOoq6uT0UU=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DOoq6uY7q0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DOoq6uZhMU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DOoq6ua8iE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DOoq6ubDe8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DOsKavKWTo=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DOsKavIc2Q=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DOsKavLSko=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavKWTo=" + }, + "model": { + "$ref": "AAAAAAFm8DOsKavIc2Q=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOsKavMayQ=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavLSko=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 752, + "top": 720, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOsKqvNmxg=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavLSko=" + }, + "font": "Arial;13;1", + "left": 1117, + "top": 943, + "width": 95.37353515625, + "height": 13, + "text": "MaterialSample" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOsKqvOAOg=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavLSko=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 752, + "top": 720, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOsKqvPGeQ=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavLSko=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 752, + "top": 720, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1112, + "top": 936, + "width": 105.37353515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DOsKavMayQ=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DOsKqvNmxg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DOsKqvOAOg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DOsKqvPGeQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DOsKqvQrPI=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavKWTo=" + }, + "model": { + "$ref": "AAAAAAFm8DOsKavIc2Q=" + }, + "font": "Arial;13;0", + "left": 1112, + "top": 961, + "width": 105.37353515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DOsKqvRC5U=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavKWTo=" + }, + "model": { + "$ref": "AAAAAAFm8DOsKavIc2Q=" + }, + "font": "Arial;13;0", + "left": 1112, + "top": 971, + "width": 105.37353515625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DOsKqvSAlM=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavKWTo=" + }, + "model": { + "$ref": "AAAAAAFm8DOsKavIc2Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 360, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DOsKqvTmvU=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavKWTo=" + }, + "model": { + "$ref": "AAAAAAFm8DOsKavIc2Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 360, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1112, + "top": 936, + "width": 105.37353515625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DOsKavLSko=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DOsKqvQrPI=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DOsKqvRC5U=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DOsKqvSAlM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DOsKqvTmvU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DOyE6wCCk8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DOyEqwANCU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DOyE6wDt9A=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wCCk8=" + }, + "model": { + "$ref": "AAAAAAFm8DOyEqwANCU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOyE6wElSw=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wDt9A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1424, + "top": 432, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOyE6wFMcA=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wDt9A=" + }, + "font": "Arial;13;1", + "left": 1405, + "top": 975, + "width": 85.97265625, + "height": 13, + "text": "LaserReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOyE6wGXQs=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wDt9A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1424, + "top": 432, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DOyE6wH1g4=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wDt9A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1424, + "top": 432, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1400, + "top": 968, + "width": 95.97265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DOyE6wElSw=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DOyE6wFMcA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DOyE6wGXQs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DOyE6wH1g4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DOyE6wIYig=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wCCk8=" + }, + "model": { + "$ref": "AAAAAAFm8DOyEqwANCU=" + }, + "font": "Arial;13;0", + "left": 1400, + "top": 993, + "width": 95.97265625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DOyE6wJtRA=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wCCk8=" + }, + "model": { + "$ref": "AAAAAAFm8DOyEqwANCU=" + }, + "font": "Arial;13;0", + "left": 1400, + "top": 1003, + "width": 95.97265625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DOyE6wKr2o=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wCCk8=" + }, + "model": { + "$ref": "AAAAAAFm8DOyEqwANCU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 712, + "top": 216, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DOyE6wLNw0=", + "_parent": { + "$ref": "AAAAAAFm8DOyE6wCCk8=" + }, + "model": { + "$ref": "AAAAAAFm8DOyEqwANCU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 712, + "top": 216, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1400, + "top": 968, + "width": 95.97265625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DOyE6wDt9A=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DOyE6wIYig=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DOyE6wJtRA=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DOyE6wKr2o=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DOyE6wLNw0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DO2bKw6dI8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DO2a6w4o/0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DO2bKw7xTo=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw6dI8=" + }, + "model": { + "$ref": "AAAAAAFm8DO2a6w4o/0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO2bKw89hg=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw7xTo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1264, + "top": 800, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO2bKw9yJQ=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw7xTo=" + }, + "font": "Arial;13;1", + "left": 1525, + "top": 975, + "width": 88.12451171875, + "height": 13, + "text": "SonarReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO2bKw+z7A=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw7xTo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1264, + "top": 800, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO2bKw/BEo=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw7xTo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1264, + "top": 800, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1520, + "top": 968, + "width": 98.12451171875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DO2bKw89hg=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DO2bKw9yJQ=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DO2bKw+z7A=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DO2bKw/BEo=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DO2bKxA+NU=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw6dI8=" + }, + "model": { + "$ref": "AAAAAAFm8DO2a6w4o/0=" + }, + "font": "Arial;13;0", + "left": 1520, + "top": 993, + "width": 98.12451171875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DO2bKxBeGg=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw6dI8=" + }, + "model": { + "$ref": "AAAAAAFm8DO2a6w4o/0=" + }, + "font": "Arial;13;0", + "left": 1520, + "top": 1003, + "width": 98.12451171875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DO2bKxC6Jo=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw6dI8=" + }, + "model": { + "$ref": "AAAAAAFm8DO2a6w4o/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 632, + "top": 400, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DO2bKxD8Dw=", + "_parent": { + "$ref": "AAAAAAFm8DO2bKw6dI8=" + }, + "model": { + "$ref": "AAAAAAFm8DO2a6w4o/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 632, + "top": 400, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1520, + "top": 968, + "width": 98.12451171875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DO2bKw7xTo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DO2bKxA+NU=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DO2bKxBeGg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DO2bKxC6Jo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DO2bKxD8Dw=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DO686xyJp0=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DO68qxwMyo=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DO686xzqOQ=", + "_parent": { + "$ref": "AAAAAAFm8DO686xyJp0=" + }, + "model": { + "$ref": "AAAAAAFm8DO68qxwMyo=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO686x06Dc=", + "_parent": { + "$ref": "AAAAAAFm8DO686xzqOQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1488, + "top": 208, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO686x1X5A=", + "_parent": { + "$ref": "AAAAAAFm8DO686xzqOQ=" + }, + "font": "Arial;13;1", + "left": 1645, + "top": 879, + "width": 97.51904296875, + "height": 13, + "text": "SalinityReading" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO686x2PgQ=", + "_parent": { + "$ref": "AAAAAAFm8DO686xzqOQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1488, + "top": 208, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO686x300w=", + "_parent": { + "$ref": "AAAAAAFm8DO686xzqOQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1488, + "top": 208, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1640, + "top": 872, + "width": 107.51904296875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DO686x06Dc=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DO686x1X5A=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DO686x2PgQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DO686x300w=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DO686x4hsg=", + "_parent": { + "$ref": "AAAAAAFm8DO686xyJp0=" + }, + "model": { + "$ref": "AAAAAAFm8DO68qxwMyo=" + }, + "font": "Arial;13;0", + "left": 1640, + "top": 897, + "width": 107.51904296875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DO686x5n9I=", + "_parent": { + "$ref": "AAAAAAFm8DO686xyJp0=" + }, + "model": { + "$ref": "AAAAAAFm8DO68qxwMyo=" + }, + "font": "Arial;13;0", + "left": 1640, + "top": 907, + "width": 107.51904296875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DO686x6sdM=", + "_parent": { + "$ref": "AAAAAAFm8DO686xyJp0=" + }, + "model": { + "$ref": "AAAAAAFm8DO68qxwMyo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 744, + "top": 104, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DO686x7sYM=", + "_parent": { + "$ref": "AAAAAAFm8DO686xyJp0=" + }, + "model": { + "$ref": "AAAAAAFm8DO68qxwMyo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 744, + "top": 104, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1640, + "top": 872, + "width": 107.51904296875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DO686xzqOQ=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DO686x4hsg=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DO686x5n9I=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DO686x6sdM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DO686x7sYM=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DO9U6yq4tM=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DO9U6yrGA4=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yq4tM=" + }, + "model": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO9U6ysq8I=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yrGA4=" + }, + "font": "Arial;13;0", + "left": 1413, + "top": 877, + "width": 142.02880859375, + "height": 13, + "text": "«Abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO9U6ytsHA=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yrGA4=" + }, + "font": "Arial;13;1", + "left": 1413, + "top": 892, + "width": 142.02880859375, + "height": 13, + "text": "TopographicalMapping" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO9U6yucj8=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yrGA4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 800, + "top": 576, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DO9U6yv9hI=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yrGA4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 800, + "top": 576, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1408, + "top": 872, + "width": 152.02880859375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DO9U6ysq8I=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DO9U6ytsHA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DO9U6yucj8=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DO9U6yv9hI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DO9U6ywclE=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yq4tM=" + }, + "model": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + }, + "font": "Arial;13;0", + "left": 1408, + "top": 910, + "width": 152.02880859375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DO9U6yxYJc=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yq4tM=" + }, + "model": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + }, + "font": "Arial;13;0", + "left": 1408, + "top": 920, + "width": 152.02880859375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DO9VKyyQ6k=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yq4tM=" + }, + "model": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 400, + "top": 288, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DO9VKyzlq4=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yq4tM=" + }, + "model": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 400, + "top": 288, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1408, + "top": 872, + "width": 152.02880859375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm8DO9U6yrGA4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DO9U6ywclE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DO9U6yxYJc=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DO9VKyyQ6k=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DO9VKyzlq4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DQEW6ziPH8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DQEW6zgMaw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DQEW6zjlIw=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6ziPH8=" + }, + "model": { + "$ref": "AAAAAAFm8DQEW6zgMaw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQEW6zkglE=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6zjlIw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 96, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQEW6zlGus=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6zjlIw=" + }, + "font": "Arial;13;1", + "left": 485, + "top": 887, + "width": 99.6708984375, + "height": 13, + "text": "DCPhotoSensor" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQEW6zm6xY=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6zjlIw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 96, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQEW6znj1U=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6zjlIw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 96, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 480, + "top": 880, + "width": 109.6708984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DQEW6zkglE=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DQEW6zlGus=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DQEW6zm6xY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DQEW6znj1U=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DQEW6zouNs=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6ziPH8=" + }, + "model": { + "$ref": "AAAAAAFm8DQEW6zgMaw=" + }, + "font": "Arial;13;0", + "left": 480, + "top": 905, + "width": 109.6708984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DQEW6zpvEY=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6ziPH8=" + }, + "model": { + "$ref": "AAAAAAFm8DQEW6zgMaw=" + }, + "font": "Arial;13;0", + "left": 480, + "top": 915, + "width": 109.6708984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DQEW6zq/T0=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6ziPH8=" + }, + "model": { + "$ref": "AAAAAAFm8DQEW6zgMaw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": 48, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DQEW6zr/0A=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6ziPH8=" + }, + "model": { + "$ref": "AAAAAAFm8DQEW6zgMaw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": 48, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 480, + "top": 880, + "width": 109.6708984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DQEW6zjlIw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DQEW6zouNs=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DQEW6zpvEY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DQEW6zq/T0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DQEW6zr/0A=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DQLRq1S1QI=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DQLRa1Q+wI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DQLRq1TOXw=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1S1QI=" + }, + "model": { + "$ref": "AAAAAAFm8DQLRa1Q+wI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQLRq1Utvw=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1TOXw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": -320, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQLRq1VsLw=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1TOXw=" + }, + "font": "Arial;13;1", + "left": 253, + "top": 743, + "width": 53.46630859375, + "height": 13, + "text": "DCLaser" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQLRq1Wh/Y=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1TOXw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": -320, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQLRq1XmuE=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1TOXw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": -320, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 248, + "top": 736, + "width": 63.46630859375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DQLRq1Utvw=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DQLRq1VsLw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DQLRq1Wh/Y=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DQLRq1XmuE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DQLRq1YaAE=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1S1QI=" + }, + "model": { + "$ref": "AAAAAAFm8DQLRa1Q+wI=" + }, + "font": "Arial;13;0", + "left": 248, + "top": 761, + "width": 63.46630859375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DQLRq1Zvds=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1S1QI=" + }, + "model": { + "$ref": "AAAAAAFm8DQLRa1Q+wI=" + }, + "font": "Arial;13;0", + "left": 248, + "top": 771, + "width": 63.46630859375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DQLRq1aEPw=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1S1QI=" + }, + "model": { + "$ref": "AAAAAAFm8DQLRa1Q+wI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -48, + "top": -160, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DQLRq1b30c=", + "_parent": { + "$ref": "AAAAAAFm8DQLRq1S1QI=" + }, + "model": { + "$ref": "AAAAAAFm8DQLRa1Q+wI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -48, + "top": -160, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 248, + "top": 736, + "width": 63.46630859375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DQLRq1TOXw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DQLRq1YaAE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DQLRq1Zvds=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DQLRq1aEPw=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DQLRq1b30c=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DQNSK2KL/g=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DQNSK2IRW0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DQNSK2LYxs=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2KL/g=" + }, + "model": { + "$ref": "AAAAAAFm8DQNSK2IRW0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQNSK2Mshw=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2LYxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 400, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQNSK2NLrk=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2LYxs=" + }, + "font": "Arial;13;1", + "left": 781, + "top": 1015, + "width": 117.72998046875, + "height": 13, + "text": "DCRockCoringDrill" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQNSK2OEyI=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2LYxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 400, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQNSK2PLhk=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2LYxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 400, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 776, + "top": 1008, + "width": 127.72998046875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DQNSK2Mshw=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DQNSK2NLrk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DQNSK2OEyI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DQNSK2PLhk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DQNSK2Q/vI=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2KL/g=" + }, + "model": { + "$ref": "AAAAAAFm8DQNSK2IRW0=" + }, + "font": "Arial;13;0", + "left": 776, + "top": 1033, + "width": 127.72998046875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DQNSK2RFzo=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2KL/g=" + }, + "model": { + "$ref": "AAAAAAFm8DQNSK2IRW0=" + }, + "font": "Arial;13;0", + "left": 776, + "top": 1043, + "width": 127.72998046875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DQNSK2SdFw=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2KL/g=" + }, + "model": { + "$ref": "AAAAAAFm8DQNSK2IRW0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": 200, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DQNSK2TJ4Y=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2KL/g=" + }, + "model": { + "$ref": "AAAAAAFm8DQNSK2IRW0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": 200, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 776, + "top": 1008, + "width": 127.72998046875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DQNSK2LYxs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DQNSK2Q/vI=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DQNSK2RFzo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DQNSK2SdFw=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DQNSK2TJ4Y=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DQabq5MtCs=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DQaba5KfH0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DQabq5NVeo=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5MtCs=" + }, + "model": { + "$ref": "AAAAAAFm8DQaba5KfH0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQabq5O9pI=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5NVeo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 768, + "top": 304, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQabq5Pmog=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5NVeo=" + }, + "font": "Arial;13;1", + "left": 965, + "top": 1015, + "width": 127.8798828125, + "height": 13, + "text": "DCChemicalScanner" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQabq5QIX0=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5NVeo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 768, + "top": 304, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQabq5R7qk=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5NVeo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 768, + "top": 304, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 960, + "top": 1008, + "width": 137.8798828125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DQabq5O9pI=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DQabq5Pmog=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DQabq5QIX0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DQabq5R7qk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DQabq5Sm8Q=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5MtCs=" + }, + "model": { + "$ref": "AAAAAAFm8DQaba5KfH0=" + }, + "font": "Arial;13;0", + "left": 960, + "top": 1033, + "width": 137.8798828125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DQabq5T/to=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5MtCs=" + }, + "model": { + "$ref": "AAAAAAFm8DQaba5KfH0=" + }, + "font": "Arial;13;0", + "left": 960, + "top": 1043, + "width": 137.8798828125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DQabq5UWHU=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5MtCs=" + }, + "model": { + "$ref": "AAAAAAFm8DQaba5KfH0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 384, + "top": 152, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DQabq5VLpA=", + "_parent": { + "$ref": "AAAAAAFm8DQabq5MtCs=" + }, + "model": { + "$ref": "AAAAAAFm8DQaba5KfH0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 384, + "top": 152, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 960, + "top": 1008, + "width": 137.8798828125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DQabq5NVeo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DQabq5Sm8Q=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DQabq5T/to=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DQabq5UWHU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DQabq5VLpA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DQgr66TCnY=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DQgr66R154=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DQgsK6UPb0=", + "_parent": { + "$ref": "AAAAAAFm8DQgr66TCnY=" + }, + "model": { + "$ref": "AAAAAAFm8DQgr66R154=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQgsK6VsaM=", + "_parent": { + "$ref": "AAAAAAFm8DQgsK6UPb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -816, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQgsK6WTVI=", + "_parent": { + "$ref": "AAAAAAFm8DQgsK6UPb0=" + }, + "font": "Arial;13;1", + "left": 437, + "top": 527, + "width": 49.14990234375, + "height": 13, + "text": "DCPH" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQgsK6XjcY=", + "_parent": { + "$ref": "AAAAAAFm8DQgsK6UPb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -816, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQgsK6Yzmc=", + "_parent": { + "$ref": "AAAAAAFm8DQgsK6UPb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -816, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 432, + "top": 520, + "width": 59.14990234375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DQgsK6VsaM=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DQgsK6WTVI=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DQgsK6XjcY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DQgsK6Yzmc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DQgsK6ZCXw=", + "_parent": { + "$ref": "AAAAAAFm8DQgr66TCnY=" + }, + "model": { + "$ref": "AAAAAAFm8DQgr66R154=" + }, + "font": "Arial;13;0", + "left": 432, + "top": 545, + "width": 59.14990234375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DQgsK6adYI=", + "_parent": { + "$ref": "AAAAAAFm8DQgr66TCnY=" + }, + "model": { + "$ref": "AAAAAAFm8DQgr66R154=" + }, + "font": "Arial;13;0", + "left": 432, + "top": 555, + "width": 59.14990234375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DQgsK6bp7E=", + "_parent": { + "$ref": "AAAAAAFm8DQgr66TCnY=" + }, + "model": { + "$ref": "AAAAAAFm8DQgr66R154=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": -408, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DQgsK6c4AQ=", + "_parent": { + "$ref": "AAAAAAFm8DQgr66TCnY=" + }, + "model": { + "$ref": "AAAAAAFm8DQgr66R154=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": -408, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 432, + "top": 520, + "width": 59.14990234375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DQgsK6UPb0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DQgsK6ZCXw=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DQgsK6adYI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DQgsK6bp7E=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DQgsK6c4AQ=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DQjG67aSGk=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DQjG67bTEM=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "model": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQjG67c0/k=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67bTEM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -16, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQjG67d0kg=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67bTEM=" + }, + "font": "Arial;13;1", + "left": 717, + "top": 887, + "width": 119.208984375, + "height": 13, + "text": "DCMaterialSampler" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQjG67ePZA=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67bTEM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -16, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DQjG67fbf4=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67bTEM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -16, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 712, + "top": 880, + "width": 129.208984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DQjG67c0/k=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DQjG67d0kg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DQjG67ePZA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DQjG67fbf4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DQjG67gAtY=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "model": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + }, + "font": "Arial;13;0", + "left": 712, + "top": 905, + "width": 129.208984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DQjG67hY9c=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "model": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + }, + "font": "Arial;13;0", + "left": 712, + "top": 915, + "width": 129.208984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DQjHK7idfI=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "model": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": -8, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DQjHK7jkis=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "model": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": -8, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 712, + "top": 880, + "width": 129.208984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DQjG67bTEM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DQjG67gAtY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DQjG67hY9c=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DQjHK7idfI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DQjHK7jkis=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DRuj6/sBr8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DRujq/q878=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DRuj6/tX4o=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/sBr8=" + }, + "model": { + "$ref": "AAAAAAFm8DRujq/q878=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DRuj6/uXMY=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/tX4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 608, + "top": -816, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DRuj6/vKwE=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/tX4o=" + }, + "font": "Arial;13;1", + "left": 389, + "top": 623, + "width": 65.0126953125, + "height": 13, + "text": "DCSalinity" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DRuj6/wpMI=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/tX4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 608, + "top": -816, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DRuj6/xwvE=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/tX4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 608, + "top": -816, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 384, + "top": 616, + "width": 75.0126953125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DRuj6/uXMY=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DRuj6/vKwE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DRuj6/wpMI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DRuj6/xwvE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DRuj6/yay0=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/sBr8=" + }, + "model": { + "$ref": "AAAAAAFm8DRujq/q878=" + }, + "font": "Arial;13;0", + "left": 384, + "top": 641, + "width": 75.0126953125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DRuj6/z/Xo=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/sBr8=" + }, + "model": { + "$ref": "AAAAAAFm8DRujq/q878=" + }, + "font": "Arial;13;0", + "left": 384, + "top": 651, + "width": 75.0126953125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DRuj6/0M8A=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/sBr8=" + }, + "model": { + "$ref": "AAAAAAFm8DRujq/q878=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": -408, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DRuj6/1ylU=", + "_parent": { + "$ref": "AAAAAAFm8DRuj6/sBr8=" + }, + "model": { + "$ref": "AAAAAAFm8DRujq/q878=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": -408, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 384, + "top": 616, + "width": 75.0126953125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DRuj6/tX4o=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DRuj6/yay0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DRuj6/z/Xo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DRuj6/0M8A=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DRuj6/1ylU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DR2PrBcpiE=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DR2PbBajDQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DR2PrBdN5Q=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBcpiE=" + }, + "model": { + "$ref": "AAAAAAFm8DR2PbBajDQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DR2PrBegzo=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBdN5Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": -320, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DR2PrBfu5U=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBdN5Q=" + }, + "font": "Arial;13;1", + "left": 605, + "top": 1015, + "width": 122.78271484375, + "height": 13, + "text": "DCHotFluidSampler" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DR2PrBgXPs=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBdN5Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": -320, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DR2PrBhado=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBdN5Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": -320, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 600, + "top": 1008, + "width": 132.78271484375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DR2PrBegzo=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DR2PrBfu5U=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DR2PrBgXPs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DR2PrBhado=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DR2PrBixQM=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBcpiE=" + }, + "model": { + "$ref": "AAAAAAFm8DR2PbBajDQ=" + }, + "font": "Arial;13;0", + "left": 600, + "top": 1033, + "width": 132.78271484375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DR2PrBjIao=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBcpiE=" + }, + "model": { + "$ref": "AAAAAAFm8DR2PbBajDQ=" + }, + "font": "Arial;13;0", + "left": 600, + "top": 1043, + "width": 132.78271484375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DR2PrBkbzs=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBcpiE=" + }, + "model": { + "$ref": "AAAAAAFm8DR2PbBajDQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": -160, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DR2PrBlqYg=", + "_parent": { + "$ref": "AAAAAAFm8DR2PrBcpiE=" + }, + "model": { + "$ref": "AAAAAAFm8DR2PbBajDQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": -160, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 600, + "top": 1008, + "width": 132.78271484375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DR2PrBdN5Q=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DR2PrBixQM=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DR2PrBjIao=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DR2PrBkbzs=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DR2PrBlqYg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DR+ErDM2Rc=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DR+EbDK/A8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DR+ErDN4hw=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDM2Rc=" + }, + "model": { + "$ref": "AAAAAAFm8DR+EbDK/A8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DR+ErDO7cc=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDN4hw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 64, + "top": -1264, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DR+ErDPVSs=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDN4hw=" + }, + "font": "Arial;13;1", + "left": 565, + "top": 495, + "width": 131.4599609375, + "height": 13, + "text": "DCIndexOfRefraction" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DR+ErDQ+wo=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDN4hw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 64, + "top": -1264, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DR+ErDRT1Q=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDN4hw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 64, + "top": -1264, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 560, + "top": 488, + "width": 141.4599609375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DR+ErDO7cc=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DR+ErDPVSs=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DR+ErDQ+wo=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DR+ErDRT1Q=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DR+ErDSZdY=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDM2Rc=" + }, + "model": { + "$ref": "AAAAAAFm8DR+EbDK/A8=" + }, + "font": "Arial;13;0", + "left": 560, + "top": 513, + "width": 141.4599609375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DR+ErDTGkM=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDM2Rc=" + }, + "model": { + "$ref": "AAAAAAFm8DR+EbDK/A8=" + }, + "font": "Arial;13;0", + "left": 560, + "top": 523, + "width": 141.4599609375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DR+ErDUsT4=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDM2Rc=" + }, + "model": { + "$ref": "AAAAAAFm8DR+EbDK/A8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 32, + "top": -632, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DR+ErDVA7I=", + "_parent": { + "$ref": "AAAAAAFm8DR+ErDM2Rc=" + }, + "model": { + "$ref": "AAAAAAFm8DR+EbDK/A8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 32, + "top": -632, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 560, + "top": 488, + "width": 141.4599609375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8DR+ErDN4hw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DR+ErDSZdY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DR+ErDTGkM=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DR+ErDUsT4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DR+ErDVA7I=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DSAlrEEXbo=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DSAl7EFiv0=", + "_parent": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "model": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DSAl7EG93A=", + "_parent": { + "$ref": "AAAAAAFm8DSAl7EFiv0=" + }, + "font": "Arial;13;0", + "left": 541, + "top": 621, + "width": 112.9248046875, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DSAl7EHgyE=", + "_parent": { + "$ref": "AAAAAAFm8DSAl7EFiv0=" + }, + "font": "Arial;13;1", + "left": 541, + "top": 636, + "width": 112.9248046875, + "height": 13, + "text": "DCWaterReadings" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DSAl7EIjOk=", + "_parent": { + "$ref": "AAAAAAFm8DSAl7EFiv0=" + }, + "visible": false, + "font": "Arial;13;0", + "top": -1184, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DSAl7EJakQ=", + "_parent": { + "$ref": "AAAAAAFm8DSAl7EFiv0=" + }, + "visible": false, + "font": "Arial;13;0", + "top": -1184, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 536, + "top": 616, + "width": 122.9248046875, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DSAl7EG93A=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DSAl7EHgyE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DSAl7EIjOk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DSAl7EJakQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DSAl7EKmu0=", + "_parent": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "model": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + }, + "font": "Arial;13;0", + "left": 536, + "top": 654, + "width": 122.9248046875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DSAl7ELWrY=", + "_parent": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "model": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + }, + "font": "Arial;13;0", + "left": 536, + "top": 664, + "width": 122.9248046875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DSAl7EMrxo=", + "_parent": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "model": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "top": -592, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DSAl7ENcr8=", + "_parent": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "model": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "top": -592, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 536, + "top": 616, + "width": 122.9248046875, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm8DSAl7EFiv0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DSAl7EKmu0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DSAl7ELWrY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DSAl7EMrxo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DSAl7ENcr8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8DSCn7E8EXQ=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8DSCn7E92wQ=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E8EXQ=" + }, + "model": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8DSCn7E+c3k=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E92wQ=" + }, + "font": "Arial;13;0", + "left": 365, + "top": 757, + "width": 153.6005859375, + "height": 13, + "text": "«Interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DSCn7E/73s=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E92wQ=" + }, + "font": "Arial;13;1", + "left": 365, + "top": 772, + "width": 153.6005859375, + "height": 13, + "text": "DCTopographicalMapper" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DSCn7FAJlI=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E92wQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -768, + "top": -640, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8DSCn7FBm8s=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E92wQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -768, + "top": -640, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 360, + "top": 752, + "width": 163.6005859375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DSCn7E+c3k=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8DSCn7E/73s=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8DSCn7FAJlI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DSCn7FBm8s=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8DSCn7FCx3Y=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E8EXQ=" + }, + "model": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + }, + "font": "Arial;13;0", + "left": 360, + "top": 790, + "width": 163.6005859375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8DSCn7FDoos=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E8EXQ=" + }, + "model": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + }, + "font": "Arial;13;0", + "left": 360, + "top": 800, + "width": 163.6005859375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8DSCn7FEHi8=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E8EXQ=" + }, + "model": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -384, + "top": -320, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8DSCn7FFXDQ=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E8EXQ=" + }, + "model": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -384, + "top": -320, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 360, + "top": 752, + "width": 163.6005859375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAFm8DSCn7E92wQ=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8DSCn7FCx3Y=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8DSCn7FDoos=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8DSCn7FEHi8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8DSCn7FFXDQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8DVCZ7ITBzA=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DVCZ7IRse0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DVCZ7IUI94=", + "_parent": { + "$ref": "AAAAAAFm8DVCZ7ITBzA=" + }, + "model": { + "$ref": "AAAAAAFm8DVCZ7IRse0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1703, + "top": 833, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DVCZ7ITBzA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DVCZ7IVBk0=", + "_parent": { + "$ref": "AAAAAAFm8DVCZ7ITBzA=" + }, + "model": { + "$ref": "AAAAAAFm8DVCZ7IRse0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1703, + "top": 848, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DVCZ7ITBzA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DVCZ7IW2CQ=", + "_parent": { + "$ref": "AAAAAAFm8DVCZ7ITBzA=" + }, + "model": { + "$ref": "AAAAAAFm8DVCZ7IRse0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1704, + "top": 804, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DVCZ7ITBzA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "tail": { + "$ref": "AAAAAAFm8DOUC6qyBkE=" + }, + "lineStyle": 1, + "points": "1759:827;1649:824", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DVCZ7IUI94=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DVCZ7IVBk0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DVCZ7IW2CQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8DWdy7JJfJY=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DWdy7JHGLY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DWdy7JKpSQ=", + "_parent": { + "$ref": "AAAAAAFm8DWdy7JJfJY=" + }, + "model": { + "$ref": "AAAAAAFm8DWdy7JHGLY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1724, + "top": 796, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DWdy7JJfJY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DWdy7JLXnw=", + "_parent": { + "$ref": "AAAAAAFm8DWdy7JJfJY=" + }, + "model": { + "$ref": "AAAAAAFm8DWdy7JHGLY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1728, + "top": 810, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DWdy7JJfJY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DWdy7JMXv0=", + "_parent": { + "$ref": "AAAAAAFm8DWdy7JJfJY=" + }, + "model": { + "$ref": "AAAAAAFm8DWdy7JHGLY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1715, + "top": 767, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DWdy7JJfJY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "tail": { + "$ref": "AAAAAAFm8DOjp6taMb8=" + }, + "lineStyle": 1, + "points": "1791:769;1649:808", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DWdy7JKpSQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DWdy7JLXnw=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DWdy7JMXv0=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8DW/M7Jv4p4=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DW/M7JtSLw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DW/M7JwipQ=", + "_parent": { + "$ref": "AAAAAAFm8DW/M7Jv4p4=" + }, + "model": { + "$ref": "AAAAAAFm8DW/M7JtSLw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1478, + "top": 777, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DW/M7Jv4p4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DW/M7JxG5Q=", + "_parent": { + "$ref": "AAAAAAFm8DW/M7Jv4p4=" + }, + "model": { + "$ref": "AAAAAAFm8DW/M7JtSLw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1472, + "top": 791, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DW/M7Jv4p4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DW/M7JyXpw=", + "_parent": { + "$ref": "AAAAAAFm8DW/M7Jv4p4=" + }, + "model": { + "$ref": "AAAAAAFm8DW/M7JtSLw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1491, + "top": 750, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DW/M7Jv4p4=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "tail": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "lineStyle": 1, + "points": "1551:800;1419:741", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DW/M7JwipQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DW/M7JxG5Q=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DW/M7JyXpw=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8DZ8iLS37VA=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DZ8iLS12zE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DZ8iLS4awk=", + "_parent": { + "$ref": "AAAAAAFm8DZ8iLS37VA=" + }, + "model": { + "$ref": "AAAAAAFm8DZ8iLS12zE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1419, + "top": 813, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DZ8iLS37VA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DZ8iLS5MvM=", + "_parent": { + "$ref": "AAAAAAFm8DZ8iLS37VA=" + }, + "model": { + "$ref": "AAAAAAFm8DZ8iLS12zE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1406, + "top": 821, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DZ8iLS37VA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DZ8ibS6zTA=", + "_parent": { + "$ref": "AAAAAAFm8DZ8iLS37VA=" + }, + "model": { + "$ref": "AAAAAAFm8DZ8iLS12zE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1444, + "top": 798, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DZ8iLS37VA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "tail": { + "$ref": "AAAAAAFm8DO9U6yq4tM=" + }, + "lineStyle": 1, + "points": "1466:871;1398:754", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DZ8iLS4awk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DZ8iLS5MvM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DZ8ibS6zTA=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8DbuHbWwQaA=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DbuHLWuWz0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DbuHbWxn2w=", + "_parent": { + "$ref": "AAAAAAFm8DbuHbWwQaA=" + }, + "model": { + "$ref": "AAAAAAFm8DbuHLWuWz0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1517, + "top": 952, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DbuHbWwQaA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DbuHbWyQI0=", + "_parent": { + "$ref": "AAAAAAFm8DbuHbWwQaA=" + }, + "model": { + "$ref": "AAAAAAFm8DbuHLWuWz0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1506, + "top": 962, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DbuHbWwQaA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DbuHbWzFw4=", + "_parent": { + "$ref": "AAAAAAFm8DbuHbWwQaA=" + }, + "model": { + "$ref": "AAAAAAFm8DbuHLWuWz0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1538, + "top": 931, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DbuHbWwQaA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DO9U6yq4tM=" + }, + "tail": { + "$ref": "AAAAAAFm8DO2bKw6dI8=" + }, + "lineStyle": 1, + "points": "1546:967;1511:930", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DbuHbWxn2w=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DbuHbWyQI0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DbuHbWzFw4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8Dc677ZQ0Mg=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8Dc67rZOQuY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dc677ZRPRs=", + "_parent": { + "$ref": "AAAAAAFm8Dc677ZQ0Mg=" + }, + "model": { + "$ref": "AAAAAAFm8Dc67rZOQuY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1636, + "top": 863, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Dc677ZQ0Mg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dc677ZSlxs=", + "_parent": { + "$ref": "AAAAAAFm8Dc677ZQ0Mg=" + }, + "model": { + "$ref": "AAAAAAFm8Dc67rZOQuY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1627, + "top": 875, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8Dc677ZQ0Mg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dc677ZTiWU=", + "_parent": { + "$ref": "AAAAAAFm8Dc677ZQ0Mg=" + }, + "model": { + "$ref": "AAAAAAFm8Dc67rZOQuY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1655, + "top": 840, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Dc677ZQ0Mg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DOc1qsixN4=" + }, + "tail": { + "$ref": "AAAAAAFm8DO686xyJp0=" + }, + "lineStyle": 1, + "points": "1663:871;1629:845", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8Dc677ZRPRs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Dc677ZSlxs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Dc677ZTiWU=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8DeGZ7bGHU8=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DeGZ7bE5V8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DeGZ7bHZA4=", + "_parent": { + "$ref": "AAAAAAFm8DeGZ7bGHU8=" + }, + "model": { + "$ref": "AAAAAAFm8DeGZ7bE5V8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1329, + "top": 850, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DeGZ7bGHU8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DeGZ7bITZE=", + "_parent": { + "$ref": "AAAAAAFm8DeGZ7bGHU8=" + }, + "model": { + "$ref": "AAAAAAFm8DeGZ7bE5V8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1315, + "top": 846, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DeGZ7bGHU8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DeGZ7bJS/s=", + "_parent": { + "$ref": "AAAAAAFm8DeGZ7bGHU8=" + }, + "model": { + "$ref": "AAAAAAFm8DeGZ7bE5V8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1358, + "top": 857, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DeGZ7bGHU8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "tail": { + "$ref": "AAAAAAFm8DOYtarqbf8=" + }, + "lineStyle": 1, + "points": "1316:967;1373:754", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DeGZ7bHZA4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DeGZ7bITZE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DeGZ7bJS/s=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8Dfc2beHBpI=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8Dfc2beFe3o=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dfc2beIzUA=", + "_parent": { + "$ref": "AAAAAAFm8Dfc2beHBpI=" + }, + "model": { + "$ref": "AAAAAAFm8Dfc2beFe3o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1258, + "top": 827, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Dfc2beHBpI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dfc2beJtGc=", + "_parent": { + "$ref": "AAAAAAFm8Dfc2beHBpI=" + }, + "model": { + "$ref": "AAAAAAFm8Dfc2beFe3o=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1247, + "top": 817, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8Dfc2beHBpI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dfc2beKlYI=", + "_parent": { + "$ref": "AAAAAAFm8Dfc2beHBpI=" + }, + "model": { + "$ref": "AAAAAAFm8Dfc2beFe3o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1279, + "top": 848, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Dfc2beHBpI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "tail": { + "$ref": "AAAAAAFm8DOsKavKWTo=" + }, + "lineStyle": 1, + "points": "1185:935;1353:754", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8Dfc2beIzUA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Dfc2beJtGc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Dfc2beKlYI=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8DiSirgET1o=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DiSirgCu54=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DiSirgFORo=", + "_parent": { + "$ref": "AAAAAAFm8DiSirgET1o=" + }, + "model": { + "$ref": "AAAAAAFm8DiSirgCu54=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1449, + "top": 935, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DiSirgET1o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DiSirgGgMI=", + "_parent": { + "$ref": "AAAAAAFm8DiSirgET1o=" + }, + "model": { + "$ref": "AAAAAAFm8DiSirgCu54=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1435, + "top": 929, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DiSirgET1o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DiSirgHqDk=", + "_parent": { + "$ref": "AAAAAAFm8DiSirgET1o=" + }, + "model": { + "$ref": "AAAAAAFm8DiSirgCu54=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1476, + "top": 948, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DiSirgET1o=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DO9U6yq4tM=" + }, + "tail": { + "$ref": "AAAAAAFm8DOyE6wCCk8=" + }, + "lineStyle": 1, + "points": "1456:967;1471:930", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DiSirgFORo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DiSirgGgMI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DiSirgHqDk=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8DnWp7lFWkE=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DnWp7lDg3g=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DnWqLlGkJw=", + "_parent": { + "$ref": "AAAAAAFm8DnWp7lFWkE=" + }, + "model": { + "$ref": "AAAAAAFm8DnWp7lDg3g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 571, + "top": 806, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DnWp7lFWkE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DnWqLlH2/I=", + "_parent": { + "$ref": "AAAAAAFm8DnWp7lFWkE=" + }, + "model": { + "$ref": "AAAAAAFm8DnWp7lDg3g=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 558, + "top": 798, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DnWp7lFWkE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DnWqLlIkv0=", + "_parent": { + "$ref": "AAAAAAFm8DnWp7lFWkE=" + }, + "model": { + "$ref": "AAAAAAFm8DnWp7lDg3g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 596, + "top": 821, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DnWp7lFWkE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "tail": { + "$ref": "AAAAAAFm8DQEW6ziPH8=" + }, + "lineStyle": 1, + "points": "548:879;620:762", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DnWqLlGkJw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DnWqLlH2/I=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DnWqLlIkv0=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8DpATrmzpOk=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DpATbmxM6A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DpATrm0K0A=", + "_parent": { + "$ref": "AAAAAAFm8DpATrmzpOk=" + }, + "model": { + "$ref": "AAAAAAFm8DpATbmxM6A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 793, + "top": 966, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DpATrmzpOk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DpATrm1hls=", + "_parent": { + "$ref": "AAAAAAFm8DpATrmzpOk=" + }, + "model": { + "$ref": "AAAAAAFm8DpATbmxM6A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 780, + "top": 973, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DpATrmzpOk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DpATrm2V1Q=", + "_parent": { + "$ref": "AAAAAAFm8DpATrmzpOk=" + }, + "model": { + "$ref": "AAAAAAFm8DpATbmxM6A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 820, + "top": 953, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DpATrmzpOk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "tail": { + "$ref": "AAAAAAFm8DQNSK2KL/g=" + }, + "lineStyle": 1, + "points": "828:1007;787:925", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DpATrm0K0A=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DpATrm1hls=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DpATrm2V1Q=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8DpnP7ns9ms=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DpnP7nqeyA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DpnP7ntMSs=", + "_parent": { + "$ref": "AAAAAAFm8DpnP7ns9ms=" + }, + "model": { + "$ref": "AAAAAAFm8DpnP7nqeyA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 697, + "top": 823, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DpnP7ns9ms=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DpnP7nuPAc=", + "_parent": { + "$ref": "AAAAAAFm8DpnP7ns9ms=" + }, + "model": { + "$ref": "AAAAAAFm8DpnP7nqeyA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 685, + "top": 832, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DpnP7ns9ms=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DpnP7nvG3g=", + "_parent": { + "$ref": "AAAAAAFm8DpnP7ns9ms=" + }, + "model": { + "$ref": "AAAAAAFm8DpnP7nqeyA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 720, + "top": 804, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DpnP7ns9ms=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "tail": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "lineStyle": 1, + "points": "757:879;662:762", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DpnP7ntMSs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DpnP7nuPAc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DpnP7nvG3g=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8Dq2jLqR4qY=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8Dq2jLqPs5M=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dq2jLqSVw8=", + "_parent": { + "$ref": "AAAAAAFm8Dq2jLqR4qY=" + }, + "model": { + "$ref": "AAAAAAFm8Dq2jLqPs5M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 708, + "top": 950, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Dq2jLqR4qY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dq2jLqTOKE=", + "_parent": { + "$ref": "AAAAAAFm8Dq2jLqR4qY=" + }, + "model": { + "$ref": "AAAAAAFm8Dq2jLqPs5M=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 697, + "top": 940, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8Dq2jLqR4qY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dq2jbqUO0E=", + "_parent": { + "$ref": "AAAAAAFm8Dq2jLqR4qY=" + }, + "model": { + "$ref": "AAAAAAFm8Dq2jLqPs5M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 731, + "top": 969, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Dq2jLqR4qY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "tail": { + "$ref": "AAAAAAFm8DR2PrBcpiE=" + }, + "lineStyle": 1, + "points": "685:1007;756:925", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8Dq2jLqSVw8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Dq2jLqTOKE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Dq2jbqUO0E=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8DrmhrrRYrA=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DrmhrrPSEU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DrmhrrSTd0=", + "_parent": { + "$ref": "AAAAAAFm8DrmhrrRYrA=" + }, + "model": { + "$ref": "AAAAAAFm8DrmhrrPSEU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 895, + "top": 973, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DrmhrrRYrA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DrmhrrTexA=", + "_parent": { + "$ref": "AAAAAAFm8DrmhrrRYrA=" + }, + "model": { + "$ref": "AAAAAAFm8DrmhrrPSEU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 888, + "top": 986, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DrmhrrRYrA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DrmhrrUZVU=", + "_parent": { + "$ref": "AAAAAAFm8DrmhrrRYrA=" + }, + "model": { + "$ref": "AAAAAAFm8DrmhrrPSEU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 908, + "top": 946, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DrmhrrRYrA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DQjG67aSGk=" + }, + "tail": { + "$ref": "AAAAAAFm8DQabq5MtCs=" + }, + "lineStyle": 1, + "points": "983:1007;821:925", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DrmhrrSTd0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DrmhrrTexA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DrmhrrUZVU=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8DtItruWF2g=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DtItruUphU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DtItruXCl0=", + "_parent": { + "$ref": "AAAAAAFm8DtItruWF2g=" + }, + "model": { + "$ref": "AAAAAAFm8DtItruUphU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 337, + "top": 744, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DtItruWF2g=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DtItruYzFI=", + "_parent": { + "$ref": "AAAAAAFm8DtItruWF2g=" + }, + "model": { + "$ref": "AAAAAAFm8DtItruUphU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 339, + "top": 729, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DtItruWF2g=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DtItruZH6c=", + "_parent": { + "$ref": "AAAAAAFm8DtItruWF2g=" + }, + "model": { + "$ref": "AAAAAAFm8DtItruUphU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 332, + "top": 773, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DtItruWF2g=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DSCn7E8EXQ=" + }, + "tail": { + "$ref": "AAAAAAFm8DQLRq1S1QI=" + }, + "lineStyle": 1, + "points": "311:762;359:769", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DtItruXCl0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DtItruYzFI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DtItruZH6c=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFm8Dt9Lru82vM=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8Dt9Lbu6Ur8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFm8Dt9Lru9ffw=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru82vM=" + }, + "model": { + "$ref": "AAAAAAFm8Dt9Lbu6Ur8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFm8Dt9Lru+k0Y=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru9ffw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": -576, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Dt9Lru/+74=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru9ffw=" + }, + "font": "Arial;13;1", + "left": 309, + "top": 871, + "width": 55.6181640625, + "height": 13, + "text": "DCSonar" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Dt9LrvANYg=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru9ffw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": -576, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFm8Dt9LrvBw94=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru9ffw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": -576, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 304, + "top": 864, + "width": 65.6181640625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Dt9Lru+k0Y=" + }, + "nameLabel": { + "$ref": "AAAAAAFm8Dt9Lru/+74=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFm8Dt9LrvANYg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Dt9LrvBw94=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFm8Dt9LrvCGCQ=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru82vM=" + }, + "model": { + "$ref": "AAAAAAFm8Dt9Lbu6Ur8=" + }, + "font": "Arial;13;0", + "left": 304, + "top": 889, + "width": 65.6181640625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFm8Dt9LrvDclM=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru82vM=" + }, + "model": { + "$ref": "AAAAAAFm8Dt9Lbu6Ur8=" + }, + "font": "Arial;13;0", + "left": 304, + "top": 899, + "width": 65.6181640625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFm8Dt9LrvEQAU=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru82vM=" + }, + "model": { + "$ref": "AAAAAAFm8Dt9Lbu6Ur8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 224, + "top": -288, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFm8Dt9LrvFOaQ=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lru82vM=" + }, + "model": { + "$ref": "AAAAAAFm8Dt9Lbu6Ur8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 224, + "top": -288, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 304, + "top": 864, + "width": 65.6181640625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAFm8Dt9Lru9ffw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFm8Dt9LrvCGCQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAFm8Dt9LrvDclM=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFm8Dt9LrvEQAU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFm8Dt9LrvFOaQ=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8DuUx7v7t1I=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8DuUx7v5I3g=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DuUx7v8yrU=", + "_parent": { + "$ref": "AAAAAAFm8DuUx7v7t1I=" + }, + "model": { + "$ref": "AAAAAAFm8DuUx7v5I3g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 374, + "top": 819, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DuUx7v7t1I=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DuUx7v9CPk=", + "_parent": { + "$ref": "AAAAAAFm8DuUx7v7t1I=" + }, + "model": { + "$ref": "AAAAAAFm8DuUx7v5I3g=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 363, + "top": 808, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8DuUx7v7t1I=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8DuUx7v+2EM=", + "_parent": { + "$ref": "AAAAAAFm8DuUx7v7t1I=" + }, + "model": { + "$ref": "AAAAAAFm8DuUx7v5I3g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 395, + "top": 840, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8DuUx7v7t1I=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DSCn7E8EXQ=" + }, + "tail": { + "$ref": "AAAAAAFm8Dt9Lru82vM=" + }, + "lineStyle": 1, + "points": "359:863;411:810", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8DuUx7v8yrU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8DuUx7v9CPk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8DuUx7v+2EM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8Dv0W7x2+xQ=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8Dv0Wrx0Z4s=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dv0W7x3Isk=", + "_parent": { + "$ref": "AAAAAAFm8Dv0W7x2+xQ=" + }, + "model": { + "$ref": "AAAAAAFm8Dv0Wrx0Z4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 553, + "top": 730, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Dv0W7x2+xQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dv0W7x4Xk4=", + "_parent": { + "$ref": "AAAAAAFm8Dv0W7x2+xQ=" + }, + "model": { + "$ref": "AAAAAAFm8Dv0Wrx0Z4s=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 550, + "top": 715, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8Dv0W7x2+xQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8Dv0W7x5vPg=", + "_parent": { + "$ref": "AAAAAAFm8Dv0W7x2+xQ=" + }, + "model": { + "$ref": "AAAAAAFm8Dv0Wrx0Z4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 560, + "top": 759, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8Dv0W7x2+xQ=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "tail": { + "$ref": "AAAAAAFm8DSCn7E8EXQ=" + }, + "lineStyle": 1, + "points": "524:760;591:743", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8Dv0W7x3Isk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8Dv0W7x4Xk4=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8Dv0W7x5vPg=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8D1OC760NJE=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8D1OC76ybP0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D1OC761Lh8=", + "_parent": { + "$ref": "AAAAAAFm8D1OC760NJE=" + }, + "model": { + "$ref": "AAAAAAFm8D1OC76ybP0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1218, + "top": 792, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8D1OC760NJE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D1OC762dAQ=", + "_parent": { + "$ref": "AAAAAAFm8D1OC760NJE=" + }, + "model": { + "$ref": "AAAAAAFm8D1OC76ybP0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1211, + "top": 779, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8D1OC760NJE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D1OC763mEY=", + "_parent": { + "$ref": "AAAAAAFm8D1OC760NJE=" + }, + "model": { + "$ref": "AAAAAAFm8D1OC76ybP0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1233, + "top": 819, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8D1OC760NJE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DOO1qp6yEI=" + }, + "tail": { + "$ref": "AAAAAAFm8DOoq6uSdkw=" + }, + "lineStyle": 1, + "points": "1109:879;1343:746", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8D1OC761Lh8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8D1OC762dAQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8D1OC763mEY=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8D7wk7+L3Qc=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8D7wk7+J7lQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D7wk7+M+LA=", + "_parent": { + "$ref": "AAAAAAFm8D7wk7+L3Qc=" + }, + "model": { + "$ref": "AAAAAAFm8D7wk7+J7lQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 627, + "top": 571, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8D7wk7+L3Qc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D7wk7+Nelg=", + "_parent": { + "$ref": "AAAAAAFm8D7wk7+L3Qc=" + }, + "model": { + "$ref": "AAAAAAFm8D7wk7+J7lQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 642, + "top": 575, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8D7wk7+L3Qc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D7wk7+Oric=", + "_parent": { + "$ref": "AAAAAAFm8D7wk7+L3Qc=" + }, + "model": { + "$ref": "AAAAAAFm8D7wk7+J7lQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 598, + "top": 564, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8D7wk7+L3Qc=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "tail": { + "$ref": "AAAAAAFm8DR+ErDM2Rc=" + }, + "lineStyle": 1, + "points": "624:533;603:615", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8D7wk7+M+LA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8D7wk7+Nelg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8D7wk7+Oric=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8D9k9L/kTCU=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8D9k9L/iEHI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D9k9L/l60w=", + "_parent": { + "$ref": "AAAAAAFm8D9k9L/kTCU=" + }, + "model": { + "$ref": "AAAAAAFm8D9k9L/iEHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 532, + "top": 571, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8D9k9L/kTCU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D9k9L/mRzk=", + "_parent": { + "$ref": "AAAAAAFm8D9k9L/kTCU=" + }, + "model": { + "$ref": "AAAAAAFm8D9k9L/iEHI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 541, + "top": 559, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8D9k9L/kTCU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8D9k9L/n3SI=", + "_parent": { + "$ref": "AAAAAAFm8D9k9L/kTCU=" + }, + "model": { + "$ref": "AAAAAAFm8D9k9L/iEHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 515, + "top": 596, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8D9k9L/kTCU=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "tail": { + "$ref": "AAAAAAFm8DQgr66TCnY=" + }, + "lineStyle": 1, + "points": "491:565;558:615", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8D9k9L/l60w=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8D9k9L/mRzk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8D9k9L/n3SI=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFm8EBUEsAzV+g=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8EBUEsAxSJA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8EBUEsA0wvg=", + "_parent": { + "$ref": "AAAAAAFm8EBUEsAzV+g=" + }, + "model": { + "$ref": "AAAAAAFm8EBUEsAxSJA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 497, + "top": 619, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8EBUEsAzV+g=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8EBUEsA1tBs=", + "_parent": { + "$ref": "AAAAAAFm8EBUEsAzV+g=" + }, + "model": { + "$ref": "AAAAAAFm8EBUEsAxSJA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 498, + "top": 604, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8EBUEsAzV+g=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8EBUE8A223M=", + "_parent": { + "$ref": "AAAAAAFm8EBUEsAzV+g=" + }, + "model": { + "$ref": "AAAAAAFm8EBUEsAxSJA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 496, + "top": 648, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8EBUEsAzV+g=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "tail": { + "$ref": "AAAAAAFm8DRuj6/sBr8=" + }, + "lineStyle": 1, + "points": "459:639;535:642", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8EBUEsA0wvg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8EBUEsA1tBs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8EBUE8A223M=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFm8EDEY8FBOvg=", + "_parent": { + "$ref": "AAAAAAFm72p73FlbDBo=" + }, + "model": { + "$ref": "AAAAAAFm8EDEY8E/75Q=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8EDEY8FC4pc=", + "_parent": { + "$ref": "AAAAAAFm8EDEY8FBOvg=" + }, + "model": { + "$ref": "AAAAAAFm8EDEY8E/75Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 603, + "top": 688, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8EDEY8FBOvg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8EDEY8FD7kQ=", + "_parent": { + "$ref": "AAAAAAFm8EDEY8FBOvg=" + }, + "model": { + "$ref": "AAAAAAFm8EDEY8E/75Q=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 590, + "top": 695, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFm8EDEY8FBOvg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFm8EDEY8FEJJ8=", + "_parent": { + "$ref": "AAAAAAFm8EDEY8FBOvg=" + }, + "model": { + "$ref": "AAAAAAFm8EDEY8E/75Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 630, + "top": 675, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFm8EDEY8FBOvg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFm8DSAlrEEXbo=" + }, + "tail": { + "$ref": "AAAAAAFm72//m1yKC2M=" + }, + "lineStyle": 1, + "points": "624:703;610:674", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFm8EDEY8FC4pc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFm8EDEY8FD7kQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAFm8EDEY8FEJJ8=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72s8c1m8ZKg=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "Vessel", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm737N6V3bncM=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "source": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "target": { + "$ref": "AAAAAAFmx2z3LtIoL5A=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFm720ILVuu0tI=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "name": "listOfObservers", + "visibility": "private", + "type": "ArrayList" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFm721jhFu2hcc=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "name": "Vessel" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm722Khlu+9JU=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "name": "attach", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm72278VvF1zc=", + "_parent": { + "$ref": "AAAAAAFm722Khlu+9JU=" + }, + "name": "Observer observer", + "type": "" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm723FelvHzso=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "name": "detach", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm723hn1vOPKY=", + "_parent": { + "$ref": "AAAAAAFm723FelvHzso=" + }, + "name": "Observer observer", + "type": "" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFm723iRFvQ3sw=", + "_parent": { + "$ref": "AAAAAAFm72s8c1m8ZKg=" + }, + "name": "getNoSubmersibles", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFm724DY1vXrmk=", + "_parent": { + "$ref": "AAAAAAFm723iRFvQ3sw=" + }, + "type": "int", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72s/8Vnl98w=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "AUV", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm73/vm16ROKA=", + "_parent": { + "$ref": "AAAAAAFm72s/8Vnl98w=" + }, + "source": { + "$ref": "AAAAAAFm72s/8Vnl98w=" + }, + "target": { + "$ref": "AAAAAAFm734QJV2GjDU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72tC1FoObIk=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "Moveable", + "stereotype": "Interface" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72tOW1pARbQ=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "MS", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm73/zZl6xwqw=", + "_parent": { + "$ref": "AAAAAAFm72tOW1pARbQ=" + }, + "source": { + "$ref": "AAAAAAFm72tOW1pARbQ=" + }, + "target": { + "$ref": "AAAAAAFm734QJV2GjDU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72tTSFppeN4=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "ROV", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm73/4FF7RslI=", + "_parent": { + "$ref": "AAAAAAFm72tTSFppeN4=" + }, + "source": { + "$ref": "AAAAAAFm72tTSFppeN4=" + }, + "target": { + "$ref": "AAAAAAFm734QJV2GjDU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72/0VlvkXzk=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "Equipment", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74HkwV8w6dk=", + "_parent": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + }, + "source": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + }, + "target": { + "$ref": "AAAAAAFm734QJV2GjDU=" + } + } + ], + "stereotype": "Abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72/4D1wNiQI=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "TopographicalMapper", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74JnOF9wM8U=", + "_parent": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + }, + "source": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + }, + "target": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + } + } + ], + "stereotype": "Abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72/6llw20SY=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "Sonar", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74Kwdl+wCXs=", + "_parent": { + "$ref": "AAAAAAFm72/6llw20SY=" + }, + "source": { + "$ref": "AAAAAAFm72/6llw20SY=" + }, + "target": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm72//m1yI2W0=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DataCollector", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8EDEY8E/75Q=", + "_parent": { + "$ref": "AAAAAAFm72//m1yI2W0=" + }, + "source": { + "$ref": "AAAAAAFm72//m1yI2W0=" + }, + "target": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + } + } + ], + "stereotype": "Interface" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm73ACvFyxDbI=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "MaterialSampler", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74TZ8mJLNLM=", + "_parent": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + }, + "source": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + }, + "target": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + } + } + ], + "stereotype": "Abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm73AFy1zaZVg=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "WaterReadings", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74Vpj2MKx4c=", + "_parent": { + "$ref": "AAAAAAFm73AFy1zaZVg=" + }, + "source": { + "$ref": "AAAAAAFm73AFy1zaZVg=" + }, + "target": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + } + } + ], + "stereotype": "Abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm73AIp10DSz4=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "Laser", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74af7GVDnfM=", + "_parent": { + "$ref": "AAAAAAFm73AIp10DSz4=" + }, + "source": { + "$ref": "AAAAAAFm73AIp10DSz4=" + }, + "target": { + "$ref": "AAAAAAFm72/4D1wNiQI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm73ALt10sQ1s=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "PhotoSensor", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74YbzmREH/U=", + "_parent": { + "$ref": "AAAAAAFm73ALt10sQ1s=" + }, + "source": { + "$ref": "AAAAAAFm73ALt10sQ1s=" + }, + "target": { + "$ref": "AAAAAAFm72/0VlvkXzk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm73AlK11VIhU=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "ChemicalScanner", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74e9sWZV6Dw=", + "_parent": { + "$ref": "AAAAAAFm73AlK11VIhU=" + }, + "source": { + "$ref": "AAAAAAFm73AlK11VIhU=" + }, + "target": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm734QJV2GjDU=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "Submersible", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm736wtF3Ithk=", + "_parent": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "source": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "target": { + "$ref": "AAAAAAFmx2wqZtFQ0d8=" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAFm7386NF3u/9k=", + "_parent": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "source": { + "$ref": "AAAAAAFm734QJV2GjDU=" + }, + "target": { + "$ref": "AAAAAAFm72tC1FoObIk=" + } + } + ], + "stereotype": "Abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm74daq2WryII=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "HotFluidScanner", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74fI9GZ1z64=", + "_parent": { + "$ref": "AAAAAAFm74daq2WryII=" + }, + "source": { + "$ref": "AAAAAAFm74daq2WryII=" + }, + "target": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm74dd4GXjo7o=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "RockCoringDrill", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm74fNV2aV8KQ=", + "_parent": { + "$ref": "AAAAAAFm74dd4GXjo7o=" + }, + "source": { + "$ref": "AAAAAAFm74dd4GXjo7o=" + }, + "target": { + "$ref": "AAAAAAFm73ACvFyxDbI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DOO1ap4omk=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "Data", + "stereotype": "Interface" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DOUCqqwyis=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "IndexOfRefractionReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8DVCZ7IRse0=", + "_parent": { + "$ref": "AAAAAAFm8DOUCqqwyis=" + }, + "source": { + "$ref": "AAAAAAFm8DOUCqqwyis=" + }, + "target": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DOYtaroWEs=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "PhotoSensorReading", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8DeGZ7bE5V8=", + "_parent": { + "$ref": "AAAAAAFm8DOYtaroWEs=" + }, + "source": { + "$ref": "AAAAAAFm8DOYtaroWEs=" + }, + "target": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DOc1qsgsIk=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "WaterReading", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8DW/M7JtSLw=", + "_parent": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + }, + "source": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + }, + "target": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DOjp6tYmAY=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "pHReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8DWdy7JHGLY=", + "_parent": { + "$ref": "AAAAAAFm8DOjp6tYmAY=" + }, + "source": { + "$ref": "AAAAAAFm8DOjp6tYmAY=" + }, + "target": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DOoq6uQoz0=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "LocationData", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8D1OC76ybP0=", + "_parent": { + "$ref": "AAAAAAFm8DOoq6uQoz0=" + }, + "source": { + "$ref": "AAAAAAFm8DOoq6uQoz0=" + }, + "target": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DOsKavIc2Q=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "MaterialSample", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8Dfc2beFe3o=", + "_parent": { + "$ref": "AAAAAAFm8DOsKavIc2Q=" + }, + "source": { + "$ref": "AAAAAAFm8DOsKavIc2Q=" + }, + "target": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DOyEqwANCU=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "LaserReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8DiSirgCu54=", + "_parent": { + "$ref": "AAAAAAFm8DOyEqwANCU=" + }, + "source": { + "$ref": "AAAAAAFm8DOyEqwANCU=" + }, + "target": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DO2a6w4o/0=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "SonarReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8DbuHLWuWz0=", + "_parent": { + "$ref": "AAAAAAFm8DO2a6w4o/0=" + }, + "source": { + "$ref": "AAAAAAFm8DO2a6w4o/0=" + }, + "target": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DO68qxwMyo=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "SalinityReading", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8Dc67rZOQuY=", + "_parent": { + "$ref": "AAAAAAFm8DO68qxwMyo=" + }, + "source": { + "$ref": "AAAAAAFm8DO68qxwMyo=" + }, + "target": { + "$ref": "AAAAAAFm8DOc1qsgsIk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DO9U6yoGdI=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "TopographicalMapping", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8DZ8iLS12zE=", + "_parent": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + }, + "source": { + "$ref": "AAAAAAFm8DO9U6yoGdI=" + }, + "target": { + "$ref": "AAAAAAFm8DOO1ap4omk=" + } + } + ], + "stereotype": "Abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DQEW6zgMaw=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCPhotoSensor", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8DnWp7lDg3g=", + "_parent": { + "$ref": "AAAAAAFm8DQEW6zgMaw=" + }, + "source": { + "$ref": "AAAAAAFm8DQEW6zgMaw=" + }, + "target": { + "$ref": "AAAAAAFm72//m1yI2W0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DQIdq0YACU=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "IndexOf" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DQLRa1Q+wI=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCLaser", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8DtItruUphU=", + "_parent": { + "$ref": "AAAAAAFm8DQLRa1Q+wI=" + }, + "source": { + "$ref": "AAAAAAFm8DQLRa1Q+wI=" + }, + "target": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DQNSK2IRW0=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCRockCoringDrill", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8DpATbmxM6A=", + "_parent": { + "$ref": "AAAAAAFm8DQNSK2IRW0=" + }, + "source": { + "$ref": "AAAAAAFm8DQNSK2IRW0=" + }, + "target": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DQaba5KfH0=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCChemicalScanner", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8DrmhrrPSEU=", + "_parent": { + "$ref": "AAAAAAFm8DQaba5KfH0=" + }, + "source": { + "$ref": "AAAAAAFm8DQaba5KfH0=" + }, + "target": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DQgr66R154=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCPH", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8D9k9L/iEHI=", + "_parent": { + "$ref": "AAAAAAFm8DQgr66R154=" + }, + "source": { + "$ref": "AAAAAAFm8DQgr66R154=" + }, + "target": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DQjG67Yovk=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCMaterialSampler", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8DpnP7nqeyA=", + "_parent": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + }, + "source": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + }, + "target": { + "$ref": "AAAAAAFm72//m1yI2W0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DRujq/q878=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCSalinity", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8EBUEsAxSJA=", + "_parent": { + "$ref": "AAAAAAFm8DRujq/q878=" + }, + "source": { + "$ref": "AAAAAAFm8DRujq/q878=" + }, + "target": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DR2PbBajDQ=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCHotFluidSampler", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8Dq2jLqPs5M=", + "_parent": { + "$ref": "AAAAAAFm8DR2PbBajDQ=" + }, + "source": { + "$ref": "AAAAAAFm8DR2PbBajDQ=" + }, + "target": { + "$ref": "AAAAAAFm8DQjG67Yovk=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DR+EbDK/A8=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCIndexOfRefraction", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8D7wk7+J7lQ=", + "_parent": { + "$ref": "AAAAAAFm8DR+EbDK/A8=" + }, + "source": { + "$ref": "AAAAAAFm8DR+EbDK/A8=" + }, + "target": { + "$ref": "AAAAAAFm8DSAlrECf+Q=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DSAlrECf+Q=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCWaterReadings", + "stereotype": "Interface" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8DSCn7E6lVk=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCTopographicalMapper", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAFm8Dv0Wrx0Z4s=", + "_parent": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + }, + "source": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + }, + "target": { + "$ref": "AAAAAAFm72//m1yI2W0=" + } + } + ], + "stereotype": "Interface" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFm8Dt9Lbu6Ur8=", + "_parent": { + "$ref": "AAAAAAFm72pmKVlSejo=" + }, + "name": "DCSonar", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFm8DuUx7v5I3g=", + "_parent": { + "$ref": "AAAAAAFm8Dt9Lbu6Ur8=" + }, + "source": { + "$ref": "AAAAAAFm8Dt9Lbu6Ur8=" + }, + "target": { + "$ref": "AAAAAAFm8DSCn7E6lVk=" + } + } + ] + } + ] + } + ] +} diff --git a/manifest.mf b/manifest.mf new file mode 100644 index 0000000..328e8e5 --- /dev/null +++ b/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/src/seabedexplorer/Main_State_Pattern.java b/src/seabedexplorer/Main_State_Pattern.java new file mode 100644 index 0000000..514e83e --- /dev/null +++ b/src/seabedexplorer/Main_State_Pattern.java @@ -0,0 +1,125 @@ + +package seabedexplorer; + +import java.util.ArrayList; +import java.util.Random; +import java.util.Scanner; +import seabedexplorer.submersible.*; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.states.*; +import seabedexplorer.util.submersible.*; + +/** + * + * @author Stedos + */ +public class Main_State_Pattern { + + public static void main(String[] args) throws InterruptedException + { + ///////// + //Tests// + ///////// + + //Create scanner for pauses in demonstration. + Scanner sc = new Scanner(System.in); + + //Generate random submersible (with all equipment attached) + SubmersibleBuilder subBuilder = new SubmersibleBuilder(generateRandomSubType()); + subBuilder.addAll(); + Submersible sub = subBuilder.build(); + //Print out all submersibles + System.out.println(sub.toString()); + System.out.println(); + System.out.println(); + System.out.println(); + + //Pause until user presses enter (to temp pause) + sc.nextLine(); + + //Change states of submersibles to docked (should be as default, but this is a check) + System.out.println(); + System.out.println(sub.getSubmersibleType() + ": "); + sub.changeState(new DockedState()); + + //Pause until user presses enter (to temp pause) + sc.nextLine(); + + //Move first submersible + System.out.println(sub.getSubmersibleType() + ": "); + sub.move(new Location(6, 4, -10)); + System.out.println(); + + + //Pause until user presses enter (to temp pause) + sc.nextLine(); + + //Print out sub types and states + System.out.println(); + System.out.println(sub.getSubmersibleType()); + System.out.println(sub.getState().toString()); + + + + //Data collection + //Try collecting material data for each sub + System.out.println(); + System.out.println(sub.collectMaterial()); + System.out.println(sub.toString()); + + //Pause until user presses enter (to temp pause) + sc.nextLine(); + + //Print out states for all submersibles + System.out.println(); + System.out.println("Sub is currently in state: " + sub.getState().toString()); + System.out.println(sub.toString()); + + //Pause until user presses enter (to temp pause) + sc.nextLine(); + + //Collect water sample (shows water sample can't be collected on a full inventory) + System.out.println(); + sub.collectWater(); + System.out.println("Sub is currently in state: " + sub.getState().toString()); + + //Pause until user presses enter (to temp pause) + sc.nextLine(); + + //Collect mapping sample (shows mapping data can be collected while inventory is full) + System.out.println(); + sub.collectMappingData(); + System.out.println("Sub is currently in state: " + sub.getState().toString()); + + + //Pause until user presses enter (to temp pause) + sc.nextLine(); + + //Return to vessel + System.out.println(); + sub.returnToVessel(); + + //Pause until user presses enter (to temp pause) + sc.nextLine(); + + //Print out final states and finish + System.out.println(); + System.out.println(sub.getSubmersibleType()); + System.out.println(sub.getState().toString()); + } + + + private static SubmersibleType generateRandomSubType() + { + Random r = new Random(); + switch(r.nextInt(3)) + { + case 0: return SubmersibleType.AUTOMATED_UNDERWATER_VEHICLE; + case 1: return SubmersibleType.MANNED_SUBMERSIBLE; + case 2: return SubmersibleType.REMOTE_OPERATED_VEHICLE; + } + return null; + + } + +} diff --git a/src/seabedexplorer/data/Data.java b/src/seabedexplorer/data/Data.java new file mode 100644 index 0000000..16b97d2 --- /dev/null +++ b/src/seabedexplorer/data/Data.java @@ -0,0 +1,11 @@ +package seabedexplorer.data; + +/** + * Data. Links all Data classes together as one data type. + * + * @author Dan Lawrence + */ +public interface Data +{ + +} diff --git a/src/seabedexplorer/data/IndexOfRefractionReading.java b/src/seabedexplorer/data/IndexOfRefractionReading.java new file mode 100644 index 0000000..b670018 --- /dev/null +++ b/src/seabedexplorer/data/IndexOfRefractionReading.java @@ -0,0 +1,86 @@ + +package seabedexplorer.data; + +/** + * IndexOfRefractionReading. Stores an angle of incidence, an angle of + * refraction, and an index of refraction. The former is inherent, the latter is + * calculated, and the other is recorded. + * + * @author Dan Lawrence + */ +public class IndexOfRefractionReading extends WaterReading { + + /** + * The index of refraction. + */ + double indexOfRefraction; + + /** + * The angle of incidence, in degrees. + */ + double angleOfIncidence; + + /** + * The angle of refraction, in degrees. + */ + double angleOfRefraction; + + /** + * Constructor. Is the only way to set the values of the angles of incidence + * and refraction. The index of refraction is calculated. + * + * @param angleOfRefractionIn The angle of refraction, in degrees. + * + * @param angleOfIncidenceIn The angle of incidence, in degrees. + */ + public IndexOfRefractionReading(double angleOfRefractionIn, double angleOfIncidenceIn) { + angleOfIncidence = angleOfIncidenceIn; + angleOfRefraction = angleOfRefractionIn; + + try { + indexOfRefraction = angleOfIncidence / angleOfRefraction; + } catch (ArithmeticException e) { + indexOfRefraction = 0; + } + + System.out.println("Refractive index reading stored successfully.\n"); + } + + /** + * Returns the angle of incidence, of the same data type it is stored as (double). + */ + public double getAngleOfIncidence() { + return angleOfIncidence; + } + + /** + * Returns the angle of refraction, of the same data type it is stored as (double). + */ + public double getAngleOfRefraction() { + return angleOfRefraction; + } + + /** + * Returns the index of refraction, of the same data type it is stored as (double). + */ + public double getIndexOfRefraction() { + return indexOfRefraction; + } + + @Override + public String toString() { + String reading = "Refractive Index Reading:\n" + + " Angle of Incidence: " + angleOfIncidence + "°\n" + + " Recorded Angle of Refraction: " + angleOfRefraction + "°\n" + + " Determined Refractive Index: "; + + if (indexOfRefraction == 0) + reading += "Undefined"; + else + reading += indexOfRefraction; + + reading += "\n"; + + return reading; + } +} diff --git a/src/seabedexplorer/data/LaserReading.java b/src/seabedexplorer/data/LaserReading.java new file mode 100644 index 0000000..c91981d --- /dev/null +++ b/src/seabedexplorer/data/LaserReading.java @@ -0,0 +1,66 @@ + +package seabedexplorer.data; + +/** + * LaserReading. Stores an angle, as recorded by a laser camera, as well as a + * distance that is a useful property of the laser camera itself. + * + * @author Dan Lawrence + * @version %I%, %G% + */ +public class LaserReading extends TopographicalMapping{ + + /** + * The recorded angle, in degrees. + */ + double angle; + + /** + * The distance between the camera and the laser, in meters. + */ + double distance; + + /** + * Constructor. Is the only way to set the values of the reading, and the + * distance. + * + * @param angleIn The recorded angle, in degrees. + * + * @param distanceIn The distance between the camera and the laser, in + * meters. + */ + public LaserReading(double angleIn, double distanceIn) { + angle = angleIn; + distance = distanceIn; + + calculateDepth(); + + System.out.println("Laser camera depth reading stored successfully.\n"); + } + + @Override + void calculateDepth() { + depth = distance / Math.tan(angle / (180/Math.PI)); + } + + /** + * Returns the angle, of the same data type it is stored as (double). + */ + public double getAngle() { + return angle; + } + + /** + * Returns the distance, of the same data type it is stored as (double). + */ + public double getDistance() { + return distance; + } + + @Override + public String toString() { + return "Laser camera reading:\n" + + " Recorded angle: " + angle + "°\n" + + " Determined depth: " + depth + "m\n"; + } +} diff --git a/src/seabedexplorer/data/MaterialSample.java b/src/seabedexplorer/data/MaterialSample.java new file mode 100644 index 0000000..02b9655 --- /dev/null +++ b/src/seabedexplorer/data/MaterialSample.java @@ -0,0 +1,74 @@ +package seabedexplorer.data; + +/** + * MaterialSample. Stores the mass, and volume of a material sample, as + * collected by a piece of material sampling equipment. + * + * @author Dan Lawrence + */ +public class MaterialSample implements Data +{ + + /** + * Volume of the sample, in meters cubed. Is dependant entirely on the + * capacity of the sampler. + */ + double volume; + + /** + * Mass of the sample, in kilograms. + */ + double mass; + + /** + * Density of the sample, in kg/m³. + */ + double density; + + /** + * Constructor. Is the only way to set the values for mass and volume. The + * value of density is calculated, so cannot be set manually. + * + * @param volumeIn Volume of the sample, in meters cubed. Is dependant entirely on the + * capacity of the sampler. + * + * @param massIn Mass of the sample, in kilograms. + */ + public MaterialSample(double volumeIn, double massIn) { + volume = volumeIn; + mass = massIn; + + density = mass/volume; + + System.out.println("Material sample collected successfully.\n"); + } + + /** + * Returns the volume, of the same data type it is stored as (double). + */ + public double getVolume() { + return volume; + } + + /** + * Returns the mass, of the same data type it is stored as (double). + */ + public double getMass() { + return mass; + } + + /** + * Returns the density, of the same data type it is stored as (double). + */ + public double getDensity() { + return density; + } + + @Override + public String toString() { + return "Material sample:\n" + + " Volume of sample: " + volume + "m³\n" + + " Recorded mass of sample: " + mass + "kg\n" + + " Determined density of sample: " + density + "kg/m³\n"; + } +} diff --git a/src/seabedexplorer/data/PhotoSensorReading.java b/src/seabedexplorer/data/PhotoSensorReading.java new file mode 100644 index 0000000..57486ac --- /dev/null +++ b/src/seabedexplorer/data/PhotoSensorReading.java @@ -0,0 +1,51 @@ +package seabedexplorer.data; + +/** + * PhotoSensorReading. Stores a wavelength, as recorded by a photo-sensor. + * + * @author Dan Lawrence + */ +public class PhotoSensorReading implements Data +{ + /** + * The wavelength of the detected EM radiation, in nanometres. + */ + double wavelength; + + /** + * Constructor. Is the only way to set the value of the reading. + * + * @param wavelengthIn The wavelength of the detected EM radiation, in nanometres. + */ + public PhotoSensorReading(double wavelengthIn) { + wavelength = wavelengthIn; + + System.out.println("Photo-sensor reading stored successfully.\n"); + } + + /** + * Returns the wavelength, of the same data type as it is stored as (double). + */ + public double getReading() { + return wavelength; + } + + @Override + public String toString() { + + String reading = "Photosensor reading:\n" + + " Recorded wavelength: " + wavelength + "nm\n" + + " Type of EM radiation received: "; + + if (wavelength < 400) + reading += "Ultra-Violet"; + else if (wavelength > 700) + reading += "Infra-Red"; + else + reading += "Visible light"; + + reading += "\n"; + + return reading; + } +} diff --git a/src/seabedexplorer/data/SalinityReading.java b/src/seabedexplorer/data/SalinityReading.java new file mode 100644 index 0000000..7131e75 --- /dev/null +++ b/src/seabedexplorer/data/SalinityReading.java @@ -0,0 +1,40 @@ + +package seabedexplorer.data; + +/** + * SalinityReading. Stores a recorded value of the salinity of the seawater. + * + * @author Dan Lawrence + */ +public class SalinityReading extends WaterReading { + + /** + * The recorded salinity, in parts per thousand. + */ + double salinity; + + /** + * Constructor. Is the only way to set the value of the recorded pH. + * + * @param salinityIn The recorded salinity, in parts per thousand. + */ + public SalinityReading(double salinityIn) { + salinity = salinityIn; + + System.out.println("Salinity reading stored successfully.\n"); + } + + /** + * Returns the salinity, of the same data type it is stored as (double). + */ + public double getReading() { + return salinity; + } + + @Override + public String toString() { + return "Salinity reading:\n" + + " Recorded salinity: " + salinity + "ppt\n"; + } + +} diff --git a/src/seabedexplorer/data/SonarReading.java b/src/seabedexplorer/data/SonarReading.java new file mode 100644 index 0000000..2026b39 --- /dev/null +++ b/src/seabedexplorer/data/SonarReading.java @@ -0,0 +1,50 @@ + +package seabedexplorer.data; + +/** + * SonarReading. Stores a response time, as recorded by a sonar + * emitter/receiver. + * + * @author Dan Lawrence + */ +public class SonarReading extends TopographicalMapping { + + /** + * The recorded response time, in milliseconds. + */ + double responseTime; + + /** + * Constructor. Is the only way to set a value for the response time + * reading. + * + * @param responseTimeIn The response time, as recorded by the sonar + * receiver. + */ + public SonarReading(double responseTimeIn) { + responseTime = responseTimeIn; + + calculateDepth(); + + System.out.println("Sonar depth reading stored successfully.\n"); + } + + @Override + void calculateDepth() { + depth = responseTime * 1.5; + } + + /** + * Returns the response time, of the same data type it is stored as (double) + */ + public double getReading() { + return responseTime; + } + + @Override + public String toString() { + return "Sonar reading:\n" + + " Response time: " + responseTime + "ms\n" + + " Determined depth: " + depth + "m\n"; + } +} diff --git a/src/seabedexplorer/data/TopographicalMapping.java b/src/seabedexplorer/data/TopographicalMapping.java new file mode 100644 index 0000000..91a365f --- /dev/null +++ b/src/seabedexplorer/data/TopographicalMapping.java @@ -0,0 +1,27 @@ +package seabedexplorer.data; + +/** + * TopographicalMapping. Holds some common data and behaviour between + * LaserReading and SonarReading + * + * @author Dan Lawrence + */ +public abstract class TopographicalMapping implements Data +{ + /** + * The calculated depth of the seabed, in meters. + */ + double depth; + + /** + * Calculates the depth of the seabed using the stored readings. + */ + abstract void calculateDepth(); + + /** + * Returns the depth, of the same data type it is stored as (double). + */ + public double getDepth() { + return depth; + } +} diff --git a/src/seabedexplorer/data/WaterReading.java b/src/seabedexplorer/data/WaterReading.java new file mode 100644 index 0000000..1a20b62 --- /dev/null +++ b/src/seabedexplorer/data/WaterReading.java @@ -0,0 +1,11 @@ +package seabedexplorer.data; + +/** + * WaterReading + * + * @author Dan Lawrence. + */ +public abstract class WaterReading implements Data +{ + +} diff --git a/src/seabedexplorer/data/pHReading.java b/src/seabedexplorer/data/pHReading.java new file mode 100644 index 0000000..962d044 --- /dev/null +++ b/src/seabedexplorer/data/pHReading.java @@ -0,0 +1,51 @@ + +package seabedexplorer.data; + +/** + * pHReading. Stores a recorded value for the pH of the seawater. + * + * @author Dan Lawrence + */ +public class pHReading extends WaterReading { + + /** + * The recorded pH. + */ + double pH; + + /** + * Constructor. Is the only way to set the value of the recorded pH. + * + * @param pHIn The recorded pH. + */ + public pHReading(double pHIn) { + pH = pHIn; + + System.out.println("Seawater pH reading stored successfully.\n"); + } + + /** + * Returns the pH, of the same data type it is stored as (double). + */ + public double getReading() { + return pH; + } + + @Override + public String toString() { + String reading = "pH Reading:\n" + + " Recorded pH: " + pH + "\n" + + " Acid or Alkali: "; + + if (pH < 7) + reading += "Acid"; + else if (pH > 7) + reading += "Alkali"; + else + reading += "Neither"; + + reading += "\n"; + + return reading; + } +} diff --git a/src/seabedexplorer/observer/Observer.java b/src/seabedexplorer/observer/Observer.java new file mode 100644 index 0000000..76d6b2e --- /dev/null +++ b/src/seabedexplorer/observer/Observer.java @@ -0,0 +1,18 @@ +package seabedexplorer.observer; + + +/** + * An Observer interface created to facilitate the implementation of the Observer design pattern between Vessels and Submersibles. + * + * @author Dylan Currey + * @since 01/11/18 + */ +public interface Observer { + + /** + * Updates the Observer with the specified command + * @param cmd the passed command + */ + public boolean update(String cmd); + +} diff --git a/src/seabedexplorer/observer/Subject.java b/src/seabedexplorer/observer/Subject.java new file mode 100644 index 0000000..d2b0499 --- /dev/null +++ b/src/seabedexplorer/observer/Subject.java @@ -0,0 +1,38 @@ +package seabedexplorer.observer; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * A Subject interface created to facilitate the implementation of the Observer design pattern between Vessels and Submersibles. + * + * @author Dylan Currey + * @since 01/11/18 + */ +public interface Subject +{ + + /** + * An ArrayList containing all observers attached to the concrete subject. + */ + Collection listOfObservers = new ArrayList<>(); + + /** + * Attaches observers to the subject. + * @param observer the Observer object to be attached. + */ + public void attach(Observer observer); + + /** + * Detaches observers from the subject + * @param observer the Observer object to be detached + */ + public void detach (Observer observer); + + /** + * Updates all observers in listOfObservers with a command. + * @param cmd the command sent. + */ + public boolean updateObservers(String cmd); + +} diff --git a/src/seabedexplorer/submersible/AUV.java b/src/seabedexplorer/submersible/AUV.java new file mode 100644 index 0000000..04b7b0b --- /dev/null +++ b/src/seabedexplorer/submersible/AUV.java @@ -0,0 +1,58 @@ +package seabedexplorer.submersible; + +import java.util.ArrayList; +import seabedexplorer.submersible.state.states.DockedState; + +/** + * AUV (Automated Underwater Vehicle) (A type of submersible) + * + * @author JLScott1999 + */ +public final class AUV extends Submersible +{ + + private static final String TYPE = "AUV (Automated Underwater Vehicle)"; + + /** + * Constructor + */ + public AUV() + { + super(new ArrayList<>()); + changeState(new DockedState()); + } + + /** + * Returns this object + * @return Submersible object + */ + @Override + public Submersible getSubmersible() + { + return this; + } + + @Override + public void collectData() + { + + } + + @Override + public boolean update(String cmd) { + return false; + } + + @Override + public String getSubmersibleType() + { + return TYPE; + } + + @Override + public String toString() + { + return "Type: " + TYPE + "\n" + super.toString(); + } + +} diff --git a/src/seabedexplorer/submersible/MS.java b/src/seabedexplorer/submersible/MS.java new file mode 100644 index 0000000..b90c96d --- /dev/null +++ b/src/seabedexplorer/submersible/MS.java @@ -0,0 +1,58 @@ +package seabedexplorer.submersible; + +import java.util.ArrayList; +import seabedexplorer.submersible.state.states.DockedState; + +/** + * MS (Manned Submersible) (A type of submersible) + * + * @author JLScott1999 + */ +public final class MS extends Submersible +{ + + private static final String TYPE = "MS (Manned Submersible)"; + + /** + * Constructor + */ + public MS() + { + super(new ArrayList<>()); + changeState(new DockedState()); + } + + /** + * Returns this object + * @return Submersible object + */ + @Override + public Submersible getSubmersible() + { + return this; + } + + @Override + public void collectData() + { + + } + + @Override + public boolean update(String cmd) { + return false; + } + + @Override + public String getSubmersibleType() + { + return TYPE; + } + + @Override + public String toString() + { + return "Type: " + TYPE + "\n" + super.toString(); + } + +} diff --git a/src/seabedexplorer/submersible/Moveable.java b/src/seabedexplorer/submersible/Moveable.java new file mode 100644 index 0000000..c932176 --- /dev/null +++ b/src/seabedexplorer/submersible/Moveable.java @@ -0,0 +1,15 @@ + +package seabedexplorer.submersible; + +import seabedexplorer.submersible.equipment.locationtracking.Location; + +public interface Moveable { + + Location currentLocation = null; + + public void move(Location loc); + public void stopMove(); + public boolean canMove(); + public boolean returnToVessel(); + +} diff --git a/src/seabedexplorer/submersible/ROV.java b/src/seabedexplorer/submersible/ROV.java new file mode 100644 index 0000000..e3c6540 --- /dev/null +++ b/src/seabedexplorer/submersible/ROV.java @@ -0,0 +1,58 @@ +package seabedexplorer.submersible; + +import java.util.ArrayList; +import seabedexplorer.submersible.state.states.DockedState; + +/** + * ROV (Remote Operated Vehicle) (A type of submersible) + * + * @author JLScott1999 + */ +public final class ROV extends Submersible +{ + + private static final String TYPE = "ROV (Remote Operated Vehicle)"; + + /** + * Constructor + */ + public ROV() + { + super(new ArrayList<>()); + changeState(new DockedState()); + } + + /** + * Returns this object + * @return Submersible object + */ + @Override + public Submersible getSubmersible() + { + return this; + } + + @Override + public void collectData() + { + + } + + @Override + public boolean update(String cmd) { + return false; + } + + @Override + public String getSubmersibleType() + { + return TYPE; + } + + @Override + public String toString() + { + return "Type: " + TYPE + "\n" + super.toString(); + } + +} diff --git a/src/seabedexplorer/submersible/Submersible.java b/src/seabedexplorer/submersible/Submersible.java new file mode 100644 index 0000000..c3e5683 --- /dev/null +++ b/src/seabedexplorer/submersible/Submersible.java @@ -0,0 +1,182 @@ +package seabedexplorer.submersible; + +import java.util.Collection; +import seabedexplorer.data.Data; +import seabedexplorer.observer.Observer; +import seabedexplorer.submersible.equipment.locationtracking.GPS; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DockedState; + +/** + * Submersible + * + * @author JLScott1999 + */ +public abstract class Submersible implements Observer, Moveable +{ + + /** + * Data storage for the submarine + */ + protected Collection dataCollection; + + /** + * State of the submersible + */ + private SubmersibleState currentState; + + private GPS gps; + + /** + * Constructor creating a submersible with some type of data storage eg) ArrayList or LinkedList + * @param dataCollection the data storage to use eg) ArrayList or LinkedList + */ + public Submersible(Collection dataCollection) + { + this.dataCollection = dataCollection; + gps = new GPS(); + currentState = new DockedState(); + } + + /** + * Constructor creating a submersible without any data storage state or gps + */ + public Submersible() + { + + } + + /** + * Get the submersible object + * @return submersible object memory address + */ + public abstract Submersible getSubmersible(); + + /** + * Get the submersible type + * @return submersible type such as AUV, ROV, etc.. + */ + public abstract String getSubmersibleType(); + + /** + * Collect data using one of the equipment provided + */ + public abstract void collectData(); + + /** + * Get the data stored on the submersible + * @return the data stored on the submersible + */ + public Collection getData() { + return dataCollection; + } + + /** + * Add data to store on the submersible + * @param data the data to store on the submersible + */ + public void addData(Data data) + { + if (data != null) + { + dataCollection.add(data); + } + } + + /** + * Clear the data stored on a submersible + */ + public void clearData() + { + if (dataCollection != null) + { + dataCollection.removeAll(dataCollection); + } + } + + public void changeState(SubmersibleState state) + { + currentState = state; + state.submersibleInstance(this); + System.out.println("State Changed: " + currentState.toString()); + } + + public SubmersibleState getState() + { + return currentState; + } + + public String getStateName() + { + return currentState.toString(); + } + + @Override + public void move(Location loc) + { + currentState.move(loc); + } + + @Override + public void stopMove() + { + currentState.stopMove(); + } + + @Override + public boolean canMove() + { + return currentState.canMove(); + } + + public boolean returnToVessel() + { + return currentState.returnToVessel(); + } + + public boolean collectWater() + { + return currentState.collectWater(); + } + + public boolean collectMaterial() + { + return currentState.collectMaterial(); + } + + public boolean collectMappingData() + { + return currentState.collectMappingData(); + } + + public GPS getGPS() + { + return gps; + } + + public void setGPS(GPS gps) + { + this.gps = gps; + } + + @Override + public String toString() + { + String result = ""; + if (currentState != null) + { + result += "State: " + currentState.toString() + "\n"; + } + if (dataCollection != null) + { + result += "Data:"; + for (Data d: dataCollection) + { + result += "\n " + d.toString().replace("\n", "\n "); + } + } + return result + "\nEquipment:"; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/Equipment.java b/src/seabedexplorer/submersible/equipment/Equipment.java new file mode 100644 index 0000000..4d6598b --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/Equipment.java @@ -0,0 +1,165 @@ +package seabedexplorer.submersible.equipment; + +import java.util.Collection; +import seabedexplorer.data.Data; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.DataCollector; +import seabedexplorer.submersible.equipment.locationtracking.GPS; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; + +/** + * Equipment + * + * @author JLScott1999 + */ +public abstract class Equipment extends Submersible +{ + + private Submersible submersible; + private final DataCollector dataCollector; + + public Equipment(Submersible submersible, DataCollector dataCollector) + { + this.submersible = submersible; + this.dataCollector = dataCollector; + } + + protected void setSubmersible(Submersible submersible) + { + this.submersible = submersible; + } + + @Override + public Submersible getSubmersible() + { + return submersible; + } + + @Override + public String getSubmersibleType() + { + return submersible.getSubmersibleType(); + } + + @Override + public void addData(Data data) + { + submersible.addData(data); + } + + @Override + public void collectData() + { + addData(dataCollector.performReading()); + } + + @Override + public Collection getData() { + return submersible.getData(); + } + + public boolean collectWater() + { + return submersible.collectWater(); + } + + public boolean collectMaterial() + { + return submersible.collectMaterial(); + } + + public boolean collectMappingData() + { + return submersible.collectMappingData(); + } + + @Override + public void clearData() + { + submersible.clearData(); + } + + @Override + public void changeState(SubmersibleState state) + { + submersible.changeState(state); + } + + @Override + public SubmersibleState getState() + { + return submersible.getState(); + } + + @Override + public String getStateName() + { + return submersible.getStateName(); + } + + @Override + public void move(Location loc) + { + submersible.move(loc); + } + + @Override + public void stopMove() + { + submersible.stopMove(); + } + + @Override + public boolean canMove() + { + return submersible.canMove(); + } + + @Override + public boolean returnToVessel() + { + return submersible.returnToVessel(); + } + + @Override + public GPS getGPS() + { + return submersible.getGPS(); + } + + @Override + public void setGPS(GPS gps) + { + submersible.setGPS(gps); + } + + @Override + public boolean update(String cmd) + { + boolean result; + if (cmd.equalsIgnoreCase("all")) + { + collectData(); + result = true; + submersible.update(cmd); + } + else if (cmd.equalsIgnoreCase("info")) + { + System.out.println(toString() + "\n"); + result = true; + } + else + { + result = submersible.update(cmd); + } + return result; + } + + @Override + public String toString() + { + return submersible.toString() + "\n "; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/PhotoSensor.java b/src/seabedexplorer/submersible/equipment/PhotoSensor.java new file mode 100644 index 0000000..401641f --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/PhotoSensor.java @@ -0,0 +1,36 @@ +package seabedexplorer.submersible.equipment; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.DCPhotoSensor; + +/** + * + * @author JLScott1999 + */ +public class PhotoSensor extends Equipment +{ + + public PhotoSensor(Submersible drone) + { + super(drone, new DCPhotoSensor()); + } + + @Override + public String toString() + { + return super.toString() + "Photo Sensor"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("photosensor")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/DCPhotoSensor.java b/src/seabedexplorer/submersible/equipment/datacollector/DCPhotoSensor.java new file mode 100644 index 0000000..ea52c90 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/DCPhotoSensor.java @@ -0,0 +1,47 @@ +package seabedexplorer.submersible.equipment.datacollector; + +import java.util.concurrent.ThreadLocalRandom; +import seabedexplorer.data.PhotoSensorReading; + +/** + * PhotoSensor. Simulates the behaviour of a photo-sensor detecting + * Electro-Magnetic radiation, between Infra-Red and Ultra-Violet, and recording + * its wavelength. + * + * @author Dan Lawrence + */ +public class DCPhotoSensor implements DataCollector +{ + + @Override + public PhotoSensorReading performReading() + { + System.out.println("Taking wavelength reading with photo sensor..."); + + double actualWavelength = ThreadLocalRandom.current().nextDouble(10,1000000); + + double wavelength; + + double lowBound = 0; + double highBound = 0; + + if (ThreadLocalRandom.current().nextInt(0, 10) == 0) + wavelength = ThreadLocalRandom.current().nextDouble(10,1000000); + else { + + if (0.9 * actualWavelength < 10) + lowBound = 10; + else if (1.1 * actualWavelength > 1000000) + highBound = 1000000; + else { + lowBound = 0.9 * actualWavelength; + highBound = 1.1 * actualWavelength; + } + + wavelength = ThreadLocalRandom.current().nextDouble(lowBound,highBound); + } + + return new PhotoSensorReading(wavelength); + } + +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/DataCollector.java b/src/seabedexplorer/submersible/equipment/datacollector/DataCollector.java new file mode 100644 index 0000000..bb1fd4c --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/DataCollector.java @@ -0,0 +1,22 @@ +package seabedexplorer.submersible.equipment.datacollector; + +import seabedexplorer.data.Data; + +/** + * DataCollector + * + * @author JLScott1999 + */ +public interface DataCollector +{ + /** + * Simulates the process of the equipment taking whichever reading it is + * designed to take, and creates a new specialised Data object to store it. + * + * @return A specialised Data object, that contains the reading that was + * taken, alongside any variables which need to be specified, if any, and + * any useful values calculated using the reading, if any. + */ + public Data performReading(); + +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCChemicalScanner.java b/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCChemicalScanner.java new file mode 100644 index 0000000..4187416 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCChemicalScanner.java @@ -0,0 +1,14 @@ +package seabedexplorer.submersible.equipment.datacollector.materialsampler; + +/** + * DCChemicalScanner. Currently, data is generated in the same way as any other + * material sampler. + * + * @author Dan Lawrence + */ +public class DCChemicalScanner extends DCMaterialSampler +{ + public DCChemicalScanner(double volumeIn) { + super(volumeIn); + } +} \ No newline at end of file diff --git a/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCHotFluidSampler.java b/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCHotFluidSampler.java new file mode 100644 index 0000000..acce18e --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCHotFluidSampler.java @@ -0,0 +1,14 @@ +package seabedexplorer.submersible.equipment.datacollector.materialsampler; + +/** + * DCHotFluidSampler. Currently, data is generated in the same way as any other + * material sampler. + * + * @author Dan Lawrence + */ +public class DCHotFluidSampler extends DCMaterialSampler +{ + public DCHotFluidSampler(double volumeIn) { + super(volumeIn); + } +} \ No newline at end of file diff --git a/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCMaterialSampler.java b/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCMaterialSampler.java new file mode 100644 index 0000000..b945ce4 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCMaterialSampler.java @@ -0,0 +1,48 @@ +package seabedexplorer.submersible.equipment.datacollector.materialsampler; + +import java.util.concurrent.ThreadLocalRandom; +import seabedexplorer.data.Data; +import seabedexplorer.data.MaterialSample; +import seabedexplorer.submersible.equipment.datacollector.DataCollector; + +/** + * DCMaterialSampler. Simulates the behaviour of a material sample of a + * specified volume being collected, and having its mass recorded. + * + * @author Dan Lawrence + */ +public abstract class DCMaterialSampler implements DataCollector +{ + /** + * The volume of the sample, in m³. Determined by the capacity of the + * equipment. + */ + double volume; + + /** + * Constructor. Used to transfer the capacity of the equipment into this + * class, so it can be passed into the reading. + * @param volumeIn - The sample capacity of the equipment. + */ + public DCMaterialSampler(double volumeIn) { + volume = volumeIn; + } + + @Override + public Data performReading() { + System.out.println("Collecting material sample, of volume " + volume + "m³..."); + + double actualDensity = ThreadLocalRandom.current().nextDouble(0, 22500); + double actualMass = actualDensity * volume; + + double mass; + + if (ThreadLocalRandom.current().nextInt(0, 10) == 0) + mass = ThreadLocalRandom.current().nextDouble(0,25000); + else + mass = ThreadLocalRandom.current().nextDouble(0.9 * actualMass, 1.1 * actualMass); + + return new MaterialSample(volume,mass); + } + +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCRockCoringDrill.java b/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCRockCoringDrill.java new file mode 100644 index 0000000..978af00 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/materialsampler/DCRockCoringDrill.java @@ -0,0 +1,14 @@ +package seabedexplorer.submersible.equipment.datacollector.materialsampler; + +/** + * DCRockCoringDrill. Currently, data is generated in the same way as any other + * material sampler. + * + * @author Dan Lawrence + */ +public class DCRockCoringDrill extends DCMaterialSampler +{ + public DCRockCoringDrill(double volumeIn) { + super(volumeIn); + } +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCLaser.java b/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCLaser.java new file mode 100644 index 0000000..038340a --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCLaser.java @@ -0,0 +1,52 @@ +package seabedexplorer.submersible.equipment.datacollector.topographicalmapper; + +import java.util.concurrent.ThreadLocalRandom; +import seabedexplorer.data.LaserReading; +import seabedexplorer.data.TopographicalMapping; + +/** + * DCLaser. Simulates the behaviour of a laser camera, with a specified distance + * between the camera, and the emitter. An angle is recorded, and is used in a + * trigonometric function to calculate the depth of the seabed, at the point + * that the laser landed. + * + * @author Dan Lawrence + */ +public class DCLaser implements DCTopographicalMapper +{ + /** + * The distance between the camera, and the laser emitter, in meters. + */ + double distance; + + /** + * Constructor. Used to transfer the distance into this class, so it can be + * passed into the reading. + * + * @param distanceIn The distance between the camera, and the laser emitter, + * in meters. + */ + public DCLaser(double distanceIn) { + distance = distanceIn; + } + + @Override + public TopographicalMapping performReading() + { + System.out.println("Taking depth reading with laser camera, distance of " + + distance + "m between camera, and emitter..."); + + double actualDepth = ThreadLocalRandom.current().nextDouble(0,10000); + double actualAngle = (180/Math.PI) * Math.atan(distance / actualDepth); + + double angle; + + if (ThreadLocalRandom.current().nextInt(0, 10) == 0) + angle = ThreadLocalRandom.current().nextDouble(0,90); + else + angle = ThreadLocalRandom.current().nextDouble(0.9 * actualAngle, 1.1 * actualAngle); + + return new LaserReading(angle,distance); + } + +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCSonar.java b/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCSonar.java new file mode 100644 index 0000000..1f677d5 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCSonar.java @@ -0,0 +1,37 @@ +package seabedexplorer.submersible.equipment.datacollector.topographicalmapper; + +import java.util.concurrent.ThreadLocalRandom; +import seabedexplorer.data.SonarReading; +import seabedexplorer.data.TopographicalMapping; + +/** + * DCSonar. Simulates the behaviour of a sonar emitter/receiver sending a signal + * towards the seabed, so it can estimate the depth of the sea at that point. + * + * @author Dan Lawrence + */ +public class DCSonar implements DCTopographicalMapper +{ + + @Override + public TopographicalMapping performReading() + { + System.out.println("Taking depth reading with sonar emitter/receiver..."); + + double actualDepth = ThreadLocalRandom.current().nextDouble(0,10000); + double actualResponseTime = actualDepth / 1.5; + + double responseTime; + + if (ThreadLocalRandom.current().nextInt(0, 10) == 0) + responseTime = ThreadLocalRandom.current().nextDouble(10000); + else + responseTime = ThreadLocalRandom + .current() + .nextDouble(0.9 * actualResponseTime, 1.1* actualResponseTime); + + return new SonarReading(responseTime); + } + +} + \ No newline at end of file diff --git a/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCTopographicalMapper.java b/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCTopographicalMapper.java new file mode 100644 index 0000000..108a851 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/topographicalmapper/DCTopographicalMapper.java @@ -0,0 +1,13 @@ +package seabedexplorer.submersible.equipment.datacollector.topographicalmapper; + +import seabedexplorer.submersible.equipment.datacollector.DataCollector; + +/** + * DCTopographicalMapper + * + * @author JLScott1999 + */ +public interface DCTopographicalMapper extends DataCollector +{ + +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCIndexOfRefraction.java b/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCIndexOfRefraction.java new file mode 100644 index 0000000..f6f314c --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCIndexOfRefraction.java @@ -0,0 +1,42 @@ +package seabedexplorer.submersible.equipment.datacollector.waterreadings; + +import java.util.concurrent.ThreadLocalRandom; +import seabedexplorer.data.IndexOfRefractionReading; +import seabedexplorer.data.WaterReading; + +/** + * DCIndexOfRefraction. Generates an angle of refraction, using a given angle of + * incidence, and stores the reading in a specialised Data class. + * + * @author Dan Lawrence + */ +public class DCIndexOfRefraction implements DCWaterReadings +{ + /** + * The angle of incidence, i.e. the angle at which the ray of light enters + * the water. + */ + double angleOfIncidence; + + public DCIndexOfRefraction(double angleOfIncidenceIn) { + angleOfIncidence = angleOfIncidenceIn; + } + + @Override + public WaterReading performReading() + { + System.out.println("Taking a refraction index reading of the seawater; incidence angle of " + + angleOfIncidence + "°..."); + + double actualAngleOfRefraction = angleOfIncidence / 1.38; + + double AngleOfRefraction; + + if (ThreadLocalRandom.current().nextInt(0, 10) == 0) + AngleOfRefraction = ThreadLocalRandom.current().nextDouble(0,90); + else + AngleOfRefraction = ThreadLocalRandom.current().nextDouble(0.9 * actualAngleOfRefraction, 1.1 * actualAngleOfRefraction); + + return new IndexOfRefractionReading(AngleOfRefraction, angleOfIncidence); + } +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCPH.java b/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCPH.java new file mode 100644 index 0000000..071081f --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCPH.java @@ -0,0 +1,32 @@ +package seabedexplorer.submersible.equipment.datacollector.waterreadings; + +import java.util.concurrent.ThreadLocalRandom; +import seabedexplorer.data.pHReading; +import seabedexplorer.data.WaterReading; + +/** + * DCPH. Simulates the behaviour of a pH strip. A pH is recorded, within the + * real pH range of seawater (7.5, 8.4), and the result saved to a specialised + * Data class. + * + * @author Dan Lawrence + */ +public class DCPH implements DCWaterReadings +{ + + @Override + public WaterReading performReading() + { + System.out.println("Taking pH reading of the seawater, with a pH strip..."); + + double pH; + + if (ThreadLocalRandom.current().nextInt(0, 10) == 0) + pH = ThreadLocalRandom.current().nextDouble(1,14); + else + pH = ThreadLocalRandom.current().nextDouble(7.5, 8.4); + + return new pHReading(pH); + } + +} diff --git a/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCSalinity.java b/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCSalinity.java new file mode 100644 index 0000000..9099d20 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCSalinity.java @@ -0,0 +1,33 @@ +package seabedexplorer.submersible.equipment.datacollector.waterreadings; + +import java.util.concurrent.ThreadLocalRandom; +import seabedexplorer.data.SalinityReading; +import seabedexplorer.data.WaterReading; + +/** + * DCSalinity. Generates a value for the recorded salinity, close to the actual + * salinity of seawater, and stores it in a specialised Data class. + * + * @author Dan Lawrence + */ +public class DCSalinity implements DCWaterReadings +{ + + @Override + public WaterReading performReading() + { + System.out.println("Taking salinity reading of the seawater..."); + + double actualSalinity = 35; + + double Salinity; + + if (ThreadLocalRandom.current().nextInt(0, 10) == 0) + Salinity = ThreadLocalRandom.current().nextDouble(0,1000); + else + Salinity = ThreadLocalRandom.current().nextDouble(0.9 * actualSalinity, 1.1 * actualSalinity); + + return new SalinityReading(Salinity); + } + +} \ No newline at end of file diff --git a/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCWaterReadings.java b/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCWaterReadings.java new file mode 100644 index 0000000..1525e3a --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/datacollector/waterreadings/DCWaterReadings.java @@ -0,0 +1,13 @@ +package seabedexplorer.submersible.equipment.datacollector.waterreadings; + +import seabedexplorer.submersible.equipment.datacollector.DataCollector; + +/** + * DCWaterReadings + * + * @author JLScott1999 + */ +public interface DCWaterReadings extends DataCollector +{ + +} diff --git a/src/seabedexplorer/submersible/equipment/locationtracking/GPS.java b/src/seabedexplorer/submersible/equipment/locationtracking/GPS.java new file mode 100644 index 0000000..71f6763 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/locationtracking/GPS.java @@ -0,0 +1,23 @@ +package seabedexplorer.submersible.equipment.locationtracking; + +public class GPS { + private Location currentLocation; + + public GPS() + { + currentLocation = new Location(0, 0, 0); + } + + //Getter + public Location getCurrentLocation() + { + return currentLocation; + } + + //Setter + public void setCurrentLocation(Location location) + { + currentLocation = location; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/locationtracking/Location.java b/src/seabedexplorer/submersible/equipment/locationtracking/Location.java new file mode 100644 index 0000000..0cffe33 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/locationtracking/Location.java @@ -0,0 +1,60 @@ +package seabedexplorer.submersible.equipment.locationtracking; + +public class Location { + + private int posX, posY, posZ; + + //Constructors + public Location() + { + posX = 0; + posY = 0; + posZ = 0; + } + + public Location(int x, int y, int z) + { + posX = x; + posY = y; + posZ = z; + } + + //Getters + public int getPosX() + { + return posX; + } + + public int getPosY() + { + return posY; + } + + public int getPosZ() + { + return posZ; + } + + //Setters + public void setPosX(int x) + { + posX = x; + } + + public void setPosY(int y) + { + posY = y; + } + + public void setPosZ(int z) + { + posZ = z; + } + + @Override + public String toString() + { + //Format: X, Y, Z + return Integer.toString(posX) + ", " + Integer.toString(posY) + ", " + Integer.toString(posZ); + } +} diff --git a/src/seabedexplorer/submersible/equipment/materialsampler/ChemicalScanner.java b/src/seabedexplorer/submersible/equipment/materialsampler/ChemicalScanner.java new file mode 100644 index 0000000..8a7c5af --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/materialsampler/ChemicalScanner.java @@ -0,0 +1,39 @@ +package seabedexplorer.submersible.equipment.materialsampler; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.materialsampler.DCChemicalScanner; + +/** + * ChemicalScanner + * + * @author JLScott1999 + */ +public class ChemicalScanner extends MaterialSampler +{ + + public ChemicalScanner(Submersible drone, double volumeIn) + { + super(drone, new DCChemicalScanner(volumeIn)); + + sampleVolume = volumeIn; + } + + @Override + public String toString() + { + return super.toString() + "Chemical Scanner"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("scan")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/materialsampler/HotFluidSampler.java b/src/seabedexplorer/submersible/equipment/materialsampler/HotFluidSampler.java new file mode 100644 index 0000000..f2153fc --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/materialsampler/HotFluidSampler.java @@ -0,0 +1,39 @@ +package seabedexplorer.submersible.equipment.materialsampler; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.materialsampler.DCHotFluidSampler; + +/** + * HotFluidSampler + * + * @author JLScott1999 + */ +public class HotFluidSampler extends MaterialSampler +{ + + public HotFluidSampler(Submersible drone, double volumeIn) + { + super(drone, new DCHotFluidSampler(volumeIn)); + + sampleVolume = volumeIn; + } + + @Override + public String toString() + { + return super.toString() + "Hot Fluid Sampler"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("fluid")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/materialsampler/MaterialSampler.java b/src/seabedexplorer/submersible/equipment/materialsampler/MaterialSampler.java new file mode 100644 index 0000000..c686986 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/materialsampler/MaterialSampler.java @@ -0,0 +1,27 @@ +package seabedexplorer.submersible.equipment.materialsampler; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.Equipment; +import seabedexplorer.submersible.equipment.datacollector.DataCollector; + +/** + * MaterialSampler + * + * @author JLScott1999 + */ +public abstract class MaterialSampler extends Equipment +{ + double sampleVolume; + + public MaterialSampler(Submersible drone, DataCollector dataCollector) + { + super(drone, dataCollector); + } + + @Override + public String toString() + { + return super.toString() + "Material Sampler - "; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/materialsampler/RockCoringDrill.java b/src/seabedexplorer/submersible/equipment/materialsampler/RockCoringDrill.java new file mode 100644 index 0000000..c4fd69b --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/materialsampler/RockCoringDrill.java @@ -0,0 +1,39 @@ +package seabedexplorer.submersible.equipment.materialsampler; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.materialsampler.DCRockCoringDrill; + +/** + * RockCoringDrill + * + * @author JLScott1999 + */ +public class RockCoringDrill extends MaterialSampler +{ + + public RockCoringDrill(Submersible drone, double volumeIn) + { + super(drone, new DCRockCoringDrill(volumeIn)); + + sampleVolume = volumeIn; + } + + @Override + public String toString() + { + return super.toString() + "Rock-Coring Drill"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("drill")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/topographicalmapper/Laser.java b/src/seabedexplorer/submersible/equipment/topographicalmapper/Laser.java new file mode 100644 index 0000000..d587615 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/topographicalmapper/Laser.java @@ -0,0 +1,41 @@ +package seabedexplorer.submersible.equipment.topographicalmapper; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.topographicalmapper.DCLaser; + +/** + * Laser + * + * @author JLScott1999 + */ +public class Laser extends TopographicalMapper +{ + + double distance; + + public Laser(Submersible drone, double distanceIn) + { + super(drone, new DCLaser(distanceIn)); + + distance = distanceIn; + } + + @Override + public String toString() + { + return super.toString() + "Laser"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("laser")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/topographicalmapper/Sonar.java b/src/seabedexplorer/submersible/equipment/topographicalmapper/Sonar.java new file mode 100644 index 0000000..a567a46 --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/topographicalmapper/Sonar.java @@ -0,0 +1,37 @@ +package seabedexplorer.submersible.equipment.topographicalmapper; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.topographicalmapper.DCSonar; + +/** + * Sonar + * + * @author JLScott1999 + */ +public class Sonar extends TopographicalMapper +{ + + public Sonar(Submersible drone) + { + super(drone, new DCSonar()); + } + + @Override + public String toString() + { + return super.toString() + "Sonar"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("sonar")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/topographicalmapper/TopographicalMapper.java b/src/seabedexplorer/submersible/equipment/topographicalmapper/TopographicalMapper.java new file mode 100644 index 0000000..0f3b29e --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/topographicalmapper/TopographicalMapper.java @@ -0,0 +1,26 @@ +package seabedexplorer.submersible.equipment.topographicalmapper; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.Equipment; +import seabedexplorer.submersible.equipment.datacollector.DataCollector; + +/** + * TopographicalMapper + * + * @author JLScott1999 + */ +public abstract class TopographicalMapper extends Equipment +{ + + public TopographicalMapper(Submersible drone, DataCollector dataCollector) + { + super(drone, dataCollector); + } + + @Override + public String toString() + { + return super.toString() + "Topographical Mapper - "; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/waterreadings/IndexOfRefraction.java b/src/seabedexplorer/submersible/equipment/waterreadings/IndexOfRefraction.java new file mode 100644 index 0000000..c63e0dd --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/waterreadings/IndexOfRefraction.java @@ -0,0 +1,40 @@ +package seabedexplorer.submersible.equipment.waterreadings; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.waterreadings.DCIndexOfRefraction; + +/** + * IndexOfRefraction + * + * @author JLScott1999 + */ +public class IndexOfRefraction extends WaterReadings +{ + double angleOfIncidence; + + public IndexOfRefraction(Submersible drone, double angleOfIncidenceIn) + { + super(drone, new DCIndexOfRefraction(angleOfIncidenceIn)); + + angleOfIncidence = angleOfIncidenceIn; + } + + @Override + public String toString() + { + return super.toString() + "Index Of Refraction"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("refraction")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/waterreadings/PH.java b/src/seabedexplorer/submersible/equipment/waterreadings/PH.java new file mode 100644 index 0000000..739a9bf --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/waterreadings/PH.java @@ -0,0 +1,37 @@ +package seabedexplorer.submersible.equipment.waterreadings; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.waterreadings.DCPH; + +/** + * PH + * + * @author JLScott1999 + */ +public class PH extends WaterReadings +{ + + public PH(Submersible drone) + { + super(drone, new DCPH()); + } + + @Override + public String toString() + { + return super.toString() + "pH Reader"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("ph")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/waterreadings/Salinity.java b/src/seabedexplorer/submersible/equipment/waterreadings/Salinity.java new file mode 100644 index 0000000..e834f8d --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/waterreadings/Salinity.java @@ -0,0 +1,37 @@ +package seabedexplorer.submersible.equipment.waterreadings; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.datacollector.waterreadings.DCSalinity; + +/** + * Salinity + * + * @author JLScott1999 + */ +public class Salinity extends WaterReadings +{ + + public Salinity(Submersible drone) + { + super(drone, new DCSalinity()); + } + + @Override + public String toString() + { + return super.toString() + "Salinity Reader"; + } + + @Override + public boolean update(String cmd) { + boolean result; + if(cmd.equalsIgnoreCase("salinity")){ + this.collectData(); + result = true; + } else { + result = super.update(cmd); + } + return result; + } + +} diff --git a/src/seabedexplorer/submersible/equipment/waterreadings/WaterReadings.java b/src/seabedexplorer/submersible/equipment/waterreadings/WaterReadings.java new file mode 100644 index 0000000..42f860b --- /dev/null +++ b/src/seabedexplorer/submersible/equipment/waterreadings/WaterReadings.java @@ -0,0 +1,26 @@ +package seabedexplorer.submersible.equipment.waterreadings; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.Equipment; +import seabedexplorer.submersible.equipment.datacollector.DataCollector; + +/** + * WaterReadings + * + * @author JLScott1999 + */ +public abstract class WaterReadings extends Equipment +{ + + public WaterReadings(Submersible drone, DataCollector dataCollector) + { + super(drone, dataCollector); + } + + @Override + public String toString() + { + return super.toString() + "Water Readings - "; + } + +} diff --git a/src/seabedexplorer/submersible/state/SubmersibleState.java b/src/seabedexplorer/submersible/state/SubmersibleState.java new file mode 100644 index 0000000..566e441 --- /dev/null +++ b/src/seabedexplorer/submersible/state/SubmersibleState.java @@ -0,0 +1,61 @@ +package seabedexplorer.submersible.state; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; + +public interface SubmersibleState { + + /** + *Passes the original Submersible object instance to the state, if it needs it. + * @param submersible The instance that wants to be passed. + */ + public void submersibleInstance(Submersible submersible); + + //Movement methods + + /** + *Moves object to a location. + * @param loc The Location of the target location. + * @return Returns if the movement command was executed successfully. + */ + public boolean move(Location loc); + + /** + *Stops the movement of an object to a location. + * @return Returns if the movement stop command was executed successfully. + */ + public boolean stopMove(); + + /** + *Returns object back to vessel. + * @return Returns if the object was returned to the vessel successfully. + */ + public boolean returnToVessel(); + + /** + *Checks if the object can move. + * @return Returns if the object is able to move. + */ + public boolean canMove(); + + //Collection methods + + /** + *Collects water sample. + * @return Returns if the water sample was collected successfully. + */ + public boolean collectWater(); + + /** + *Collects material sample. + * @return Returns if the material sample was collected successfully. + */ + public boolean collectMaterial(); + + /** + *Collects material sample. + * @return Returns if the material sample was collected successfully. + */ + public boolean collectMappingData(); + +} diff --git a/src/seabedexplorer/submersible/state/states/BusyActionState.java b/src/seabedexplorer/submersible/state/states/BusyActionState.java new file mode 100644 index 0000000..65fb7a7 --- /dev/null +++ b/src/seabedexplorer/submersible/state/states/BusyActionState.java @@ -0,0 +1,73 @@ +package seabedexplorer.submersible.state.states; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.util.movement.MovementEmulation; + +public class BusyActionState implements SubmersibleState +{ + + Submersible subContext; + + @Override + public boolean move(Location loc) + { + System.out.println("Unable to move while another action is taking place."); + return false; + } + + @Override + public boolean stopMove() + { + System.out.println("Unable to stop movement, movement not currently in action."); + return false; + } + + @Override + public boolean canMove() + { + return false; + } + + @Override + public String toString() + { + return "Busy (Action in progress)"; + } + + @Override + public void submersibleInstance(Submersible submersible) + { + subContext = submersible; + } + + @Override + public boolean returnToVessel() + { + System.out.println("Unable to return while an action is taking place."); + return false; + } + + @Override + public boolean collectWater() + { + System.out.println("Unable to collect water readings when another action is taking place."); + return false; + } + + @Override + public boolean collectMaterial() + { + System.out.println("Unable to collect material samples when another action is taking place."); + return false; + } + + @Override + public boolean collectMappingData() + { + System.out.println("Unable to collect mapping data when another action is taking place."); + return false; + } + +} diff --git a/src/seabedexplorer/submersible/state/states/BusyMoveState.java b/src/seabedexplorer/submersible/state/states/BusyMoveState.java new file mode 100644 index 0000000..d134cfb --- /dev/null +++ b/src/seabedexplorer/submersible/state/states/BusyMoveState.java @@ -0,0 +1,81 @@ +package seabedexplorer.submersible.state.states; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.util.movement.MovementEmulation; + +public class BusyMoveState implements SubmersibleState +{ + + private Submersible subContext; + private MovementEmulation ME; + + public BusyMoveState(MovementEmulation me) + { + ME = me; + } + + @Override + public boolean move(Location loc) + { + System.out.println("Currently moving, unable to handle another movement command."); + return false; + } + + @Override + public boolean stopMove() + { + ME.stopMove(); + //Change state to Idle since movement has stopped. + subContext.changeState(new IdleState()); + return true; + } + + @Override + public boolean canMove() + { + return false; + } + + @Override + public void submersibleInstance(Submersible submersible) + { + subContext = submersible; + } + + @Override + public String toString() + { + return "Busy (Movement in progress)"; + } + + @Override + public boolean returnToVessel() + { + System.out.println("Unable to return to vessel while moving."); + return false; + } + + @Override + public boolean collectWater() + { + System.out.println("Unable to collect water sample while moving."); + return false; + } + + @Override + public boolean collectMaterial() + { + System.out.println("Unable to collect material sample while moving."); + return false; + } + + @Override + public boolean collectMappingData() + { + System.out.println("Unable to collect mapping data while moving."); + return false; + } + +} diff --git a/src/seabedexplorer/submersible/state/states/DeployState.java b/src/seabedexplorer/submersible/state/states/DeployState.java new file mode 100644 index 0000000..65206ef --- /dev/null +++ b/src/seabedexplorer/submersible/state/states/DeployState.java @@ -0,0 +1,80 @@ + +package seabedexplorer.submersible.state.states; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.util.movement.MovementEmulation; + +/** + * + * @author Stedos + */ +public class DeployState implements SubmersibleState +{ + + private Submersible subContext; + private MovementEmulation ME; + + @Override + public boolean move(Location loc) + { + System.out.println("Unable to move while deploying."); + return false; + } + + @Override + public boolean stopMove() + { + System.out.println("Unable to stop moving while deploying."); + return false; + } + + @Override + public boolean canMove() + { + return false; + } + + @Override + public String toString() + { + return "Deployed"; + } + + @Override + public void submersibleInstance(Submersible submersible) + { + subContext = submersible; + } + + + @Override + public boolean returnToVessel() + { + System.out.println("Unable to return while deploying."); + return false; + } + + @Override + public boolean collectWater() + { + System.out.println("Unable to collect water sample while deploying."); + return false; + } + + @Override + public boolean collectMaterial() + { + System.out.println("Unable to collect material sample while deploying."); + return false; + } + + @Override + public boolean collectMappingData() + { + System.out.println("Unable to collect mapping data while deploying."); + return false; + } + +} diff --git a/src/seabedexplorer/submersible/state/states/DockedState.java b/src/seabedexplorer/submersible/state/states/DockedState.java new file mode 100644 index 0000000..51f0a03 --- /dev/null +++ b/src/seabedexplorer/submersible/state/states/DockedState.java @@ -0,0 +1,86 @@ +package seabedexplorer.submersible.state.states; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.util.movement.MovementEmulation; + +public class DockedState implements SubmersibleState +{ + private Submersible subContext; + private MovementEmulation ME; + + @Override + public boolean move(Location loc) + { + subContext.changeState(new DeployState()); + ME = new MovementEmulation(subContext, loc); + ME.move(); + //Wait for thread to finish + try + { + ME.getThread().join(); + } + catch (Exception e) + { + System.out.println("Failed to Join Thread."); + } + //Change state to idle after movement finishes. + subContext.changeState(new IdleState()); + return true; + } + + @Override + public boolean stopMove() + { + System.out.println("Unable to stop moving while docked."); + return false; + } + + @Override + public boolean canMove() + { + return true; + } + + @Override + public void submersibleInstance(Submersible submersible) + { + subContext = submersible; + } + + @Override + public String toString() + { + return "Docked"; + } + + @Override + public boolean returnToVessel() + { + System.out.println("Unable to return to dock while already docked."); + return false; + } + + @Override + public boolean collectWater() + { + System.out.println("Unable to collect water sample while docked."); + return false; + } + + @Override + public boolean collectMaterial() + { + System.out.println("Unable to collect material sample while docked."); + return false; + } + + @Override + public boolean collectMappingData() + { + System.out.println("Unable to collect mapping data while docked."); + return false; + } + +} diff --git a/src/seabedexplorer/submersible/state/states/IdleState.java b/src/seabedexplorer/submersible/state/states/IdleState.java new file mode 100644 index 0000000..335a15b --- /dev/null +++ b/src/seabedexplorer/submersible/state/states/IdleState.java @@ -0,0 +1,134 @@ +package seabedexplorer.submersible.state.states; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.BusyActionState; +import seabedexplorer.submersible.state.states.BusyMoveState; +import seabedexplorer.submersible.state.states.DockedState; +import seabedexplorer.util.movement.MovementEmulation; + +public class IdleState implements SubmersibleState +{ + + private Submersible subContext; + private MovementEmulation ME; + + @Override + public boolean move(Location loc) + { + ME = new MovementEmulation(subContext, loc); + subContext.changeState(new BusyMoveState(ME)); + ME.move(); + //Wait for thread to finish + try + { + ME.getThread().join(); + } + catch (Exception e) + { + System.out.println("Failed to Join Thread."); + } + //Change state to idle, since movement has finished + subContext.changeState(new IdleState()); + return true; + } + + + @Override + public boolean stopMove() + { + System.out.println("Not currently moving, cannot stop the movement."); + return false; + } + + @Override + public boolean canMove() + { + return true; + } + + @Override + public void submersibleInstance(Submersible submersible) + { + subContext = submersible; + } + + @Override + public String toString() + { + return "Idle"; + } + + @Override + public boolean returnToVessel() + { + //Location of the vessel is implied 0, 0, 0, as this is where a sub starts. + ME = new MovementEmulation(subContext, new Location(0, 0, 0)); + //Change context to BusyMoveState as the sub is moving + subContext.changeState(new BusyMoveState(ME)); + ME.move(); + //Wait for thread to finish + try + { + ME.getThread().join(); + } + catch (Exception e) + { + System.out.println("Failed to Join Thread."); + } + //Change state to Docked + subContext.changeState(new DockedState()); + return true; + } + + @Override + public boolean collectWater() + { + //Change state to BusyAction + subContext.changeState(new BusyActionState()); + //Do data collection + subContext.update("ph"); + subContext.update("refraction"); + subContext.update("salinity"); + //Change state to InventoryFull, since it has just used the collection. + subContext.changeState(new InventoryFullState()); + return true; + } + + @Override + public boolean collectMaterial() + { + //Change state to BusyAction + subContext.changeState(new BusyActionState()); + //Do data collection + subContext.update("scan"); + subContext.update("fluid"); + subContext.update("drill"); + try + { + Thread.sleep(2000); + } + catch(Exception e) + { + System.out.println("Thread failed to sleep."); + } + //Change state to InventoryFull, since it has just used the collection. + subContext.changeState(new InventoryFullState()); + return true; + } + + @Override + public boolean collectMappingData() + { + //Change state to BusyAction + subContext.changeState(new BusyActionState()); + //Do data collection + subContext.update("laser"); + subContext.update("sonar"); + //Change state to Idle since this doesn't use inventory space. + subContext.changeState(new IdleState()); + return true; + } + +} diff --git a/src/seabedexplorer/submersible/state/states/InventoryFullState.java b/src/seabedexplorer/submersible/state/states/InventoryFullState.java new file mode 100644 index 0000000..b83e13e --- /dev/null +++ b/src/seabedexplorer/submersible/state/states/InventoryFullState.java @@ -0,0 +1,90 @@ +package seabedexplorer.submersible.state.states; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.util.movement.MovementEmulation; + +public class InventoryFullState implements SubmersibleState +{ + + private Submersible subContext; + private MovementEmulation ME; + + @Override + public boolean move(Location loc) + { + System.out.println("Unable to move, inventory is full (return to the vessel to empty inventory)"); + return false; + } + + @Override + public boolean stopMove() + { + System.out.println("Not currently moving, cannot stop the movement."); + return false; + } + + @Override + public boolean canMove() + { + return false; + } + + @Override + public void submersibleInstance(Submersible submersible) + { + subContext = submersible; + } + + @Override + public String toString() + { + return "Inventory Full"; + } + + @Override + public boolean returnToVessel() + { + //Location of the vessel is implied 0, 0, 0, as this is where a sub starts. + ME = new MovementEmulation(subContext, new Location(0, 0, 0)); + //Change context to BusyMoveState as the sub is moving + subContext.changeState(new BusyMoveState(ME)); + ME.move(); + //Wait for thread to finish + try + { + ME.getThread().join(); + } + catch (Exception e) + { + System.out.println("Failed to Join Thread."); + } + //Change state to Docked + subContext.changeState(new DockedState()); + return true; + } + + @Override + public boolean collectWater() + { + System.out.println("Unable to collect water sample while inventory is full."); + return false; + } + + @Override + public boolean collectMaterial() + { + System.out.println("Unable to collect material sample while inventory is full."); + return false; + } + + @Override + public boolean collectMappingData() + { + subContext.update("laser"); + subContext.update("sonar"); + return true; + } + +} diff --git a/src/seabedexplorer/util/cmd/CMDInterpreter.java b/src/seabedexplorer/util/cmd/CMDInterpreter.java new file mode 100644 index 0000000..dfb094e --- /dev/null +++ b/src/seabedexplorer/util/cmd/CMDInterpreter.java @@ -0,0 +1,36 @@ +package seabedexplorer.util.cmd; + +import seabedexplorer.vessel.Vessel; + +/** + * CMDInterpreter + * + * @author JLScott1999 + */ +public class CMDInterpreter +{ + + private Vessel vessel; + + public CMDInterpreter(Vessel v) + { + vessel = v; + } + + public void readCMD(String cmd) + { + if (cmd != null && cmd.length() > 0) + { + String[] cmdArray = cmd.split(" "); + switch (cmdArray[0].toLowerCase()) + { + case "collectdata": + { + vessel.updateObservers(cmdArray[1]); + break; + } + } + } + } + +} diff --git a/src/seabedexplorer/util/cmd/SubmersibleCMD.java b/src/seabedexplorer/util/cmd/SubmersibleCMD.java new file mode 100644 index 0000000..1524fbf --- /dev/null +++ b/src/seabedexplorer/util/cmd/SubmersibleCMD.java @@ -0,0 +1,9 @@ +package seabedexplorer.util.cmd; + +/** + * + * @author Dylan Currey + */ +public enum SubmersibleCMD { + SCAN, ALL, FLUID, REFRACTION, LASER, PH, PHOTOSENSOR, DRILL, SALINITY, SONAR +} diff --git a/src/seabedexplorer/util/movement/MovementEmulation.java b/src/seabedexplorer/util/movement/MovementEmulation.java new file mode 100644 index 0000000..8ba34ff --- /dev/null +++ b/src/seabedexplorer/util/movement/MovementEmulation.java @@ -0,0 +1,36 @@ + +package seabedexplorer.util.movement; + +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; + +public class MovementEmulation { + + boolean isMoving; + Submersible subContext; + int speedLocal = 100; + + Thread moveThread; + + public MovementEmulation(Submersible sub, Location destinationLocLocal) + { + subContext = sub; + moveThread = new Thread(new ThreadMovement(sub, destinationLocLocal, speedLocal)); + } + + public void move() + { + moveThread.start(); + } + + public void stopMove() + { + moveThread.stop(); + } + + public Thread getThread() + { + return moveThread; + } + +} diff --git a/src/seabedexplorer/util/movement/ThreadMovement.java b/src/seabedexplorer/util/movement/ThreadMovement.java new file mode 100644 index 0000000..054e557 --- /dev/null +++ b/src/seabedexplorer/util/movement/ThreadMovement.java @@ -0,0 +1,100 @@ + +package seabedexplorer.util.movement; + +import java.util.logging.Level; +import java.util.logging.Logger; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.states.BusyMoveState; +import seabedexplorer.submersible.state.states.IdleState; + +public class ThreadMovement implements Runnable{ + + + private Submersible subm; + private Location destinationLoc; + //In this instance, speed is the amount of milliseconds (ticks) it takes for the Submersible to move one unit (for example, 1000 ms to move one unit in the x direction) + private int speed; + + public ThreadMovement(Submersible sub, Location destinationLocLocal, int speedLocal) + { + subm = sub; + destinationLoc = destinationLocLocal; + speed = speedLocal; + } + + @Override + public void run() + { + //Check if at destination location + while (!atDestinationLocation(subm.getGPS().getCurrentLocation(), destinationLoc)) + { + subm.getGPS().setCurrentLocation(calculateNextCheckpointLocation(subm.getGPS().getCurrentLocation(), destinationLoc)); + printLocation(subm.getGPS().getCurrentLocation()); + } + } + + + private Location calculateNextCheckpointLocation(Location currentLocation, Location destLoc) + { + + //Thread pausing to emulate movement time + try + { + Thread.sleep(speed); + } + catch (Exception e) + { + System.out.println(e); + } + + Location loc = currentLocation; + + //Check X Coordinate + if (loc.getPosX() < destLoc.getPosX()) + { + loc.setPosX(loc.getPosX() + 1); + } + else if (loc.getPosX() > destLoc.getPosX()) + { + loc.setPosX(loc.getPosX() - 1); + } + + //Check Y Coordinate + if (loc.getPosY() < destLoc.getPosY()) + { + loc.setPosY(loc.getPosY() + 1); + } + else if (loc.getPosY() > destLoc.getPosY()) + { + loc.setPosY(loc.getPosY() - 1); + } + + //Check Z Coordinate + if (loc.getPosZ() < destLoc.getPosZ()) + { + loc.setPosZ(loc.getPosZ() + 1); + } + else if (loc.getPosZ() > destLoc.getPosZ()) + { + loc.setPosZ(loc.getPosZ() - 1); + } + + return loc; + } + + private boolean atDestinationLocation(Location currentLocation, Location destLoc) + { + if ((currentLocation.getPosX() == destLoc.getPosX()) && (currentLocation.getPosY() == destLoc.getPosY()) && (currentLocation.getPosZ() == destLoc.getPosZ())) + { + return true; + } + return false; + } + + private void printLocation(Location loc) + { + System.out.println("Location: " + loc); + } + +} diff --git a/src/seabedexplorer/util/submersible/SubmersibleBuilder.java b/src/seabedexplorer/util/submersible/SubmersibleBuilder.java new file mode 100644 index 0000000..f7307ec --- /dev/null +++ b/src/seabedexplorer/util/submersible/SubmersibleBuilder.java @@ -0,0 +1,229 @@ +package seabedexplorer.util.submersible; + +import java.security.InvalidParameterException; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.MS; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.materialsampler.ChemicalScanner; +import seabedexplorer.submersible.equipment.materialsampler.HotFluidSampler; +import seabedexplorer.submersible.equipment.materialsampler.RockCoringDrill; +import seabedexplorer.submersible.equipment.topographicalmapper.Laser; +import seabedexplorer.submersible.equipment.topographicalmapper.Sonar; +import seabedexplorer.submersible.equipment.waterreadings.IndexOfRefraction; +import seabedexplorer.submersible.equipment.waterreadings.PH; +import seabedexplorer.submersible.equipment.waterreadings.Salinity; + +/** + * SubmersibleBuilder + * + * @author JLScott1999 + */ +public class SubmersibleBuilder +{ + + private Submersible submersible; + + /** + * Build a submersible easily + * @param submersibleType Type of submersible to start the creation of. + */ + public SubmersibleBuilder(SubmersibleType submersibleType) + { + System.out.println("--- Submarine Builder Start ---"); + switch (submersibleType) + { + case AUTOMATED_UNDERWATER_VEHICLE: + { + System.out.println("Creating a Automated Underwater Vehicle"); + submersible = new AUV(); + break; + } + case MANNED_SUBMERSIBLE: + { + System.out.println("Creating a Manned Submersible"); + submersible = new MS(); + break; + } + case REMOTE_OPERATED_VEHICLE: + { + System.out.println("Creating a Remote Operated Vehicle"); + submersible = new ROV(); + break; + } + default: + { + throw new InvalidParameterException("Use the SubmersibleType class to select which submersible to create"); + } + } + } + + /** + * randomly add parts to a submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addRandom() + { + for (int i = 0; i < (int)(Math.random() * 10 + 1); i++) + { + switch ((int)(Math.random() * 8 + 1)) + { + case 1: + { + this.addLaser(); + break; + } + case 2: + { + this.addSonar(); + break; + } + case 3: + { + this.addIndexOfRefraction(); + break; + } + case 4: + { + this.addPH(); + break; + } + case 5: + { + this.addSalinity(); + break; + } + case 6: + { + this.addChemicalScanner(); + break; + } + case 7: + { + this.addHotFluidSampler(); + break; + } + case 8: + { + this.addRockCoringDrill(); + break; + } + } + } + return this; + } + + /** + * Add laser-illuminated photography to the submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addLaser() + { + System.out.println("Adding Laser-illuminated photography"); + submersible = new Laser(submersible, (double)(Math.random() * 30 + 10) / 10); + return this; + } + + /** + * Add sonar to the submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addSonar() + { + System.out.println("Adding Sonar"); + submersible = new Sonar(submersible); + return this; + } + + /** + * Add index of refraction reader to the submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addIndexOfRefraction() + { + System.out.println("Adding Index of Refraction reader"); + submersible = new IndexOfRefraction(submersible, (Math.random() * 88 + 1) + Math.random()); + return this; + } + + /** + * Add ph reader to the submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addPH() + { + System.out.println("Adding PH reader"); + submersible = new PH(submersible); + return this; + } + + /** + * Add salinity reader to the submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addSalinity() + { + System.out.println("Adding Salinity reader"); + submersible = new Salinity(submersible); + return this; + } + + /** + * Add chemical scanner to the submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addChemicalScanner() + { + System.out.println("Adding Chemical Scanner"); + submersible = new ChemicalScanner(submersible, (Math.random() * 150 + 10)); + return this; + } + + /** + * Add hot fluid sampler to the submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addHotFluidSampler() + { + System.out.println("Adding Fluid Sampler"); + submersible = new HotFluidSampler(submersible, (Math.random() * 150 + 10)); + return this; + } + + /** + * Add rock coring drill to the submersible + * @return The builder instance so it more can be added to it + */ + public SubmersibleBuilder addRockCoringDrill() + { + System.out.println("Adding RockCoring Drill"); + submersible = new RockCoringDrill(submersible, (Math.random() * 150 + 10)); + return this; + } + + /** + * Adds all equipment to the submarine + */ + public void addAll() + { + addLaser(); + addSonar(); + addIndexOfRefraction(); + addPH(); + addSalinity(); + addChemicalScanner(); + addHotFluidSampler(); + addRockCoringDrill(); + } + + /** + * finish the submarine build + * @return Submersible The submarine class with all the parts added to it + */ + public Submersible build() + { + System.out.println("--- Submarine Builder Finish ---"); + return submersible; + } + +} diff --git a/src/seabedexplorer/util/submersible/SubmersibleType.java b/src/seabedexplorer/util/submersible/SubmersibleType.java new file mode 100644 index 0000000..d8790a6 --- /dev/null +++ b/src/seabedexplorer/util/submersible/SubmersibleType.java @@ -0,0 +1,10 @@ +package seabedexplorer.util.submersible; + +/** + * + * @author JLScott1999 + */ +public enum SubmersibleType +{ + AUTOMATED_UNDERWATER_VEHICLE, MANNED_SUBMERSIBLE, REMOTE_OPERATED_VEHICLE; +} diff --git a/src/seabedexplorer/util/submersible/SubmersibleUtil.java b/src/seabedexplorer/util/submersible/SubmersibleUtil.java new file mode 100644 index 0000000..7a3a125 --- /dev/null +++ b/src/seabedexplorer/util/submersible/SubmersibleUtil.java @@ -0,0 +1,54 @@ +package seabedexplorer.util.submersible; + +import java.util.ArrayList; +import java.util.Collection; +import seabedexplorer.submersible.Submersible; + +/** + * SubmersibleUtil + * + * @author JLScott1999 + */ +public class SubmersibleUtil +{ + + private SubmersibleUtil() + { + + } + + /** + * generate a up to a certain amount of submersibles. + * @param max The maximum amount of subs to create + * @return a collection of submersibles with 1 - max amount + */ + public static Collection GenerateRandomSubmersibles(int max) + { + Collection result = new ArrayList<>(); + for (int i = 0; i < (int)(Math.random() * max + 1); i++) + { + SubmersibleType s = null; + switch ((int)(Math.random() * 3 + 1)) + { + case 1: + { + s = SubmersibleType.AUTOMATED_UNDERWATER_VEHICLE; + break; + } + case 2: + { + s = SubmersibleType.MANNED_SUBMERSIBLE; + break; + } + case 3: + { + s = SubmersibleType.REMOTE_OPERATED_VEHICLE; + break; + } + } + result.add(new SubmersibleBuilder(s).addRandom().build()); + } + return result; + } + +} diff --git a/src/seabedexplorer/vessel/Vessel.java b/src/seabedexplorer/vessel/Vessel.java new file mode 100644 index 0000000..e75960f --- /dev/null +++ b/src/seabedexplorer/vessel/Vessel.java @@ -0,0 +1,58 @@ +package seabedexplorer.vessel; + +import java.util.ArrayList; +import java.util.List; +import seabedexplorer.observer.Observer; +import seabedexplorer.observer.Subject; +import seabedexplorer.submersible.Submersible; + +/** + * Class representing the vessel controlling all attached submersibles. + * Acts as subject in observer pattern + * + * @author Dylan Currey + */ +public class Vessel implements Subject +{ + + private List listOfObservers = new ArrayList<>(); + + /** + * Constructor vessel class holding submersibles + */ + public Vessel() + { + + } + + @Override + public void attach(Observer observer) { + listOfObservers.add(observer); + } + + @Override + public void detach(Observer observer) { + if(listOfObservers.contains(observer)){ + listOfObservers.remove(observer); + } + } + + @Override + public boolean updateObservers(String cmd) { + boolean result = false; + for (Observer o : listOfObservers){ + result = o.update(cmd); + } + return result; + } + + public int getNoSubmersibles() { + return listOfObservers.size(); + } + + public Submersible getSubmersible(int num) + { + return (Submersible) listOfObservers.get(num); + } + +} diff --git a/test/decorator_pattern_tests/submersible/AUVTest.java b/test/decorator_pattern_tests/submersible/AUVTest.java new file mode 100644 index 0000000..4e9061e --- /dev/null +++ b/test/decorator_pattern_tests/submersible/AUVTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * AUVTest + * + * @author JLScott1999 + */ +public class AUVTest +{ + + public AUVTest() + { + } + + /** + * Test of getSubmersible method, of class AUV. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible instance = new AUV(); + Submersible expResult = instance; + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class AUV. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new AUV(); + instance.collectData(); + assertTrue(instance.getData().isEmpty()); + } + + /** + * Test of addData method, of class AUV. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new AUV(); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class AUV. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new AUV(); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class AUV. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new AUV(); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class AUV. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new AUV(); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class AUV. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new AUV(); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class AUV. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new AUV(); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class AUV. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new AUV(); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class AUV. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new AUV(); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/MSTest.java b/test/decorator_pattern_tests/submersible/MSTest.java new file mode 100644 index 0000000..9590e98 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/MSTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.MS; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * MSTest + * + * @author JLScott1999 + */ +public class MSTest +{ + + public MSTest() + { + } + + /** + * Test of getSubmersible method, of class MS. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible instance = new MS(); + Submersible expResult = instance; + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class MS. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new MS(); + instance.collectData(); + assertTrue(instance.getData().isEmpty()); + } + + /** + * Test of addData method, of class MS. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new MS(); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class MS. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new MS(); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class MS. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new MS(); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class MS. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new MS(); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class MS. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new MS(); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class MS. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new MS(); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class MS. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new MS(); + String expResult = "MS (Manned Submersible)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class MS. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new MS(); + String expResult = "Type: MS (Manned Submersible)\nState: Docked\nData:\nEquipment:"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/ROVTest.java b/test/decorator_pattern_tests/submersible/ROVTest.java new file mode 100644 index 0000000..8a49d33 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/ROVTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * ROVTest + * + * @author JLScott1999 + */ +public class ROVTest +{ + + public ROVTest() + { + } + + /** + * Test of getSubmersible method, of class ROV. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible instance = new ROV(); + Submersible expResult = instance; + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class ROV. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new ROV(); + instance.collectData(); + assertTrue(instance.getData().isEmpty()); + } + + /** + * Test of addData method, of class ROV. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new ROV(); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class ROV. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new ROV(); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class ROV. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new ROV(); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class ROV. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new ROV(); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class ROV. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new ROV(); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class ROV. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new ROV(); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class ROV. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new ROV(); + String expResult = "ROV (Remote Operated Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class ROV. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new ROV(); + String expResult = "Type: ROV (Remote Operated Vehicle)\nState: Docked\nData:\nEquipment:"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/PhotoSensorTest.java b/test/decorator_pattern_tests/submersible/equipment/PhotoSensorTest.java new file mode 100644 index 0000000..346fa02 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/PhotoSensorTest.java @@ -0,0 +1,161 @@ +package decorator_pattern_tests.submersible.equipment; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.PhotoSensor; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * PhotoSensor + * + * @author JLScott1999 + */ +public class PhotoSensorTest +{ + + public PhotoSensorTest() + { + } + + /** + * Test of getSubmersible method, of class PhotoSensor. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new PhotoSensor(expResult); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class PhotoSensor. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new PhotoSensor(new AUV()); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class PhotoSensor. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new PhotoSensor(new AUV()); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class PhotoSensor. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new PhotoSensor(new AUV()); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class PhotoSensor. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new PhotoSensor(new AUV()); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class PhotoSensor. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new PhotoSensor(new AUV()); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class PhotoSensor. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new PhotoSensor(new AUV()); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class PhotoSensor. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new PhotoSensor(new AUV()); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class PhotoSensor. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new PhotoSensor(new AUV()); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class PhotoSensor. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new PhotoSensor(new AUV()); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Photo Sensor"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/materialsampler/ChemicalScannerTest.java b/test/decorator_pattern_tests/submersible/equipment/materialsampler/ChemicalScannerTest.java new file mode 100644 index 0000000..7f665bd --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/materialsampler/ChemicalScannerTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible.equipment.materialsampler; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.equipment.materialsampler.ChemicalScanner; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * ChemicalScannerTest + * + * @author JLScott1999 + */ +public class ChemicalScannerTest +{ + + public ChemicalScannerTest() + { + } + + /** + * Test of getSubmersible method, of class ChemicalScanner. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new ChemicalScanner(expResult, 100); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class ChemicalScanner. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new ChemicalScanner(new AUV(), 100); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class ChemicalScanner. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new ChemicalScanner(new AUV(), 100); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class ChemicalScanner. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new ChemicalScanner(new AUV(), 100); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class ChemicalScanner. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new ChemicalScanner(new AUV(), 100); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class ChemicalScanner. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new ChemicalScanner(new AUV(), 100); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class ChemicalScanner. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new ChemicalScanner(new AUV(), 100); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class ChemicalScanner. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new ChemicalScanner(new AUV(), 100); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class ChemicalScanner. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new ChemicalScanner(new AUV(), 100); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class ChemicalScanner. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new ChemicalScanner(new AUV(), 100); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Material Sampler - Chemical Scanner"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/materialsampler/HotFluidSamplerTest.java b/test/decorator_pattern_tests/submersible/equipment/materialsampler/HotFluidSamplerTest.java new file mode 100644 index 0000000..4bd7661 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/materialsampler/HotFluidSamplerTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible.equipment.materialsampler; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.equipment.materialsampler.HotFluidSampler; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * HotFluidSamplerTest + * + * @author JLScott1999 + */ +public class HotFluidSamplerTest +{ + + public HotFluidSamplerTest() + { + } + + /** + * Test of getSubmersible method, of class HotFluidSampler. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new HotFluidSampler(expResult, 100); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class HotFluidSampler. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new HotFluidSampler(new AUV(), 100); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class HotFluidSampler. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new HotFluidSampler(new AUV(), 100); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class HotFluidSampler. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new HotFluidSampler(new AUV(), 100); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class HotFluidSampler. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new HotFluidSampler(new AUV(), 100); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class HotFluidSampler. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new HotFluidSampler(new AUV(), 100); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class HotFluidSampler. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new HotFluidSampler(new AUV(), 100); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class HotFluidSampler. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new HotFluidSampler(new AUV(), 100); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class HotFluidSampler. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new HotFluidSampler(new AUV(), 100); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class HotFluidSampler. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new HotFluidSampler(new AUV(), 100); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Material Sampler - Hot Fluid Sampler"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/materialsampler/RockCoringDrillTest.java b/test/decorator_pattern_tests/submersible/equipment/materialsampler/RockCoringDrillTest.java new file mode 100644 index 0000000..c3cfc79 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/materialsampler/RockCoringDrillTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible.equipment.materialsampler; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.equipment.materialsampler.RockCoringDrill; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * RockCoringDrillTest + * + * @author JLScott1999 + */ +public class RockCoringDrillTest +{ + + public RockCoringDrillTest() + { + } + + /** + * Test of getSubmersible method, of class RockCoringDrill. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new RockCoringDrill(expResult, 100); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class RockCoringDrill. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new RockCoringDrill(new AUV(), 100); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class RockCoringDrill. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new RockCoringDrill(new AUV(), 100); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class RockCoringDrill. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new RockCoringDrill(new AUV(), 100); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class RockCoringDrill. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new RockCoringDrill(new AUV(), 100); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class RockCoringDrill. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new RockCoringDrill(new AUV(), 100); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class RockCoringDrill. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new RockCoringDrill(new AUV(), 100); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class RockCoringDrill. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new RockCoringDrill(new AUV(), 100); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class RockCoringDrill. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new RockCoringDrill(new AUV(), 100); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class RockCoringDrill. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new RockCoringDrill(new AUV(), 100); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Material Sampler - Rock-Coring Drill"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/topographicalmapper/LaserTest.java b/test/decorator_pattern_tests/submersible/equipment/topographicalmapper/LaserTest.java new file mode 100644 index 0000000..676abd3 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/topographicalmapper/LaserTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible.equipment.topographicalmapper; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.equipment.topographicalmapper.Laser; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * LaserTest + * + * @author JLScott1999 + */ +public class LaserTest +{ + + public LaserTest() + { + } + + /** + * Test of getSubmersible method, of class Laser. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new Laser(expResult, 0.3); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class Laser. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new Laser(new AUV(), 0.3); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class Laser. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new Laser(new AUV(), 0.3); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class Laser. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new Laser(new AUV(), 0.3); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class Laser. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new Laser(new AUV(), 0.3); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class Laser. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new Laser(new AUV(), 0.3); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class Laser. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new Laser(new AUV(), 0.3); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class Laser. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new Laser(new AUV(), 0.3); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class Laser. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new Laser(new AUV(), 0.3); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class Laser. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new Laser(new AUV(), 0.3); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Topographical Mapper - Laser"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/topographicalmapper/SonarTest.java b/test/decorator_pattern_tests/submersible/equipment/topographicalmapper/SonarTest.java new file mode 100644 index 0000000..72d0b4f --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/topographicalmapper/SonarTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible.equipment.topographicalmapper; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.equipment.topographicalmapper.Sonar; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * SonarTest + * + * @author JLScott1999 + */ +public class SonarTest +{ + + public SonarTest() + { + } + + /** + * Test of getSubmersible method, of class Sonar. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new Sonar(expResult); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class Sonar. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new Sonar(new AUV()); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class Sonar. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new Sonar(new AUV()); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class Sonar. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new Sonar(new AUV()); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class Sonar. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new Sonar(new AUV()); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class Sonar. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new Sonar(new AUV()); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class Sonar. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new Sonar(new AUV()); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class Sonar. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new Sonar(new AUV()); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class Sonar. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new Sonar(new AUV()); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class Sonar. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new Sonar(new AUV()); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Topographical Mapper - Sonar"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/waterreadings/IndexOfRefractionTest.java b/test/decorator_pattern_tests/submersible/equipment/waterreadings/IndexOfRefractionTest.java new file mode 100644 index 0000000..9502ab7 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/waterreadings/IndexOfRefractionTest.java @@ -0,0 +1,159 @@ +package decorator_pattern_tests.submersible.equipment.waterreadings; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.equipment.waterreadings.IndexOfRefraction; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * + * @author JLScott1999 + */ +public class IndexOfRefractionTest +{ + + public IndexOfRefractionTest() + { + } + + /** + * Test of getSubmersible method, of class IndexOfRefraction. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new IndexOfRefraction(expResult, 30); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class IndexOfRefraction. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class IndexOfRefraction. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class IndexOfRefraction. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class IndexOfRefraction. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class IndexOfRefraction. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class IndexOfRefraction. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class IndexOfRefraction. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class IndexOfRefraction. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class IndexOfRefraction. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new IndexOfRefraction(new AUV(), 30); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Water Readings - Index Of Refraction"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/waterreadings/PHTest.java b/test/decorator_pattern_tests/submersible/equipment/waterreadings/PHTest.java new file mode 100644 index 0000000..83b8ba8 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/waterreadings/PHTest.java @@ -0,0 +1,160 @@ +package decorator_pattern_tests.submersible.equipment.waterreadings; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.equipment.waterreadings.PH; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * PHTest + * + * @author JLScott1999 + */ +public class PHTest +{ + + public PHTest() + { + } + + /** + * Test of getSubmersible method, of class PH. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new PH(expResult); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class PH. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new PH(new AUV()); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class PH. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new PH(new AUV()); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class PH. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new PH(new AUV()); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class PH. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new PH(new AUV()); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class PH. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new PH(new AUV()); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class PH. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new PH(new AUV()); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class PH. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new PH(new AUV()); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class PH. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new PH(new AUV()); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class PH. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new PH(new AUV()); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Water Readings - pH Reader"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/decorator_pattern_tests/submersible/equipment/waterreadings/SalinityTest.java b/test/decorator_pattern_tests/submersible/equipment/waterreadings/SalinityTest.java new file mode 100644 index 0000000..d304aa3 --- /dev/null +++ b/test/decorator_pattern_tests/submersible/equipment/waterreadings/SalinityTest.java @@ -0,0 +1,161 @@ +package decorator_pattern_tests.submersible.equipment.waterreadings; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.equipment.waterreadings.Salinity; +import seabedexplorer.submersible.state.SubmersibleState; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +/** + * SalinityTest + * + * @author JLScott1999 + */ +public class SalinityTest +{ + + public SalinityTest() + { + } + + /** + * Test of getSubmersible method, of class Salinity. + */ + @Test + public void testGetSubmersible() + { + System.out.println("getSubmersible"); + Submersible expResult = new AUV(); + Submersible instance = new Salinity(expResult); + Submersible result = instance.getSubmersible(); + assertEquals(expResult, result); + } + + /** + * Test of collectData method, of class Salinity. + */ + @Test + public void testCollectData() + { + System.out.println("collectData"); + Submersible instance = new Salinity(new AUV()); + instance.collectData(); + assertTrue(instance.getData().size() > 0 && instance.getData().size() < 2); + } + + /** + * Test of addData method, of class Salinity. + */ + @Test + public void testAddData() + { + System.out.println("addData"); + Submersible instance = new Salinity(new AUV()); + Data data = new LaserReading(30, 1); + instance.addData(data); + assertTrue(instance.getData().contains(data)); + } + + /** + * Test of changeState method, of class Salinity. + */ + @Test + public void testChangeState() + { + System.out.println("changeState"); + SubmersibleState state = new IdleState(); + Submersible instance = new Salinity(new AUV()); + instance.changeState(state); + SubmersibleState result = instance.getState(); + assertEquals(state, result); + } + + /** + * Test of getState method, of class Salinity. + */ + @Test + public void testGetState() + { + System.out.println("getState"); + Submersible instance = new Salinity(new AUV()); + SubmersibleState expResult = new DeployState(); + instance.changeState(expResult); + SubmersibleState result = instance.getState(); + assertEquals(expResult, result); + } + + /** + * Test of move method, of class Salinity. + */ + @Test + public void testMove() + { + System.out.println("move"); + Submersible instance = new Salinity(new AUV()); + Location expResult = new Location(1, 2, 1); + instance.move(expResult); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of stopMove method, of class Salinity. + */ + @Test + public void testStopMove() + { + System.out.println("stopMove"); + Submersible instance = new Salinity(new AUV()); + Location expResult = new Location(); + instance.stopMove(); + Location result = instance.getGPS().getCurrentLocation(); + assertEquals(expResult.toString(), result.toString()); + } + + /** + * Test of canMove method, of class Salinity. + */ + @Test + public void testCanMove() + { + System.out.println("canMove"); + Submersible instance = new Salinity(new AUV()); + boolean expResult = true; + boolean result = instance.canMove(); + assertEquals(expResult, result); + } + + /** + * Test of getSubmersibleType method, of class Salinity. + */ + @Test + public void testGetSubmersibleType() + { + System.out.println("getSubmersibleType"); + Submersible instance = new Salinity(new AUV()); + String expResult = "AUV (Automated Underwater Vehicle)"; + String result = instance.getSubmersibleType(); + assertEquals(expResult, result); + } + + /** + * Test of toString method, of class Salinity. + */ + @Test + public void testToString() + { + System.out.println("toString"); + Submersible instance = new Salinity(new AUV()); + String expResult = "Type: AUV (Automated Underwater Vehicle)\nState: Docked\nData:\nEquipment:\n Water Readings - Salinity Reader"; + String result = instance.toString(); + assertEquals(expResult, result); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/PhotoSensorTest.java b/test/observer_pattern_tests/submersible/equipment/PhotoSensorTest.java new file mode 100644 index 0000000..1db285b --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/PhotoSensorTest.java @@ -0,0 +1,33 @@ +package observer_pattern_tests.submersible.equipment; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.PhotoSensor; + +/** + * + * @author Dylan Currey + */ +public class PhotoSensorTest { + + public PhotoSensorTest() { + } + + /** + * Test of update method, of class PhotoSensor. + */ + @Test + public void testUpdate() { + System.out.println("update"); + PhotoSensor s = new PhotoSensor(new ROV()); + String before = s.toString(); + s.update("photosensor"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/materialsampler/ChemicalScannerTest.java b/test/observer_pattern_tests/submersible/equipment/materialsampler/ChemicalScannerTest.java new file mode 100644 index 0000000..2209328 --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/materialsampler/ChemicalScannerTest.java @@ -0,0 +1,33 @@ +package observer_pattern_tests.submersible.equipment.materialsampler; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.materialsampler.ChemicalScanner; + +/** + * + * @author Dylan Currey + */ +public class ChemicalScannerTest { + + public ChemicalScannerTest() { + } + + /** + * Test of update method, of class ChemicalScanner. + */ + @Test + public void testUpdate() { + System.out.println("update"); + ChemicalScanner s = new ChemicalScanner(new ROV(), 1); + String before = s.toString(); + s.update("scan"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/materialsampler/HotFluidSamplerTest.java b/test/observer_pattern_tests/submersible/equipment/materialsampler/HotFluidSamplerTest.java new file mode 100644 index 0000000..24fb6a5 --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/materialsampler/HotFluidSamplerTest.java @@ -0,0 +1,33 @@ +package observer_pattern_tests.submersible.equipment.materialsampler; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.materialsampler.HotFluidSampler; + +/** + * + * @author Dylan Currey + */ +public class HotFluidSamplerTest { + + public HotFluidSamplerTest() { + } + + /** + * Test of update method, of class HotFluidSampler. + */ + @Test + public void testUpdate() { + System.out.println("update"); + HotFluidSampler s = new HotFluidSampler(new ROV(),1); + String before = s.toString(); + s.update("fluid"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/materialsampler/RockCoringDrillTest.java b/test/observer_pattern_tests/submersible/equipment/materialsampler/RockCoringDrillTest.java new file mode 100644 index 0000000..4f66c51 --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/materialsampler/RockCoringDrillTest.java @@ -0,0 +1,33 @@ +package observer_pattern_tests.submersible.equipment.materialsampler; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.materialsampler.RockCoringDrill; + +/** + * + * @author Dylan Currey + */ +public class RockCoringDrillTest { + + public RockCoringDrillTest() { + } + + /** + * Test of update method, of class RockCoringDrill. + */ + @Test + public void testUpdate() { + System.out.println("update"); + RockCoringDrill s = new RockCoringDrill(new ROV(),1); + String before = s.toString(); + s.update("drill"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/topographicalmapper/LaserTest.java b/test/observer_pattern_tests/submersible/equipment/topographicalmapper/LaserTest.java new file mode 100644 index 0000000..7cd2385 --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/topographicalmapper/LaserTest.java @@ -0,0 +1,33 @@ +package observer_pattern_tests.submersible.equipment.topographicalmapper; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.topographicalmapper.Laser; + +/** + * + * @author Dylan Currey + */ +public class LaserTest { + + public LaserTest() { + } + + /** + * Test of update method, of class Laser. + */ + @Test + public void testUpdate() { + System.out.println("update"); + Laser s = new Laser(new ROV(),1); + String before = s.toString(); + s.update("laser"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/topographicalmapper/SonarTest.java b/test/observer_pattern_tests/submersible/equipment/topographicalmapper/SonarTest.java new file mode 100644 index 0000000..c889db9 --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/topographicalmapper/SonarTest.java @@ -0,0 +1,33 @@ +package observer_pattern_tests.submersible.equipment.topographicalmapper; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.topographicalmapper.Sonar; + +/** + * + * @author Dylan Currey + */ +public class SonarTest { + + public SonarTest() { + } + + /** + * Test of update method, of class Sonar. + */ + @Test + public void testUpdate() { + System.out.println("update"); + Sonar s = new Sonar(new ROV()); + String before = s.toString(); + s.update("sonar"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/waterreadings/IndexOfRefractionTest.java b/test/observer_pattern_tests/submersible/equipment/waterreadings/IndexOfRefractionTest.java new file mode 100644 index 0000000..9b25da5 --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/waterreadings/IndexOfRefractionTest.java @@ -0,0 +1,33 @@ +package observer_pattern_tests.submersible.equipment.waterreadings; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.waterreadings.IndexOfRefraction; + +/** + * + * @author Dylan Currey + */ +public class IndexOfRefractionTest { + + public IndexOfRefractionTest() { + } + + /** + * Test of update method, of class IndexOfRefraction. + */ + @Test + public void testUpdate() { + System.out.println("update"); + IndexOfRefraction s = new IndexOfRefraction(new ROV(),1); + String before = s.toString(); + s.update("refraction"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/waterreadings/PHTest.java b/test/observer_pattern_tests/submersible/equipment/waterreadings/PHTest.java new file mode 100644 index 0000000..d295c3d --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/waterreadings/PHTest.java @@ -0,0 +1,31 @@ +package observer_pattern_tests.submersible.equipment.waterreadings; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.waterreadings.PH; + +/** + * + * @author Dylan Currey + */ +public class PHTest { + + public PHTest() { + } + + /** + * Test of update method, of class PH. + */ + @Test + public void testUpdate() { + System.out.println("update"); + PH s = new PH(new ROV()); + String before = s.toString(); + s.update("PH"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/submersible/equipment/waterreadings/SalinityTest.java b/test/observer_pattern_tests/submersible/equipment/waterreadings/SalinityTest.java new file mode 100644 index 0000000..4c35248 --- /dev/null +++ b/test/observer_pattern_tests/submersible/equipment/waterreadings/SalinityTest.java @@ -0,0 +1,33 @@ +package observer_pattern_tests.submersible.equipment.waterreadings; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.waterreadings.Salinity; + +/** + * + * @author Dylan Currey + */ +public class SalinityTest { + + public SalinityTest() { + } + + /** + * Test of update method, of class Salinity. + */ + @Test + public void testUpdate() { + System.out.println("update"); + Salinity s = new Salinity(new ROV()); + String before = s.toString(); + s.update("salinity"); + String after = s.toString(); + assertThat(after, is(not(equalTo(before)))); + } + +} diff --git a/test/observer_pattern_tests/vessel/VesselTest.java b/test/observer_pattern_tests/vessel/VesselTest.java new file mode 100644 index 0000000..2ff29ba --- /dev/null +++ b/test/observer_pattern_tests/vessel/VesselTest.java @@ -0,0 +1,76 @@ +package observer_pattern_tests.vessel; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.observer.Observer; +import seabedexplorer.submersible.AUV; +import seabedexplorer.submersible.MS; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.Submersible; +import seabedexplorer.util.submersible.SubmersibleUtil; +import seabedexplorer.vessel.Vessel; + +/** + * + * @author cdrbv + */ +public class VesselTest { + + public VesselTest() { + } + + /** + * Test of attach method, of class Vessel. + */ + @Test + public void testAttach() { + System.out.println("attach"); + Observer AUV = new AUV(); + Observer ROV = new ROV(); + Observer MS = new MS(); + Vessel v = new Vessel(); + v.attach(AUV); + v.attach(ROV); + v.attach(MS); + final int expectedValue = 3; + assertEquals(expectedValue, v.getNoSubmersibles()); + } + + /** + * Test of detach method, of class Vessel. + */ + @Test + public void testDetach() { + System.out.println("detach"); + Vessel v = new Vessel(); + Observer AUV = new AUV(); + Observer ROV = new ROV(); + Observer MS = new MS(); + v.attach(AUV); + v.attach(ROV); + v.attach(MS); + v.detach(AUV); + v.detach(ROV); + v.detach(MS); + final int expectedValue = 0; + assertEquals(expectedValue, v.getNoSubmersibles()); + } + + /** + * Test of updateObservers method, of class Vessel. + */ + @Test + public void testUpdateObservers() { + System.out.println("updateObservers"); + Vessel v = new Vessel(); + for(Submersible s: SubmersibleUtil.GenerateRandomSubmersibles(3)) + { + v.attach(s); + } + boolean result = v.updateObservers("info"); + assertTrue(result); + } + + + +} diff --git a/test/state_pattern_tests/StateTransitionTest.java b/test/state_pattern_tests/StateTransitionTest.java new file mode 100644 index 0000000..ab7a7d3 --- /dev/null +++ b/test/state_pattern_tests/StateTransitionTest.java @@ -0,0 +1,19 @@ +package state_pattern_tests; + +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.locationtracking.Location; + +public class StateTransitionTest { + + @Test + public void StateTransitionTest() + { + ROV rov = new ROV(); + rov.move(new Location(5, 5, 5)); + assertEquals(rov.getStateName(), "Idle"); + } + + +} diff --git a/test/state_pattern_tests/states/BusyActionStateTest.java b/test/state_pattern_tests/states/BusyActionStateTest.java new file mode 100644 index 0000000..cc21599 --- /dev/null +++ b/test/state_pattern_tests/states/BusyActionStateTest.java @@ -0,0 +1,71 @@ +package state_pattern_tests.states; + +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.states.BusyActionState; +import seabedexplorer.submersible.state.states.IdleState; + +public class BusyActionStateTest { + + public BusyActionStateTest() { + } + + @Test + public void BusyActionStateTestCanMove() + { + BusyActionState is = new BusyActionState(); + assertFalse(is.canMove()); + } + + @Test + public void BusyActionStateTestMove() + { + BusyActionState is = new BusyActionState(); + is.submersibleInstance(new ROV()); + assertFalse(is.move(new Location(5, 5, 5))); + } + + @Test + public void BusyActionStatesTestStopMove() + { + BusyActionState is = new BusyActionState(); + assertFalse(is.stopMove()); + } + + @Test + public void BusyActionStateString() + { + BusyActionState is = new BusyActionState(); + assertEquals(is.toString(), "Busy (Action in progress)"); + } + + @Test + public void BusyActionStateReturnToVesel() + { + BusyActionState is = new BusyActionState(); + assertFalse(is.returnToVessel()); + } + + @Test + public void BusyActionStateCollectWater() + { + BusyActionState is = new BusyActionState(); + assertFalse(is.collectWater()); + } + + @Test + public void BusyActionStateCollectMaterial() + { + BusyActionState is = new BusyActionState(); + assertFalse(is.collectMaterial()); + } + + @Test + public void BusyActionStateCollectMapping() + { + BusyActionState is = new BusyActionState(); + assertFalse(is.collectMappingData()); + } +} diff --git a/test/state_pattern_tests/states/BusyMoveStateTest.java b/test/state_pattern_tests/states/BusyMoveStateTest.java new file mode 100644 index 0000000..f0a06b8 --- /dev/null +++ b/test/state_pattern_tests/states/BusyMoveStateTest.java @@ -0,0 +1,65 @@ +package state_pattern_tests.states; + +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.states.BusyMoveState; +import seabedexplorer.util.movement.MovementEmulation; + + +public class BusyMoveStateTest { + + public BusyMoveStateTest() { + } + + @Test + public void BusyMoveStateTestCanMove() + { + BusyMoveState is = new BusyMoveState(new MovementEmulation(new ROV(), new Location(5, 5, 5))); + assertFalse(is.canMove()); + } + + @Test + public void BusyMoveStateTestMove() + { + BusyMoveState is = new BusyMoveState(new MovementEmulation(new ROV(), new Location(5, 5, 5))); + assertFalse(is.move(new Location(5, 5, 5))); + } + + + @Test + public void BusyMoveStateString() + { + BusyMoveState is = new BusyMoveState(new MovementEmulation(new ROV(), new Location(5, 5, 5))); + assertEquals(is.toString(), "Busy (Movement in progress)"); + } + + @Test + public void BusyMoveStateReturnToVesel() + { + BusyMoveState is = new BusyMoveState(new MovementEmulation(new ROV(), new Location(5, 5, 5))); + assertFalse(is.returnToVessel()); + } + + @Test + public void BusyMoveStateCollectWater() + { + BusyMoveState is = new BusyMoveState(new MovementEmulation(new ROV(), new Location(5, 5, 5))); + assertFalse(is.collectWater()); + } + + @Test + public void BusyMoveStateCollectMaterial() + { + BusyMoveState is = new BusyMoveState(new MovementEmulation(new ROV(), new Location(5, 5, 5))); + assertFalse(is.collectMaterial()); + } + + @Test + public void BusyMoveStateCollectMapping() + { + BusyMoveState is = new BusyMoveState(new MovementEmulation(new ROV(), new Location(5, 5, 5))); + assertFalse(is.collectMappingData()); + } +} diff --git a/test/state_pattern_tests/states/DeployStateTest.java b/test/state_pattern_tests/states/DeployStateTest.java new file mode 100644 index 0000000..353d290 --- /dev/null +++ b/test/state_pattern_tests/states/DeployStateTest.java @@ -0,0 +1,71 @@ +package state_pattern_tests.states; + +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.states.DeployState; +import seabedexplorer.submersible.state.states.IdleState; + +public class DeployStateTest { + + public DeployStateTest() { + } + + @Test + public void DeployStateTestCanMove() + { + DeployState is = new DeployState(); + assertFalse(is.canMove()); + } + + @Test + public void DeployStateTestMove() + { + DeployState is = new DeployState(); + is.submersibleInstance(new ROV()); + assertFalse(is.move(new Location(5, 5, 5))); + } + + @Test + public void DeployStatesTestStopMove() + { + DeployState is = new DeployState(); + assertFalse(is.stopMove()); + } + + @Test + public void DeployStateString() + { + DeployState is = new DeployState(); + assertEquals(is.toString(), "Deployed"); + } + + @Test + public void DeployStateReturnToVesel() + { + DeployState is = new DeployState(); + assertFalse(is.returnToVessel()); + } + + @Test + public void DeployStateCollectWater() + { + DeployState is = new DeployState(); + assertFalse(is.collectWater()); + } + + @Test + public void DeployStateCollectMaterial() + { + DeployState is = new DeployState(); + assertFalse(is.collectMaterial()); + } + + @Test + public void DeployStateCollectMapping() + { + DeployState is = new DeployState(); + assertFalse(is.collectMappingData()); + } +} diff --git a/test/state_pattern_tests/states/DockedStateTest.java b/test/state_pattern_tests/states/DockedStateTest.java new file mode 100644 index 0000000..b4b8ab2 --- /dev/null +++ b/test/state_pattern_tests/states/DockedStateTest.java @@ -0,0 +1,71 @@ +package state_pattern_tests.states; + +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.states.DockedState; +import seabedexplorer.submersible.state.states.IdleState; + +public class DockedStateTest { + + public DockedStateTest() { + } + + @Test + public void DockedStateTestCanMove() + { + DockedState is = new DockedState(); + assertTrue(is.canMove()); + } + + @Test + public void DockedStateTestMove() + { + DockedState is = new DockedState(); + is.submersibleInstance(new ROV()); + assertTrue(is.move(new Location(5, 5, 5))); + } + + @Test + public void DockedStatesTestStopMove() + { + DockedState is = new DockedState(); + assertFalse(is.stopMove()); + } + + @Test + public void DockedStateString() + { + DockedState is = new DockedState(); + assertEquals(is.toString(), "Docked"); + } + + @Test + public void DockedStateReturnToVesel() + { + DockedState is = new DockedState(); + assertFalse(is.returnToVessel()); + } + + @Test + public void DockedStateCollectWater() + { + DockedState is = new DockedState(); + assertFalse(is.collectWater()); + } + + @Test + public void DockedStateCollectMaterial() + { + DockedState is = new DockedState(); + assertFalse(is.collectMaterial()); + } + + @Test + public void DockedStateCollectMapping() + { + DockedState is = new DockedState(); + assertFalse(is.collectMappingData()); + } +} diff --git a/test/state_pattern_tests/states/IdleStateTest.java b/test/state_pattern_tests/states/IdleStateTest.java new file mode 100644 index 0000000..bec1847 --- /dev/null +++ b/test/state_pattern_tests/states/IdleStateTest.java @@ -0,0 +1,71 @@ +package state_pattern_tests.states; + +import org.junit.Test; +import static org.junit.Assert.*; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.locationtracking.Location; +import seabedexplorer.submersible.state.states.IdleState; + +public class IdleStateTest { + + @Test + public void IdleStateTestCanMove() + { + IdleState is = new IdleState(); + assertTrue(is.canMove()); + } + + @Test + public void IdleStateTestMove() + { + IdleState is = new IdleState(); + is.submersibleInstance(new ROV()); + assertTrue(is.move(new Location(5, 5, 5))); + } + + @Test + public void IdleStatesTestStopMove() + { + IdleState is = new IdleState(); + assertFalse(is.stopMove()); + } + + @Test + public void IdleStateString() + { + IdleState is = new IdleState(); + assertEquals(is.toString(), "Idle"); + } + + @Test + public void IdleStateReturnToVesel() + { + IdleState is = new IdleState(); + is.submersibleInstance(new ROV()); + assertTrue(is.returnToVessel()); + } + + @Test + public void IdleStateCollectWater() + { + IdleState is = new IdleState(); + is.submersibleInstance(new ROV()); + assertTrue(is.collectWater()); + } + + @Test + public void IdleStateCollectMaterial() + { + IdleState is = new IdleState(); + is.submersibleInstance(new ROV()); + assertTrue(is.collectMaterial()); + } + + @Test + public void IdleStateCollectMapping() + { + IdleState is = new IdleState(); + is.submersibleInstance(new ROV()); + assertTrue(is.collectMappingData()); + } +} diff --git a/test/strategy_pattern_tests/ChemicalScannerTest.java b/test/strategy_pattern_tests/ChemicalScannerTest.java new file mode 100644 index 0000000..4980138 --- /dev/null +++ b/test/strategy_pattern_tests/ChemicalScannerTest.java @@ -0,0 +1,74 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.MaterialSample; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.materialsampler.ChemicalScanner; + +/** + * + * @author Super + */ +public class ChemicalScannerTest { + + @Test + public void validMassTest() { + ROV submersible = new ROV(); + + ChemicalScanner equipment = new ChemicalScanner(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getMass()); + assertTrue(current.getMass() >= 0); + } + } + + @Test + public void validDensityTest() { + ROV submersible = new ROV(); + + ChemicalScanner equipment = new ChemicalScanner(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getDensity()); + assertTrue(current.getDensity() >= 0); + } + } + + @Test + public void correctDensityTest() { + ROV submersible = new ROV(); + + ChemicalScanner equipment = new ChemicalScanner(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getMass() + " " + current.getDensity()); + assertEquals(current.getMass(),current.getDensity() * 0.5, 0); + } + } +} diff --git a/test/strategy_pattern_tests/HotFluidSamplerTest.java b/test/strategy_pattern_tests/HotFluidSamplerTest.java new file mode 100644 index 0000000..4c31c23 --- /dev/null +++ b/test/strategy_pattern_tests/HotFluidSamplerTest.java @@ -0,0 +1,74 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.MaterialSample; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.materialsampler.HotFluidSampler; + +/** + * + * @author Super + */ +public class HotFluidSamplerTest { + + @Test + public void validMassTest() { + ROV submersible = new ROV(); + + HotFluidSampler equipment = new HotFluidSampler(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getMass()); + assertTrue(current.getMass() >= 0); + } + } + + @Test + public void validDensityTest() { + ROV submersible = new ROV(); + + HotFluidSampler equipment = new HotFluidSampler(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getDensity()); + assertTrue(current.getDensity() >= 0); + } + } + + @Test + public void correctDensityTest() { + ROV submersible = new ROV(); + + HotFluidSampler equipment = new HotFluidSampler(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getMass() + " " + current.getDensity()); + assertEquals(current.getMass(),current.getDensity() * 0.5, 0); + } + } +} diff --git a/test/strategy_pattern_tests/IndexOfRefractionTest.java b/test/strategy_pattern_tests/IndexOfRefractionTest.java new file mode 100644 index 0000000..9460a56 --- /dev/null +++ b/test/strategy_pattern_tests/IndexOfRefractionTest.java @@ -0,0 +1,74 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.IndexOfRefractionReading; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.waterreadings.IndexOfRefraction; + +/** + * + * @author Super + */ +public class IndexOfRefractionTest { + + @Test + public void validAngleTest() { + ROV submersible = new ROV(); + + IndexOfRefraction equipment = new IndexOfRefraction(submersible, 30); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + IndexOfRefractionReading current = (IndexOfRefractionReading) data[i]; + System.out.println(current.getAngleOfRefraction()); + assertTrue(current.getAngleOfRefraction() >= 0 && current.getAngleOfRefraction() <= 90); + } + } + + @Test + public void validIndexTest() { + ROV submersible = new ROV(); + + IndexOfRefraction equipment = new IndexOfRefraction(submersible,30); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + IndexOfRefractionReading current = (IndexOfRefractionReading) data[i]; + System.out.println(current.getIndexOfRefraction()); + assertTrue(current.getAngleOfRefraction() >= 0); + } + } + + @Test + public void correctIndexTest() { + ROV submersible = new ROV(); + + IndexOfRefraction equipment = new IndexOfRefraction(submersible,30); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + IndexOfRefractionReading current = (IndexOfRefractionReading) data[i]; + System.out.println(current.getAngleOfRefraction() + " " + current.getIndexOfRefraction()); + assertEquals(current.getIndexOfRefraction(), 30 / current.getAngleOfRefraction(),0); + } + } +} diff --git a/test/strategy_pattern_tests/LaserTest.java b/test/strategy_pattern_tests/LaserTest.java new file mode 100644 index 0000000..ad32ea3 --- /dev/null +++ b/test/strategy_pattern_tests/LaserTest.java @@ -0,0 +1,74 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.LaserReading; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.topographicalmapper.Laser; + +/** + * + * @author Super + */ +public class LaserTest { + + @Test + public void validAngleTest() { + ROV submersible = new ROV(); + + Laser equipment = new Laser(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + LaserReading current = (LaserReading) data[i]; + System.out.println(current.getAngle()); + assertTrue(current.getAngle() >= 0 && current.getAngle() <= 90); + } + } + + @Test + public void correctDepthTest() { + ROV submersible = new ROV(); + + Laser equipment = new Laser(submersible,0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + LaserReading current = (LaserReading) data[i]; + System.out.println(current.getAngle() + " " + current.getDepth()); + assertEquals(current.getDepth(), 0.5 / Math.tan(current.getAngle() / (180/Math.PI)),0); + } + } + + @Test + public void validDepthTest() { + ROV submersible = new ROV(); + + Laser equipment = new Laser(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + LaserReading current = (LaserReading) data[i]; + System.out.println(current.getDepth()); + assertTrue(current.getDepth() >= 0); + } + } +} diff --git a/test/strategy_pattern_tests/PhotosensorTest.java b/test/strategy_pattern_tests/PhotosensorTest.java new file mode 100644 index 0000000..1f400fa --- /dev/null +++ b/test/strategy_pattern_tests/PhotosensorTest.java @@ -0,0 +1,38 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.PhotoSensorReading; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.PhotoSensor; + +/** + * + * @author Super + */ +public class PhotosensorTest { + + @Test + public void validPhotosensorTest() { + ROV submersible = new ROV(); + + PhotoSensor equipment = new PhotoSensor(submersible); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + PhotoSensorReading current = (PhotoSensorReading) data[i]; + System.out.println(current.getReading()); + assertTrue(current.getReading() >= 10 && current.getReading() <= 1000000); + } + } +} diff --git a/test/strategy_pattern_tests/RockCoringDrillTest.java b/test/strategy_pattern_tests/RockCoringDrillTest.java new file mode 100644 index 0000000..4cd773a --- /dev/null +++ b/test/strategy_pattern_tests/RockCoringDrillTest.java @@ -0,0 +1,74 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.MaterialSample; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.materialsampler.RockCoringDrill; + +/** + * + * @author Super + */ +public class RockCoringDrillTest { + + @Test + public void validMassTest() { + ROV submersible = new ROV(); + + RockCoringDrill equipment = new RockCoringDrill(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getMass()); + assertTrue(current.getMass() >= 0); + } + } + + @Test + public void validDensityTest() { + ROV submersible = new ROV(); + + RockCoringDrill equipment = new RockCoringDrill(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getDensity()); + assertTrue(current.getDensity() >= 0); + } + } + + @Test + public void correctDensityTest() { + ROV submersible = new ROV(); + + RockCoringDrill equipment = new RockCoringDrill(submersible, 0.5); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + MaterialSample current = (MaterialSample) data[i]; + System.out.println(current.getMass() + " " + current.getDensity()); + assertEquals(current.getMass(),current.getDensity() * 0.5, 0); + } + } +} diff --git a/test/strategy_pattern_tests/SalinityTest.java b/test/strategy_pattern_tests/SalinityTest.java new file mode 100644 index 0000000..20876fe --- /dev/null +++ b/test/strategy_pattern_tests/SalinityTest.java @@ -0,0 +1,38 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.SalinityReading; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.waterreadings.Salinity; + +/** + * + * @author Super + */ +public class SalinityTest { + + @Test + public void validSalinityTest() { + ROV submersible = new ROV(); + + Salinity equipment = new Salinity(submersible); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + SalinityReading current = (SalinityReading) data[i]; + System.out.println(current.getReading()); + assertTrue(current.getReading() >= 0 && current.getReading() <= 1000); + } + } +} diff --git a/test/strategy_pattern_tests/SonarTest.java b/test/strategy_pattern_tests/SonarTest.java new file mode 100644 index 0000000..b792ba3 --- /dev/null +++ b/test/strategy_pattern_tests/SonarTest.java @@ -0,0 +1,75 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.SonarReading; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.topographicalmapper.Sonar; + +/** + * + * @author Super + */ +public class SonarTest { + + @Test + public void validSonarTest() { + ROV submersible = new ROV(); + + Sonar equipment = new Sonar(submersible); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + SonarReading current = (SonarReading) data[i]; + System.out.println(current.getReading()); + assertTrue(current.getReading() >= 0 && current.getReading() <= 10000); + } + } + + @Test + public void correctDepthTest() { + ROV submersible = new ROV(); + + Sonar equipment = new Sonar(submersible); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + SonarReading current = (SonarReading) data[i]; + System.out.println(current.getReading() + " " + current.getDepth()); + assertEquals(current.getDepth(), current.getReading() * 1.5, 0); + } + } + + @Test + public void validDepthTest() { + ROV submersible = new ROV(); + + Sonar equipment = new Sonar(submersible); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + SonarReading current = (SonarReading) data[i]; + System.out.println(current.getDepth()); + assertTrue(current.getDepth() >= 0); + } + } + +} diff --git a/test/strategy_pattern_tests/pHTest.java b/test/strategy_pattern_tests/pHTest.java new file mode 100644 index 0000000..2f4ef9d --- /dev/null +++ b/test/strategy_pattern_tests/pHTest.java @@ -0,0 +1,38 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package strategy_pattern_tests; + +import static org.junit.Assert.*; +import org.junit.Test; +import seabedexplorer.data.Data; +import seabedexplorer.data.pHReading; +import seabedexplorer.submersible.ROV; +import seabedexplorer.submersible.equipment.waterreadings.PH; + +/** + * + * @author Super + */ +public class pHTest { + + @Test + public void validpHTest() { + ROV submersible = new ROV(); + + PH equipment = new PH(submersible); + + for (int i = 0; i < 100; i++) + equipment.collectData(); + + Data[] data = equipment.getData().toArray(new Data[100]); + + for (int i = 0; i < 100; i++) { + pHReading current = (pHReading) data[i]; + System.out.println(current.getReading()); + assertTrue(current.getReading() >= 1 && current.getReading() <= 14); + } + } +}