From 0c2638cfa31032cf2b1197bbdfe22c5334b25a39 Mon Sep 17 00:00:00 2001 From: Markus Grigull <web@grigull.me> Date: Tue, 26 Jul 2016 19:28:05 +0200 Subject: [PATCH] Add simulation route and model Simulations are the container for simulation models --- VILLAS.mdj | 3514 +++++++++++++++++++++++++----------- models/project.js | 3 +- models/simulation.js | 45 + models/simulationModel.js | 7 +- models/user.js | 12 +- routes/simulationModels.js | 22 +- routes/simulations.js | 134 ++ server.js | 2 + 8 files changed, 2645 insertions(+), 1094 deletions(-) create mode 100644 models/simulation.js create mode 100644 routes/simulations.js diff --git a/VILLAS.mdj b/VILLAS.mdj index 8ad8675..ecab518 100644 --- a/VILLAS.mdj +++ b/VILLAS.mdj @@ -1469,7 +1469,7 @@ "containerExtending": false, "left": 350, "top": 540.5, - "width": 103, + "width": 104.5263671875, "height": 25, "autoResize": false, "stereotypeLabel": { @@ -1780,7 +1780,7 @@ "containerExtending": false, "left": 349.5, "top": 604.5, - "width": 103, + "width": 103.8662109375, "height": 25, "autoResize": false, "stereotypeLabel": { @@ -3086,7 +3086,7 @@ "containerExtending": false, "left": 352.5, "top": 420.5, - "width": 118, + "width": 118.6181640625, "height": 25, "autoResize": false, "stereotypeLabel": { @@ -4221,7 +4221,7 @@ "containerExtending": false, "left": 338.5, "top": 692.5, - "width": 127, + "width": 127.568359375, "height": 25, "autoResize": false, "stereotypeLabel": { @@ -5214,8 +5214,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -352, - "top": 0, + "left": -368, + "top": 176, "width": 0, "height": 13, "autoResize": false, @@ -5238,8 +5238,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 61, - "top": 223, + "left": 53, + "top": 311, "width": 151, "height": 13, "autoResize": false, @@ -5263,8 +5263,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -352, - "top": 0, + "left": -368, + "top": 176, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -5288,8 +5288,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -352, - "top": 0, + "left": -368, + "top": 176, "width": 0, "height": 13, "autoResize": false, @@ -5307,8 +5307,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 56, - "top": 216, + "left": 48, + "top": 304, "width": 161, "height": 25, "autoResize": false, @@ -5353,8 +5353,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 61, - "top": 246, + "left": 53, + "top": 334, "width": 151, "height": 13, "autoResize": false, @@ -5381,8 +5381,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 61, - "top": 261, + "left": 53, + "top": 349, "width": 151, "height": 13, "autoResize": false, @@ -5409,8 +5409,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 61, - "top": 276, + "left": 53, + "top": 364, "width": 151, "height": 13, "autoResize": false, @@ -5437,8 +5437,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 61, - "top": 291, + "left": 53, + "top": 379, "width": 151, "height": 13, "autoResize": false, @@ -5465,8 +5465,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 61, - "top": 306, + "left": 53, + "top": 394, "width": 151, "height": 13, "autoResize": false, @@ -5485,8 +5485,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 56, - "top": 241, + "left": 48, + "top": 329, "width": 161, "height": 83, "autoResize": false @@ -5509,8 +5509,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 56, - "top": 324, + "left": 48, + "top": 412, "width": 161, "height": 10, "autoResize": false @@ -5533,8 +5533,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -176, - "top": 0, + "left": -184, + "top": 88, "width": 10, "height": 10, "autoResize": false @@ -5557,8 +5557,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -176, - "top": 0, + "left": -184, + "top": 88, "width": 10, "height": 10, "autoResize": false @@ -5573,8 +5573,8 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 56, - "top": 216, + "left": 48, + "top": 304, "width": 161, "height": 225, "autoResize": false, @@ -5640,8 +5640,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -496, - "top": -96, + "left": -512, + "top": 80, "width": 0, "height": 13, "autoResize": false, @@ -5664,8 +5664,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 357, - "top": 223, + "left": 349, + "top": 311, "width": 159, "height": 13, "autoResize": false, @@ -5689,8 +5689,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -496, - "top": -96, + "left": -512, + "top": 80, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -5714,8 +5714,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -496, - "top": -96, + "left": -512, + "top": 80, "width": 0, "height": 13, "autoResize": false, @@ -5733,8 +5733,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 352, - "top": 216, + "left": 344, + "top": 304, "width": 169, "height": 25, "autoResize": false, @@ -5779,8 +5779,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 357, - "top": 246, + "left": 349, + "top": 334, "width": 159, "height": 13, "autoResize": false, @@ -5807,8 +5807,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 357, - "top": 261, + "left": 349, + "top": 349, "width": 159, "height": 13, "autoResize": false, @@ -5827,8 +5827,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 352, - "top": 241, + "left": 344, + "top": 329, "width": 169, "height": 38, "autoResize": false @@ -5851,8 +5851,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 352, - "top": 279, + "left": 344, + "top": 367, "width": 169, "height": 10, "autoResize": false @@ -5875,8 +5875,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -248, - "top": -48, + "left": -256, + "top": 40, "width": 10, "height": 10, "autoResize": false @@ -5899,8 +5899,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -248, - "top": -48, + "left": -256, + "top": 40, "width": 10, "height": 10, "autoResize": false @@ -5915,8 +5915,8 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 352, - "top": 216, + "left": 344, + "top": 304, "width": 169, "height": 225, "autoResize": false, @@ -5975,8 +5975,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 284, - "top": 307, + "left": 276, + "top": 395, "width": 0, "height": 13, "autoResize": false, @@ -6008,8 +6008,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 284, - "top": 292, + "left": 276, + "top": 380, "width": 0, "height": 13, "autoResize": false, @@ -6041,8 +6041,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 284, - "top": 337, + "left": 276, + "top": 425, "width": 0, "height": 13, "autoResize": false, @@ -6074,8 +6074,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 215, - "top": 307, + "left": 207, + "top": 395, "width": 54, "height": 13, "autoResize": false, @@ -6108,8 +6108,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 245, - "top": 293, + "left": 237, + "top": 381, "width": 0, "height": 13, "autoResize": false, @@ -6141,8 +6141,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 235, - "top": 334, + "left": 227, + "top": 422, "width": 7, "height": 13, "autoResize": false, @@ -6175,8 +6175,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 304, - "top": 307, + "left": 296, + "top": 395, "width": 42, "height": 13, "autoResize": false, @@ -6209,8 +6209,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 322, - "top": 293, + "left": 314, + "top": 381, "width": 0, "height": 13, "autoResize": false, @@ -6242,8 +6242,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 319, - "top": 334, + "left": 311, + "top": 422, "width": 20, "height": 13, "autoResize": false, @@ -6276,8 +6276,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -176, - "top": 0, + "left": -184, + "top": 88, "width": 10, "height": 10, "autoResize": false @@ -6300,8 +6300,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -176, - "top": 0, + "left": -184, + "top": 88, "width": 10, "height": 10, "autoResize": false @@ -6323,7 +6323,7 @@ "$ref": "AAAAAAFU42gTNqutGVA=" }, "lineStyle": 1, - "points": "217:328;351:328", + "points": "209:416;343:416", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -6398,8 +6398,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -64, - "top": -320, + "left": 0, + "top": -688, "width": 0, "height": 13, "autoResize": false, @@ -6422,13 +6422,13 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 645, - "top": 223, + "left": 677, + "top": 39, "width": 159, "height": 13, "autoResize": false, "underline": false, - "text": "Model", + "text": "SimulationModel", "horizontalAlignment": 2, "verticalAlignment": 5 }, @@ -6447,8 +6447,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -64, - "top": -320, + "left": 0, + "top": -688, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -6472,8 +6472,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -64, - "top": -320, + "left": 0, + "top": -688, "width": 0, "height": 13, "autoResize": false, @@ -6491,8 +6491,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 640, - "top": 216, + "left": 672, + "top": 32, "width": 169, "height": 25, "autoResize": false, @@ -6537,8 +6537,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 645, - "top": 246, + "left": 677, + "top": 62, "width": 159, "height": 13, "autoResize": false, @@ -6565,8 +6565,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 645, - "top": 261, + "left": 677, + "top": 77, "width": 159, "height": 13, "autoResize": false, @@ -6593,8 +6593,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 645, - "top": 276, + "left": 677, + "top": 92, "width": 159, "height": 13, "autoResize": false, @@ -6621,8 +6621,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 645, - "top": 291, + "left": 677, + "top": 107, "width": 159, "height": 13, "autoResize": false, @@ -6641,8 +6641,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 640, - "top": 241, + "left": 672, + "top": 57, "width": 169, "height": 68, "autoResize": false @@ -6665,8 +6665,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 640, - "top": 309, + "left": 672, + "top": 125, "width": 169, "height": 10, "autoResize": false @@ -6689,8 +6689,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -32, - "top": -160, + "left": 0, + "top": -344, "width": 10, "height": 10, "autoResize": false @@ -6713,8 +6713,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -32, - "top": -160, + "left": 0, + "top": -344, "width": 10, "height": 10, "autoResize": false @@ -6729,8 +6729,8 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 640, - "top": 216, + "left": 672, + "top": 32, "width": 169, "height": 225, "autoResize": false, @@ -6762,25 +6762,125 @@ } }, { - "_type": "UMLAssociationView", - "_id": "AAAAAAFU5rUWBp8L9p4=", + "_type": "UMLClassView", + "_id": "AAAAAAFU5rum1KgKEBk=", "_parent": { "$ref": "AAAAAAFU42fjDKtd44s=" }, "model": { - "$ref": "AAAAAAFU5rUWBJ8HZAk=" + "$ref": "AAAAAAFU5rum06gInlg=" }, "subViews": [ { - "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWBp8MZ5M=", + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFU5rum1agLJ6c=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rum1KgKEBk=" }, "model": { - "$ref": "AAAAAAFU5rUWBJ8HZAk=" + "$ref": "AAAAAAFU5rum06gInlg=" }, - "visible": false, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFU5rum1agMW8Q=", + "_parent": { + "$ref": "AAAAAAFU5rum1agLJ6c=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -128, + "top": 144, + "width": 0, + "height": 13, + "autoResize": false, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFU5rum16gNLFI=", + "_parent": { + "$ref": "AAAAAAFU5rum1agLJ6c=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;1", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 349, + "top": 647, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "Visualization", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFU5rum16gOoqg=", + "_parent": { + "$ref": "AAAAAAFU5rum1agLJ6c=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -128, + "top": 144, + "width": 80.49462890625, + "height": 13, + "autoResize": false, + "underline": false, + "text": "(from Model)", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFU5rum16gPRgM=", + "_parent": { + "$ref": "AAAAAAFU5rum1agLJ6c=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -128, + "top": 144, + "width": 0, + "height": 13, + "autoResize": false, + "underline": false, + "horizontalAlignment": 1, + "verticalAlignment": 5 + } + ], + "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -6789,31 +6889,92 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 580, - "top": 307, - "width": 0, - "height": 13, + "left": 344, + "top": 640, + "width": 169, + "height": 25, "autoResize": false, - "alpha": 1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "stereotypeLabel": { + "$ref": "AAAAAAFU5rum1agMW8Q=" }, - "edgePosition": 1, - "underline": false, - "horizontalAlignment": 2, - "verticalAlignment": 5 + "nameLabel": { + "$ref": "AAAAAAFU5rum16gNLFI=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFU5rum16gOoqg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFU5rum16gPRgM=" + } }, { - "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWBp8NSHY=", + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFU5rum2KgQiX0=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rum1KgKEBk=" }, "model": { - "$ref": "AAAAAAFU5rUWBJ8HZAk=" + "$ref": "AAAAAAFU5rum06gInlg=" }, - "visible": null, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFU5rv4uKiwWDQ=", + "_parent": { + "$ref": "AAAAAAFU5rum2KgQiX0=" + }, + "model": { + "$ref": "AAAAAAFU5rv4fKin0EU=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 349, + "top": 670, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+id: string", + "horizontalAlignment": 0, + "verticalAlignment": 5 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFU5r2Ya62TIT8=", + "_parent": { + "$ref": "AAAAAAFU5rum2KgQiX0=" + }, + "model": { + "$ref": "AAAAAAFU5r2YNa2Kc64=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 349, + "top": 685, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+name: string", + "horizontalAlignment": 0, + "verticalAlignment": 5 + } + ], + "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -6822,31 +6983,22 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 580, - "top": 292, - "width": 0, - "height": 13, - "autoResize": false, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" - }, - "edgePosition": 1, - "underline": false, - "horizontalAlignment": 2, - "verticalAlignment": 5 + "left": 344, + "top": 665, + "width": 169, + "height": 38, + "autoResize": false }, { - "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWBp8OS5c=", + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFU5rum2KgR1uI=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rum1KgKEBk=" }, "model": { - "$ref": "AAAAAAFU5rUWBJ8HZAk=" + "$ref": "AAAAAAFU5rum06gInlg=" }, - "visible": false, + "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -6855,31 +7007,221 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 580, - "top": 337, - "width": 0, - "height": 13, - "autoResize": false, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" - }, - "edgePosition": 1, - "underline": false, - "horizontalAlignment": 2, - "verticalAlignment": 5 + "left": 344, + "top": 703, + "width": 169, + "height": 10, + "autoResize": false }, { - "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWBp8PmWs=", + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFU5rum2agSP/c=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rum1KgKEBk=" }, "model": { - "$ref": "AAAAAAFU5rUWBJ8Ih58=" + "$ref": "AAAAAAFU5rum06gInlg=" }, - "visible": true, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -64, + "top": 72, + "width": 10, + "height": 10, + "autoResize": false + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFU5rum2agT+YE=", + "_parent": { + "$ref": "AAAAAAFU5rum1KgKEBk=" + }, + "model": { + "$ref": "AAAAAAFU5rum06gInlg=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -64, + "top": 72, + "width": 10, + "height": 10, + "autoResize": false + } + ], + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": true, + "containerExtending": false, + "left": 344, + "top": 640, + "width": 169, + "height": 225, + "autoResize": false, + "stereotypeDisplay": "label", + "showVisibility": true, + "showNamespace": false, + "showProperty": true, + "showType": true, + "nameCompartment": { + "$ref": "AAAAAAFU5rum1agLJ6c=" + }, + "wordWrap": false, + "suppressAttributes": false, + "suppressOperations": false, + "suppressReceptions": true, + "showMultiplicity": true, + "showOperationSignature": true, + "attributeCompartment": { + "$ref": "AAAAAAFU5rum2KgQiX0=" + }, + "operationCompartment": { + "$ref": "AAAAAAFU5rum2KgR1uI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFU5rum2agSP/c=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFU5rum2agT+YE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFU5rxKFqjQe14=", + "_parent": { + "$ref": "AAAAAAFU42fjDKtd44s=" + }, + "model": { + "$ref": "AAAAAAFU5rxKE6jMusw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFU5rxKF6jR9VM=", + "_parent": { + "$ref": "AAAAAAFU5rxKFqjQe14=" + }, + "model": { + "$ref": "AAAAAAFU5rxKE6jMusw=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 442, + "top": 577, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFU5rxKFqjQe14=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFU5rxKF6jSG9g=", + "_parent": { + "$ref": "AAAAAAFU5rxKFqjQe14=" + }, + "model": { + "$ref": "AAAAAAFU5rxKE6jMusw=" + }, + "visible": null, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 457, + "top": 577, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFU5rxKFqjQe14=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFU5rxKF6jTuT8=", + "_parent": { + "$ref": "AAAAAAFU5rxKFqjQe14=" + }, + "model": { + "$ref": "AAAAAAFU5rxKE6jMusw=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 413, + "top": 578, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFU5rxKFqjQe14=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFU5rxKF6jUsaI=", + "_parent": { + "$ref": "AAAAAAFU5rxKFqjQe14=" + }, + "model": { + "$ref": "AAAAAAFU5rxKFKjNlhk=" + }, + "visible": false, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -6888,30 +7230,29 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 525, - "top": 307, - "width": 43, + "left": 443, + "top": 548, + "width": 0, "height": 13, "autoResize": false, "alpha": 0.5235987755982988, "distance": 30, "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "edgePosition": 2, "underline": false, - "text": "+model", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWBp8Q454=", + "_id": "AAAAAAFU5rxKGKjVcAg=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "model": { - "$ref": "AAAAAAFU5rUWBJ8Ih58=" + "$ref": "AAAAAAFU5rxKFKjNlhk=" }, "visible": false, "enabled": true, @@ -6922,15 +7263,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 549, - "top": 293, + "left": 456, + "top": 551, "width": 0, "height": 13, "autoResize": false, "alpha": 0.7853981633974483, "distance": 40, "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "edgePosition": 2, "underline": false, @@ -6939,12 +7280,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWB58RO6Q=", + "_id": "AAAAAAFU5rxKGKjW3I8=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "model": { - "$ref": "AAAAAAFU5rUWBJ8Ih58=" + "$ref": "AAAAAAFU5rxKFKjNlhk=" }, "visible": true, "enabled": true, @@ -6955,32 +7296,32 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 532, - "top": 334, - "width": 20, + "left": 412, + "top": 544, + "width": 7, "height": 13, "autoResize": false, "alpha": -0.5235987755982988, "distance": 25, "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "edgePosition": 2, "underline": false, - "text": "1..*", + "text": "1", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWB58SVJs=", + "_id": "AAAAAAFU5rxKGKjXWms=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "model": { - "$ref": "AAAAAAFU5rUWBZ8JmCM=" + "$ref": "AAAAAAFU5rxKFKjOAo4=" }, - "visible": false, + "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -6989,30 +7330,30 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 606, - "top": 307, - "width": 15, + "left": 432, + "top": 608, + "width": 87, "height": 13, "autoResize": false, - "alpha": -0.5235987755982988, - "distance": 30, + "alpha": -1.081943969772581, + "distance": 53.23532661682466, "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "edgePosition": 0, "underline": false, - "text": "+1", + "text": "+visualizations", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWB58THFw=", + "_id": "AAAAAAFU5rxKGKjYLQo=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "model": { - "$ref": "AAAAAAFU5rUWBZ8JmCM=" + "$ref": "AAAAAAFU5rxKFKjOAo4=" }, "visible": false, "enabled": true, @@ -7023,15 +7364,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 610, - "top": 293, + "left": 456, + "top": 604, "width": 0, "height": 13, "autoResize": false, "alpha": -0.7853981633974483, "distance": 40, "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "edgePosition": 0, "underline": false, @@ -7040,12 +7381,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rUWB58UWnM=", + "_id": "AAAAAAFU5rxKGajZ8AA=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "model": { - "$ref": "AAAAAAFU5rUWBZ8JmCM=" + "$ref": "AAAAAAFU5rxKFKjOAo4=" }, "visible": true, "enabled": true, @@ -7056,30 +7397,30 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 614, - "top": 334, - "width": 7, + "left": 405, + "top": 611, + "width": 20, "height": 13, "autoResize": false, "alpha": 0.5235987755982988, "distance": 25, "hostEdge": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "edgePosition": 0, "underline": false, - "text": "1", + "text": "1..*", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "UMLQualifierCompartmentView", - "_id": "AAAAAAFU5rUWCJ8VMns=", + "_id": "AAAAAAFU5rxKGaja/I4=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "model": { - "$ref": "AAAAAAFU5rUWBJ8Ih58=" + "$ref": "AAAAAAFU5rxKFKjNlhk=" }, "visible": false, "enabled": true, @@ -7090,20 +7431,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 0, - "top": 0, + "left": -8, + "top": 88, "width": 10, "height": 10, "autoResize": false }, { "_type": "UMLQualifierCompartmentView", - "_id": "AAAAAAFU5rUWCJ8WVtM=", + "_id": "AAAAAAFU5rxKGajbVrg=", "_parent": { - "$ref": "AAAAAAFU5rUWBp8L9p4=" + "$ref": "AAAAAAFU5rxKFqjQe14=" }, "model": { - "$ref": "AAAAAAFU5rUWBZ8JmCM=" + "$ref": "AAAAAAFU5rxKFKjOAo4=" }, "visible": false, "enabled": true, @@ -7114,9 +7455,9 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 568, - "top": 316.5, - "width": 73, + "left": -8, + "top": 88, + "width": 10, "height": 10, "autoResize": false } @@ -7131,77 +7472,77 @@ "containerChangeable": false, "containerExtending": false, "head": { - "$ref": "AAAAAAFU5rTOT56Y0MM=" + "$ref": "AAAAAAFU5rum1KgKEBk=" }, "tail": { "$ref": "AAAAAAFU42p81qvwoZI=" }, "lineStyle": 1, - "points": "521:328;639:328", + "points": "428:529;428:639", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, "nameLabel": { - "$ref": "AAAAAAFU5rUWBp8MZ5M=" + "$ref": "AAAAAAFU5rxKF6jR9VM=" }, "stereotypeLabel": { - "$ref": "AAAAAAFU5rUWBp8NSHY=" + "$ref": "AAAAAAFU5rxKF6jSG9g=" }, "propertyLabel": { - "$ref": "AAAAAAFU5rUWBp8OS5c=" + "$ref": "AAAAAAFU5rxKF6jTuT8=" }, "showMultiplicity": true, "showType": true, "tailRoleNameLabel": { - "$ref": "AAAAAAFU5rUWBp8PmWs=" + "$ref": "AAAAAAFU5rxKF6jUsaI=" }, "tailPropertyLabel": { - "$ref": "AAAAAAFU5rUWBp8Q454=" + "$ref": "AAAAAAFU5rxKGKjVcAg=" }, "tailMultiplicityLabel": { - "$ref": "AAAAAAFU5rUWB58RO6Q=" + "$ref": "AAAAAAFU5rxKGKjW3I8=" }, "headRoleNameLabel": { - "$ref": "AAAAAAFU5rUWB58SVJs=" + "$ref": "AAAAAAFU5rxKGKjXWms=" }, "headPropertyLabel": { - "$ref": "AAAAAAFU5rUWB58THFw=" + "$ref": "AAAAAAFU5rxKGKjYLQo=" }, "headMultiplicityLabel": { - "$ref": "AAAAAAFU5rUWB58UWnM=" + "$ref": "AAAAAAFU5rxKGajZ8AA=" }, "tailQualifiersCompartment": { - "$ref": "AAAAAAFU5rUWCJ8VMns=" + "$ref": "AAAAAAFU5rxKGaja/I4=" }, "headQualifiersCompartment": { - "$ref": "AAAAAAFU5rUWCJ8WVtM=" + "$ref": "AAAAAAFU5rxKGajbVrg=" } }, { "_type": "UMLClassView", - "_id": "AAAAAAFU5rum1KgKEBk=", + "_id": "AAAAAAFU5rzTh6srG0I=", "_parent": { "$ref": "AAAAAAFU42fjDKtd44s=" }, "model": { - "$ref": "AAAAAAFU5rum06gInlg=" + "$ref": "AAAAAAFU5rzThqspqHY=" }, "subViews": [ { "_type": "UMLNameCompartmentView", - "_id": "AAAAAAFU5rum1agLJ6c=", + "_id": "AAAAAAFU5rzTh6ss08o=", "_parent": { - "$ref": "AAAAAAFU5rum1KgKEBk=" + "$ref": "AAAAAAFU5rzTh6srG0I=" }, "model": { - "$ref": "AAAAAAFU5rum06gInlg=" + "$ref": "AAAAAAFU5rzThqspqHY=" }, "subViews": [ { "_type": "LabelView", - "_id": "AAAAAAFU5rum1agMW8Q=", + "_id": "AAAAAAFU5rzTh6stTSM=", "_parent": { - "$ref": "AAAAAAFU5rum1agLJ6c=" + "$ref": "AAAAAAFU5rzTh6ss08o=" }, "visible": false, "enabled": true, @@ -7212,8 +7553,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -112, - "top": -32, + "left": -144, + "top": -64, "width": 0, "height": 13, "autoResize": false, @@ -7223,34 +7564,34 @@ }, { "_type": "LabelView", - "_id": "AAAAAAFU5rum16gNLFI=", + "_id": "AAAAAAFU5rzTiKsuKlA=", "_parent": { - "$ref": "AAAAAAFU5rum1agLJ6c=" + "$ref": "AAAAAAFU5rzTh6ss08o=" }, "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", "fontColor": "#000000", - "font": "Arial;13;1", + "font": "Arial;13;3", "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 357, - "top": 559, + "left": 629, + "top": 647, "width": 159, "height": 13, "autoResize": false, "underline": false, - "text": "Visualization", + "text": "Plot", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "LabelView", - "_id": "AAAAAAFU5rum16gOoqg=", + "_id": "AAAAAAFU5rzTiKsvTdI=", "_parent": { - "$ref": "AAAAAAFU5rum1agLJ6c=" + "$ref": "AAAAAAFU5rzTh6ss08o=" }, "visible": false, "enabled": true, @@ -7261,8 +7602,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -112, - "top": -32, + "left": -144, + "top": -64, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -7273,9 +7614,9 @@ }, { "_type": "LabelView", - "_id": "AAAAAAFU5rum16gPRgM=", + "_id": "AAAAAAFU5rzTiKswxl4=", "_parent": { - "$ref": "AAAAAAFU5rum1agLJ6c=" + "$ref": "AAAAAAFU5rzTh6ss08o=" }, "visible": false, "enabled": true, @@ -7286,8 +7627,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -112, - "top": -32, + "left": -144, + "top": -64, "width": 0, "height": 13, "autoResize": false, @@ -7305,42 +7646,42 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 352, - "top": 552, + "left": 624, + "top": 640, "width": 169, "height": 25, "autoResize": false, "stereotypeLabel": { - "$ref": "AAAAAAFU5rum1agMW8Q=" + "$ref": "AAAAAAFU5rzTh6stTSM=" }, "nameLabel": { - "$ref": "AAAAAAFU5rum16gNLFI=" + "$ref": "AAAAAAFU5rzTiKsuKlA=" }, "namespaceLabel": { - "$ref": "AAAAAAFU5rum16gOoqg=" + "$ref": "AAAAAAFU5rzTiKsvTdI=" }, "propertyLabel": { - "$ref": "AAAAAAFU5rum16gPRgM=" + "$ref": "AAAAAAFU5rzTiKswxl4=" } }, { "_type": "UMLAttributeCompartmentView", - "_id": "AAAAAAFU5rum2KgQiX0=", + "_id": "AAAAAAFU5rzTiKsxUVA=", "_parent": { - "$ref": "AAAAAAFU5rum1KgKEBk=" + "$ref": "AAAAAAFU5rzTh6srG0I=" }, "model": { - "$ref": "AAAAAAFU5rum06gInlg=" + "$ref": "AAAAAAFU5rzThqspqHY=" }, "subViews": [ { "_type": "UMLAttributeView", - "_id": "AAAAAAFU5rv4uKiwWDQ=", + "_id": "AAAAAAFU5r1eqq0vZhk=", "_parent": { - "$ref": "AAAAAAFU5rum2KgQiX0=" + "$ref": "AAAAAAFU5rzTiKsxUVA=" }, "model": { - "$ref": "AAAAAAFU5rv4fKin0EU=" + "$ref": "AAAAAAFU5r1edq0jalI=" }, "visible": true, "enabled": true, @@ -7351,8 +7692,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 357, - "top": 582, + "left": 629, + "top": 670, "width": 159, "height": 13, "autoResize": false, @@ -7363,12 +7704,12 @@ }, { "_type": "UMLAttributeView", - "_id": "AAAAAAFU5r2Ya62TIT8=", + "_id": "AAAAAAFU5r3Pw64iHZ8=", "_parent": { - "$ref": "AAAAAAFU5rum2KgQiX0=" + "$ref": "AAAAAAFU5rzTiKsxUVA=" }, "model": { - "$ref": "AAAAAAFU5r2YNa2Kc64=" + "$ref": "AAAAAAFU5r3Pka4WiU8=" }, "visible": true, "enabled": true, @@ -7379,8 +7720,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 357, - "top": 597, + "left": 629, + "top": 685, "width": 159, "height": 13, "autoResize": false, @@ -7388,6 +7729,146 @@ "text": "+name: string", "horizontalAlignment": 0, "verticalAlignment": 5 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFU5r46Ta8UJV8=", + "_parent": { + "$ref": "AAAAAAFU5rzTiKsxUVA=" + }, + "model": { + "$ref": "AAAAAAFU5r46Fa8IgyM=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 629, + "top": 700, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+signal: string", + "horizontalAlignment": 0, + "verticalAlignment": 5 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFU5r6eHq+TaT4=", + "_parent": { + "$ref": "AAAAAAFU5rzTiKsxUVA=" + }, + "model": { + "$ref": "AAAAAAFU5r6d8q+HP0w=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 629, + "top": 715, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+position: Point", + "horizontalAlignment": 0, + "verticalAlignment": 5 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFU5r7G16/60S0=", + "_parent": { + "$ref": "AAAAAAFU5rzTiKsxUVA=" + }, + "model": { + "$ref": "AAAAAAFU5r7Goa/ulJ0=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 629, + "top": 730, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+size: Size", + "horizontalAlignment": 0, + "verticalAlignment": 5 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFU5sY/LcVpYkE=", + "_parent": { + "$ref": "AAAAAAFU5rzTiKsxUVA=" + }, + "model": { + "$ref": "AAAAAAFU5sY+/cVduaQ=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 629, + "top": 745, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+title: string", + "horizontalAlignment": 0, + "verticalAlignment": 5 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFU5sbFAMa9MZk=", + "_parent": { + "$ref": "AAAAAAFU5rzTiKsxUVA=" + }, + "model": { + "$ref": "AAAAAAFU5sbEvcax95c=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 629, + "top": 760, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+backgroundColor: color", + "horizontalAlignment": 0, + "verticalAlignment": 5 } ], "visible": true, @@ -7399,20 +7880,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 352, - "top": 577, + "left": 624, + "top": 665, "width": 169, - "height": 38, + "height": 113, "autoResize": false }, { "_type": "UMLOperationCompartmentView", - "_id": "AAAAAAFU5rum2KgR1uI=", + "_id": "AAAAAAFU5rzTiKsyNp8=", "_parent": { - "$ref": "AAAAAAFU5rum1KgKEBk=" + "$ref": "AAAAAAFU5rzTh6srG0I=" }, "model": { - "$ref": "AAAAAAFU5rum06gInlg=" + "$ref": "AAAAAAFU5rzThqspqHY=" }, "visible": true, "enabled": true, @@ -7423,20 +7904,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 352, - "top": 615, + "left": 624, + "top": 778, "width": 169, "height": 10, "autoResize": false }, { "_type": "UMLReceptionCompartmentView", - "_id": "AAAAAAFU5rum2agSP/c=", + "_id": "AAAAAAFU5rzTiasz4es=", "_parent": { - "$ref": "AAAAAAFU5rum1KgKEBk=" + "$ref": "AAAAAAFU5rzTh6srG0I=" }, "model": { - "$ref": "AAAAAAFU5rum06gInlg=" + "$ref": "AAAAAAFU5rzThqspqHY=" }, "visible": false, "enabled": true, @@ -7447,20 +7928,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -56, - "top": -16, + "left": -72, + "top": -32, "width": 10, "height": 10, "autoResize": false }, { "_type": "UMLTemplateParameterCompartmentView", - "_id": "AAAAAAFU5rum2agT+YE=", + "_id": "AAAAAAFU5rzTias01kU=", "_parent": { - "$ref": "AAAAAAFU5rum1KgKEBk=" + "$ref": "AAAAAAFU5rzTh6srG0I=" }, "model": { - "$ref": "AAAAAAFU5rum06gInlg=" + "$ref": "AAAAAAFU5rzThqspqHY=" }, "visible": false, "enabled": true, @@ -7471,8 +7952,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -56, - "top": -16, + "left": -72, + "top": -32, "width": 10, "height": 10, "autoResize": false @@ -7487,8 +7968,8 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 352, - "top": 552, + "left": 624, + "top": 640, "width": 169, "height": 225, "autoResize": false, @@ -7498,7 +7979,7 @@ "showProperty": true, "showType": true, "nameCompartment": { - "$ref": "AAAAAAFU5rum1agLJ6c=" + "$ref": "AAAAAAFU5rzTh6ss08o=" }, "wordWrap": false, "suppressAttributes": false, @@ -7507,36 +7988,36 @@ "showMultiplicity": true, "showOperationSignature": true, "attributeCompartment": { - "$ref": "AAAAAAFU5rum2KgQiX0=" + "$ref": "AAAAAAFU5rzTiKsxUVA=" }, "operationCompartment": { - "$ref": "AAAAAAFU5rum2KgR1uI=" + "$ref": "AAAAAAFU5rzTiKsyNp8=" }, "receptionCompartment": { - "$ref": "AAAAAAFU5rum2agSP/c=" + "$ref": "AAAAAAFU5rzTiasz4es=" }, "templateParameterCompartment": { - "$ref": "AAAAAAFU5rum2agT+YE=" + "$ref": "AAAAAAFU5rzTias01kU=" } }, { "_type": "UMLAssociationView", - "_id": "AAAAAAFU5rxKFqjQe14=", + "_id": "AAAAAAFU5r0gVKvpO9o=", "_parent": { "$ref": "AAAAAAFU42fjDKtd44s=" }, "model": { - "$ref": "AAAAAAFU5rxKE6jMusw=" + "$ref": "AAAAAAFU5r0gU6vlNlA=" }, "subViews": [ { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKF6jR9VM=", + "_id": "AAAAAAFU5r0gVKvqVAc=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKE6jMusw=" + "$ref": "AAAAAAFU5r0gU6vlNlA=" }, "visible": false, "enabled": true, @@ -7547,15 +8028,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 450, - "top": 489, + "left": 568, + "top": 731, "width": 0, "height": 13, "autoResize": false, "alpha": 1.5707963267948966, "distance": 15, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 1, "underline": false, @@ -7564,12 +8045,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKF6jSG9g=", + "_id": "AAAAAAFU5r0gVKvr2Fc=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKE6jMusw=" + "$ref": "AAAAAAFU5r0gU6vlNlA=" }, "visible": null, "enabled": true, @@ -7580,15 +8061,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 465, - "top": 489, + "left": 568, + "top": 716, "width": 0, "height": 13, "autoResize": false, "alpha": 1.5707963267948966, "distance": 30, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 1, "underline": false, @@ -7597,12 +8078,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKF6jTuT8=", + "_id": "AAAAAAFU5r0gVKvsMWQ=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKE6jMusw=" + "$ref": "AAAAAAFU5r0gU6vlNlA=" }, "visible": false, "enabled": true, @@ -7613,15 +8094,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 421, - "top": 490, + "left": 568, + "top": 761, "width": 0, "height": 13, "autoResize": false, "alpha": -1.5707963267948966, "distance": 15, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 1, "underline": false, @@ -7630,12 +8111,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKF6jUsaI=", + "_id": "AAAAAAFU5r0gVKvtrzY=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKFKjNlhk=" + "$ref": "AAAAAAFU5r0gU6vm044=" }, "visible": false, "enabled": true, @@ -7646,15 +8127,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 451, - "top": 460, + "left": 538, + "top": 731, "width": 0, "height": 13, "autoResize": false, "alpha": 0.5235987755982988, "distance": 30, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 2, "underline": false, @@ -7663,12 +8144,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKGKjVcAg=", + "_id": "AAAAAAFU5r0gVKvuazs=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKFKjNlhk=" + "$ref": "AAAAAAFU5r0gU6vm044=" }, "visible": false, "enabled": true, @@ -7679,15 +8160,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 464, - "top": 463, + "left": 541, + "top": 717, "width": 0, "height": 13, "autoResize": false, "alpha": 0.7853981633974483, "distance": 40, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 2, "underline": false, @@ -7696,12 +8177,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKGKjW3I8=", + "_id": "AAAAAAFU5r0gVKvvLzU=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKFKjNlhk=" + "$ref": "AAAAAAFU5r0gU6vm044=" }, "visible": true, "enabled": true, @@ -7712,15 +8193,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 420, - "top": 456, + "left": 531, + "top": 758, "width": 7, "height": 13, "autoResize": false, "alpha": -0.5235987755982988, "distance": 25, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 2, "underline": false, @@ -7730,14 +8211,14 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKGKjXWms=", + "_id": "AAAAAAFU5r0gVKvws/s=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKFKjOAo4=" + "$ref": "AAAAAAFU5r0gU6vnmfI=" }, - "visible": true, + "visible": false, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -7746,30 +8227,29 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 440, - "top": 520, - "width": 87, + "left": 597, + "top": 731, + "width": 0, "height": 13, "autoResize": false, - "alpha": -1.081943969772581, - "distance": 53.23532661682466, + "alpha": -0.5235987755982988, + "distance": 30, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 0, "underline": false, - "text": "+visualizations", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKGKjYLQo=", + "_id": "AAAAAAFU5r0gVKvx3EQ=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKFKjOAo4=" + "$ref": "AAAAAAFU5r0gU6vnmfI=" }, "visible": false, "enabled": true, @@ -7780,15 +8260,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 464, - "top": 516, + "left": 594, + "top": 717, "width": 0, "height": 13, "autoResize": false, "alpha": -0.7853981633974483, "distance": 40, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 0, "underline": false, @@ -7797,12 +8277,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5rxKGajZ8AA=", + "_id": "AAAAAAFU5r0gVKvyg/I=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKFKjOAo4=" + "$ref": "AAAAAAFU5r0gU6vnmfI=" }, "visible": true, "enabled": true, @@ -7813,30 +8293,30 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 413, - "top": 523, + "left": 591, + "top": 758, "width": 20, "height": 13, "autoResize": false, "alpha": 0.5235987755982988, "distance": 25, "hostEdge": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "edgePosition": 0, "underline": false, - "text": "1..*", + "text": "0..*", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "UMLQualifierCompartmentView", - "_id": "AAAAAAFU5rxKGaja/I4=", + "_id": "AAAAAAFU5r0gVKvzWhw=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKFKjNlhk=" + "$ref": "AAAAAAFU5r0gU6vm044=" }, "visible": false, "enabled": true, @@ -7847,20 +8327,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 0, - "top": 0, + "left": -8, + "top": 88, "width": 10, "height": 10, "autoResize": false }, { "_type": "UMLQualifierCompartmentView", - "_id": "AAAAAAFU5rxKGajbVrg=", + "_id": "AAAAAAFU5r0gVKv0DWY=", "_parent": { - "$ref": "AAAAAAFU5rxKFqjQe14=" + "$ref": "AAAAAAFU5r0gVKvpO9o=" }, "model": { - "$ref": "AAAAAAFU5rxKFKjOAo4=" + "$ref": "AAAAAAFU5r0gU6vnmfI=" }, "visible": false, "enabled": true, @@ -7871,8 +8351,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 0, - "top": 0, + "left": -8, + "top": 88, "width": 10, "height": 10, "autoResize": false @@ -7888,77 +8368,77 @@ "containerChangeable": false, "containerExtending": false, "head": { - "$ref": "AAAAAAFU5rum1KgKEBk=" + "$ref": "AAAAAAFU5rzTh6srG0I=" }, "tail": { - "$ref": "AAAAAAFU42p81qvwoZI=" + "$ref": "AAAAAAFU5rum1KgKEBk=" }, "lineStyle": 1, - "points": "436:441;436:551", + "points": "513:752;623:752", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, "nameLabel": { - "$ref": "AAAAAAFU5rxKF6jR9VM=" + "$ref": "AAAAAAFU5r0gVKvqVAc=" }, "stereotypeLabel": { - "$ref": "AAAAAAFU5rxKF6jSG9g=" + "$ref": "AAAAAAFU5r0gVKvr2Fc=" }, "propertyLabel": { - "$ref": "AAAAAAFU5rxKF6jTuT8=" + "$ref": "AAAAAAFU5r0gVKvsMWQ=" }, "showMultiplicity": true, "showType": true, "tailRoleNameLabel": { - "$ref": "AAAAAAFU5rxKF6jUsaI=" + "$ref": "AAAAAAFU5r0gVKvtrzY=" }, "tailPropertyLabel": { - "$ref": "AAAAAAFU5rxKGKjVcAg=" + "$ref": "AAAAAAFU5r0gVKvuazs=" }, "tailMultiplicityLabel": { - "$ref": "AAAAAAFU5rxKGKjW3I8=" + "$ref": "AAAAAAFU5r0gVKvvLzU=" }, "headRoleNameLabel": { - "$ref": "AAAAAAFU5rxKGKjXWms=" + "$ref": "AAAAAAFU5r0gVKvws/s=" }, "headPropertyLabel": { - "$ref": "AAAAAAFU5rxKGKjYLQo=" + "$ref": "AAAAAAFU5r0gVKvx3EQ=" }, "headMultiplicityLabel": { - "$ref": "AAAAAAFU5rxKGajZ8AA=" + "$ref": "AAAAAAFU5r0gVKvyg/I=" }, "tailQualifiersCompartment": { - "$ref": "AAAAAAFU5rxKGaja/I4=" + "$ref": "AAAAAAFU5r0gVKvzWhw=" }, "headQualifiersCompartment": { - "$ref": "AAAAAAFU5rxKGajbVrg=" + "$ref": "AAAAAAFU5r0gVKv0DWY=" } }, { "_type": "UMLClassView", - "_id": "AAAAAAFU5rzTh6srG0I=", + "_id": "AAAAAAFU5sVbDML4liU=", "_parent": { "$ref": "AAAAAAFU42fjDKtd44s=" }, "model": { - "$ref": "AAAAAAFU5rzThqspqHY=" + "$ref": "AAAAAAFU5sVbCsL2w9g=" }, "subViews": [ { "_type": "UMLNameCompartmentView", - "_id": "AAAAAAFU5rzTh6ss08o=", + "_id": "AAAAAAFU5sVbDML5M8k=", "_parent": { - "$ref": "AAAAAAFU5rzTh6srG0I=" + "$ref": "AAAAAAFU5sVbDML4liU=" }, "model": { - "$ref": "AAAAAAFU5rzThqspqHY=" + "$ref": "AAAAAAFU5sVbCsL2w9g=" }, "subViews": [ { "_type": "LabelView", - "_id": "AAAAAAFU5rzTh6stTSM=", + "_id": "AAAAAAFU5sVbDcL6iAY=", "_parent": { - "$ref": "AAAAAAFU5rzTh6ss08o=" + "$ref": "AAAAAAFU5sVbDML5M8k=" }, "visible": false, "enabled": true, @@ -7969,8 +8449,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -128, - "top": -240, + "left": 16, + "top": 32, "width": 0, "height": 13, "autoResize": false, @@ -7980,34 +8460,34 @@ }, { "_type": "LabelView", - "_id": "AAAAAAFU5rzTiKsuKlA=", + "_id": "AAAAAAFU5sVbDcL7QrY=", "_parent": { - "$ref": "AAAAAAFU5rzTh6ss08o=" + "$ref": "AAAAAAFU5sVbDML5M8k=" }, "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", "fontColor": "#000000", - "font": "Arial;13;3", + "font": "Arial;13;1", "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 637, - "top": 559, - "width": 159, + "left": 909, + "top": 647, + "width": 167, "height": 13, "autoResize": false, "underline": false, - "text": "Plot", + "text": "Chart", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "LabelView", - "_id": "AAAAAAFU5rzTiKsvTdI=", + "_id": "AAAAAAFU5sVbDcL85uM=", "_parent": { - "$ref": "AAAAAAFU5rzTh6ss08o=" + "$ref": "AAAAAAFU5sVbDML5M8k=" }, "visible": false, "enabled": true, @@ -8018,8 +8498,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -128, - "top": -240, + "left": 16, + "top": 32, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -8030,9 +8510,9 @@ }, { "_type": "LabelView", - "_id": "AAAAAAFU5rzTiKswxl4=", + "_id": "AAAAAAFU5sVbDcL9g5w=", "_parent": { - "$ref": "AAAAAAFU5rzTh6ss08o=" + "$ref": "AAAAAAFU5sVbDML5M8k=" }, "visible": false, "enabled": true, @@ -8043,8 +8523,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -128, - "top": -240, + "left": 16, + "top": 32, "width": 0, "height": 13, "autoResize": false, @@ -8062,98 +8542,42 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 632, - "top": 552, - "width": 169, + "left": 904, + "top": 640, + "width": 177, "height": 25, "autoResize": false, "stereotypeLabel": { - "$ref": "AAAAAAFU5rzTh6stTSM=" + "$ref": "AAAAAAFU5sVbDcL6iAY=" }, "nameLabel": { - "$ref": "AAAAAAFU5rzTiKsuKlA=" + "$ref": "AAAAAAFU5sVbDcL7QrY=" }, "namespaceLabel": { - "$ref": "AAAAAAFU5rzTiKsvTdI=" + "$ref": "AAAAAAFU5sVbDcL85uM=" }, "propertyLabel": { - "$ref": "AAAAAAFU5rzTiKswxl4=" + "$ref": "AAAAAAFU5sVbDcL9g5w=" } }, { "_type": "UMLAttributeCompartmentView", - "_id": "AAAAAAFU5rzTiKsxUVA=", + "_id": "AAAAAAFU5sVbDsL+Ynw=", "_parent": { - "$ref": "AAAAAAFU5rzTh6srG0I=" + "$ref": "AAAAAAFU5sVbDML4liU=" }, "model": { - "$ref": "AAAAAAFU5rzThqspqHY=" + "$ref": "AAAAAAFU5sVbCsL2w9g=" }, "subViews": [ { "_type": "UMLAttributeView", - "_id": "AAAAAAFU5r1eqq0vZhk=", - "_parent": { - "$ref": "AAAAAAFU5rzTiKsxUVA=" - }, - "model": { - "$ref": "AAAAAAFU5r1edq0jalI=" - }, - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 637, - "top": 582, - "width": 159, - "height": 13, - "autoResize": false, - "underline": false, - "text": "+id: string", - "horizontalAlignment": 0, - "verticalAlignment": 5 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAFU5r3Pw64iHZ8=", - "_parent": { - "$ref": "AAAAAAFU5rzTiKsxUVA=" - }, - "model": { - "$ref": "AAAAAAFU5r3Pka4WiU8=" - }, - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 637, - "top": 597, - "width": 159, - "height": 13, - "autoResize": false, - "underline": false, - "text": "+name: string", - "horizontalAlignment": 0, - "verticalAlignment": 5 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAFU5r46Ta8UJV8=", + "_id": "AAAAAAFU5sWyasR60tc=", "_parent": { - "$ref": "AAAAAAFU5rzTiKsxUVA=" + "$ref": "AAAAAAFU5sVbDsL+Ynw=" }, "model": { - "$ref": "AAAAAAFU5r46Fa8IgyM=" + "$ref": "AAAAAAFU5sWyNsRrzAE=" }, "visible": true, "enabled": true, @@ -8164,24 +8588,24 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 637, - "top": 612, - "width": 159, + "left": 909, + "top": 670, + "width": 167, "height": 13, "autoResize": false, "underline": false, - "text": "+signal: string", + "text": "+units: string[2]", "horizontalAlignment": 0, "verticalAlignment": 5 }, { "_type": "UMLAttributeView", - "_id": "AAAAAAFU5r6eHq+TaT4=", + "_id": "AAAAAAFU5sYCLcThmgY=", "_parent": { - "$ref": "AAAAAAFU5rzTiKsxUVA=" + "$ref": "AAAAAAFU5sVbDsL+Ynw=" }, "model": { - "$ref": "AAAAAAFU5r6d8q+HP0w=" + "$ref": "AAAAAAFU5sYCAMTSBn8=" }, "visible": true, "enabled": true, @@ -8192,24 +8616,24 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 637, - "top": 627, - "width": 159, + "left": 909, + "top": 685, + "width": 167, "height": 13, "autoResize": false, "underline": false, - "text": "+position: Point", + "text": "+labels: string[2]", "horizontalAlignment": 0, "verticalAlignment": 5 }, { "_type": "UMLAttributeView", - "_id": "AAAAAAFU5r7G16/60S0=", + "_id": "AAAAAAFU5sZrk8XrUqc=", "_parent": { - "$ref": "AAAAAAFU5rzTiKsxUVA=" + "$ref": "AAAAAAFU5sVbDsL+Ynw=" }, "model": { - "$ref": "AAAAAAFU5r7Goa/ulJ0=" + "$ref": "AAAAAAFU5sZrXsXczjI=" }, "visible": true, "enabled": true, @@ -8220,69 +8644,13 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 637, - "top": 642, - "width": 159, + "left": 909, + "top": 700, + "width": 167, "height": 13, "autoResize": false, "underline": false, - "text": "+size: Size", - "horizontalAlignment": 0, - "verticalAlignment": 5 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAFU5sY/LcVpYkE=", - "_parent": { - "$ref": "AAAAAAFU5rzTiKsxUVA=" - }, - "model": { - "$ref": "AAAAAAFU5sY+/cVduaQ=" - }, - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 637, - "top": 657, - "width": 159, - "height": 13, - "autoResize": false, - "underline": false, - "text": "+title: string", - "horizontalAlignment": 0, - "verticalAlignment": 5 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAFU5sbFAMa9MZk=", - "_parent": { - "$ref": "AAAAAAFU5rzTiKsxUVA=" - }, - "model": { - "$ref": "AAAAAAFU5sbEvcax95c=" - }, - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 637, - "top": 672, - "width": 159, - "height": 13, - "autoResize": false, - "underline": false, - "text": "+backgroundColor: color", + "text": "+lineColor: color", "horizontalAlignment": 0, "verticalAlignment": 5 } @@ -8296,20 +8664,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 632, - "top": 577, - "width": 169, - "height": 113, + "left": 904, + "top": 665, + "width": 177, + "height": 53, "autoResize": false }, { "_type": "UMLOperationCompartmentView", - "_id": "AAAAAAFU5rzTiKsyNp8=", + "_id": "AAAAAAFU5sVbDsL/2a4=", "_parent": { - "$ref": "AAAAAAFU5rzTh6srG0I=" + "$ref": "AAAAAAFU5sVbDML4liU=" }, "model": { - "$ref": "AAAAAAFU5rzThqspqHY=" + "$ref": "AAAAAAFU5sVbCsL2w9g=" }, "visible": true, "enabled": true, @@ -8320,20 +8688,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 632, - "top": 690, - "width": 169, + "left": 904, + "top": 718, + "width": 177, "height": 10, "autoResize": false }, { "_type": "UMLReceptionCompartmentView", - "_id": "AAAAAAFU5rzTiasz4es=", + "_id": "AAAAAAFU5sVbEMMA2GM=", "_parent": { - "$ref": "AAAAAAFU5rzTh6srG0I=" + "$ref": "AAAAAAFU5sVbDML4liU=" }, "model": { - "$ref": "AAAAAAFU5rzThqspqHY=" + "$ref": "AAAAAAFU5sVbCsL2w9g=" }, "visible": false, "enabled": true, @@ -8344,20 +8712,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -64, - "top": -120, + "left": 8, + "top": 16, "width": 10, "height": 10, "autoResize": false }, { "_type": "UMLTemplateParameterCompartmentView", - "_id": "AAAAAAFU5rzTias01kU=", + "_id": "AAAAAAFU5sVbEMMBrzQ=", "_parent": { - "$ref": "AAAAAAFU5rzTh6srG0I=" + "$ref": "AAAAAAFU5sVbDML4liU=" }, "model": { - "$ref": "AAAAAAFU5rzThqspqHY=" + "$ref": "AAAAAAFU5sVbCsL2w9g=" }, "visible": false, "enabled": true, @@ -8368,8 +8736,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -64, - "top": -120, + "left": 8, + "top": 16, "width": 10, "height": 10, "autoResize": false @@ -8384,9 +8752,9 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 632, - "top": 552, - "width": 169, + "left": 904, + "top": 640, + "width": 177, "height": 225, "autoResize": false, "stereotypeDisplay": "label", @@ -8395,7 +8763,7 @@ "showProperty": true, "showType": true, "nameCompartment": { - "$ref": "AAAAAAFU5rzTh6ss08o=" + "$ref": "AAAAAAFU5sVbDML5M8k=" }, "wordWrap": false, "suppressAttributes": false, @@ -8404,36 +8772,36 @@ "showMultiplicity": true, "showOperationSignature": true, "attributeCompartment": { - "$ref": "AAAAAAFU5rzTiKsxUVA=" + "$ref": "AAAAAAFU5sVbDsL+Ynw=" }, "operationCompartment": { - "$ref": "AAAAAAFU5rzTiKsyNp8=" + "$ref": "AAAAAAFU5sVbDsL/2a4=" }, "receptionCompartment": { - "$ref": "AAAAAAFU5rzTiasz4es=" + "$ref": "AAAAAAFU5sVbEMMA2GM=" }, "templateParameterCompartment": { - "$ref": "AAAAAAFU5rzTias01kU=" + "$ref": "AAAAAAFU5sVbEMMBrzQ=" } }, { - "_type": "UMLAssociationView", - "_id": "AAAAAAFU5r0gVKvpO9o=", + "_type": "UMLGeneralizationView", + "_id": "AAAAAAFU5sWWb8PkrWs=", "_parent": { "$ref": "AAAAAAFU42fjDKtd44s=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vlNlA=" + "$ref": "AAAAAAFU5sWWbsPi7Fo=" }, "subViews": [ { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvqVAc=", + "_id": "AAAAAAFU5sWWb8Plkh8=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFU5sWWb8PkrWs=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vlNlA=" + "$ref": "AAAAAAFU5sWWbsPi7Fo=" }, "visible": false, "enabled": true, @@ -8444,15 +8812,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 576, - "top": 643, + "left": 847, + "top": 761, "width": 0, "height": 13, "autoResize": false, "alpha": 1.5707963267948966, "distance": 15, "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFU5sWWb8PkrWs=" }, "edgePosition": 1, "underline": false, @@ -8461,12 +8829,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvr2Fc=", + "_id": "AAAAAAFU5sWWb8PmJxk=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFU5sWWb8PkrWs=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vlNlA=" + "$ref": "AAAAAAFU5sWWbsPi7Fo=" }, "visible": null, "enabled": true, @@ -8477,15 +8845,15 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 576, - "top": 628, + "left": 847, + "top": 776, "width": 0, "height": 13, "autoResize": false, "alpha": 1.5707963267948966, "distance": 30, "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFU5sWWb8PkrWs=" }, "edgePosition": 1, "underline": false, @@ -8494,12 +8862,12 @@ }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvsMWQ=", + "_id": "AAAAAAFU5sWWb8Pn6Dc=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFU5sWWb8PkrWs=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vlNlA=" + "$ref": "AAAAAAFU5sWWbsPi7Fo=" }, "visible": false, "enabled": true, @@ -8510,31 +8878,172 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 576, - "top": 673, + "left": 848, + "top": 731, "width": 0, "height": 13, "autoResize": false, "alpha": -1.5707963267948966, "distance": 15, "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFU5sWWb8PkrWs=" }, "edgePosition": 1, "underline": false, "horizontalAlignment": 2, "verticalAlignment": 5 - }, + } + ], + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "head": { + "$ref": "AAAAAAFU5rzTh6srG0I=" + }, + "tail": { + "$ref": "AAAAAAFU5sVbDML4liU=" + }, + "lineStyle": 1, + "points": "903:752;793:752", + "stereotypeDisplay": "label", + "showVisibility": true, + "showProperty": true, + "nameLabel": { + "$ref": "AAAAAAFU5sWWb8Plkh8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFU5sWWb8PmJxk=" + }, + "propertyLabel": { + "$ref": "AAAAAAFU5sWWb8Pn6Dc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFWJ08Z/qhHDF4=", + "_parent": { + "$ref": "AAAAAAFU42fjDKtd44s=" + }, + "model": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "subViews": [ { - "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvtrzY=", + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFWJ08Z/qhIyrM=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ08Z/qhHDF4=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vm044=" + "$ref": "AAAAAAFWJ08Z/ahFxW0=" }, - "visible": false, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFWJ08Z/qhJdkU=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/qhIyrM=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -96, + "top": -112, + "width": 0, + "height": 13, + "autoResize": false, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFWJ08Z/6hKK6k=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/qhIyrM=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;1", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 349, + "top": 47, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "Simulation", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFWJ08Z/6hLiwM=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/qhIyrM=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -96, + "top": -112, + "width": 73, + "height": 13, + "autoResize": false, + "underline": false, + "text": "(from Model)", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFWJ08Z/6hMjU8=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/qhIyrM=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -96, + "top": -112, + "width": 0, + "height": 13, + "autoResize": false, + "underline": false, + "horizontalAlignment": 1, + "verticalAlignment": 5 + } + ], + "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -8543,31 +9052,92 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 546, - "top": 643, - "width": 0, - "height": 13, + "left": 344, + "top": 40, + "width": 169, + "height": 25, "autoResize": false, - "alpha": 0.5235987755982988, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "stereotypeLabel": { + "$ref": "AAAAAAFWJ08Z/qhJdkU=" }, - "edgePosition": 2, - "underline": false, - "horizontalAlignment": 2, - "verticalAlignment": 5 + "nameLabel": { + "$ref": "AAAAAAFWJ08Z/6hKK6k=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFWJ08Z/6hLiwM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFWJ08Z/6hMjU8=" + } }, { - "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvuazs=", + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFWJ08Z/6hNmrE=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ08Z/qhHDF4=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vm044=" + "$ref": "AAAAAAFWJ08Z/ahFxW0=" }, - "visible": false, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFWJ0/Feaq6uHM=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/6hNmrE=" + }, + "model": { + "$ref": "AAAAAAFWJ0/FYaquLSw=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 349, + "top": 70, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+name: string", + "horizontalAlignment": 0, + "verticalAlignment": 5 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFWJ0/oe6tXRSc=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/6hNmrE=" + }, + "model": { + "$ref": "AAAAAAFWJ0/oaatLEZ4=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 349, + "top": 85, + "width": 159, + "height": 13, + "autoResize": false, + "underline": false, + "text": "+running: boolean", + "horizontalAlignment": 0, + "verticalAlignment": 5 + } + ], + "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -8576,31 +9146,146 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 549, - "top": 629, - "width": 0, - "height": 13, - "autoResize": false, - "alpha": 0.7853981633974483, - "distance": 40, - "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "left": 344, + "top": 65, + "width": 169, + "height": 38, + "autoResize": false + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFWJ08Z/6hO23c=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/qhHDF4=" }, - "edgePosition": 2, - "underline": false, - "horizontalAlignment": 2, - "verticalAlignment": 5 + "model": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 344, + "top": 103, + "width": 169, + "height": 10, + "autoResize": false + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFWJ08Z/6hPVDg=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/qhHDF4=" + }, + "model": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -48, + "top": -56, + "width": 10, + "height": 10, + "autoResize": false }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFWJ08aAKhQrmk=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/qhHDF4=" + }, + "model": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": -48, + "top": -56, + "width": 10, + "height": 10, + "autoResize": false + } + ], + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": true, + "containerExtending": false, + "left": 344, + "top": 40, + "width": 169, + "height": 209, + "autoResize": false, + "stereotypeDisplay": "label", + "showVisibility": true, + "showNamespace": false, + "showProperty": true, + "showType": true, + "nameCompartment": { + "$ref": "AAAAAAFWJ08Z/qhIyrM=" + }, + "wordWrap": false, + "suppressAttributes": false, + "suppressOperations": false, + "suppressReceptions": true, + "showMultiplicity": true, + "showOperationSignature": true, + "attributeCompartment": { + "$ref": "AAAAAAFWJ08Z/6hNmrE=" + }, + "operationCompartment": { + "$ref": "AAAAAAFWJ08Z/6hO23c=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFWJ08Z/6hPVDg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFWJ08aAKhQrmk=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFWJ09mrKlgqjo=", + "_parent": { + "$ref": "AAAAAAFU42fjDKtd44s=" + }, + "model": { + "$ref": "AAAAAAFWJ09mq6lcARU=" + }, + "subViews": [ { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvvLzU=", + "_id": "AAAAAAFWJ09mralhvXo=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vm044=" + "$ref": "AAAAAAFWJ09mq6lcARU=" }, - "visible": true, + "visible": false, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -8609,32 +9294,31 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 539, - "top": 670, - "width": 7, + "left": 591, + "top": 153, + "width": 0, "height": 13, "autoResize": false, - "alpha": -0.5235987755982988, - "distance": 25, + "alpha": 1.5707963267948966, + "distance": 15, "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, - "edgePosition": 2, + "edgePosition": 1, "underline": false, - "text": "1", "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvws/s=", + "_id": "AAAAAAFWJ09mrali0LA=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vnmfI=" + "$ref": "AAAAAAFWJ09mq6lcARU=" }, - "visible": false, + "visible": null, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -8643,29 +9327,29 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 605, - "top": 643, + "left": 591, + "top": 168, "width": 0, "height": 13, "autoResize": false, - "alpha": -0.5235987755982988, + "alpha": 1.5707963267948966, "distance": 30, "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, - "edgePosition": 0, + "edgePosition": 1, "underline": false, "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvx3EQ=", + "_id": "AAAAAAFWJ09mraljF4Q=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vnmfI=" + "$ref": "AAAAAAFWJ09mq6lcARU=" }, "visible": false, "enabled": true, @@ -8676,29 +9360,29 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 602, - "top": 629, + "left": 592, + "top": 123, "width": 0, "height": 13, "autoResize": false, - "alpha": -0.7853981633974483, - "distance": 40, + "alpha": -1.5707963267948966, + "distance": 15, "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, - "edgePosition": 0, + "edgePosition": 1, "underline": false, "horizontalAlignment": 2, "verticalAlignment": 5 }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5r0gVKvyg/I=", + "_id": "AAAAAAFWJ09mralkvzQ=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vnmfI=" + "$ref": "AAAAAAFWJ09mq6ldcsE=" }, "visible": true, "enabled": true, @@ -8709,30 +9393,30 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 599, - "top": 670, - "width": 20, + "left": 600, + "top": 152, + "width": 67, "height": 13, "autoResize": false, - "alpha": 0.5235987755982988, - "distance": 25, + "alpha": 0.35299047319278376, + "distance": 40.496913462633174, "hostEdge": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, - "edgePosition": 0, + "edgePosition": 2, "underline": false, - "text": "0..*", + "text": "+simulation", "horizontalAlignment": 2, "verticalAlignment": 5 }, { - "_type": "UMLQualifierCompartmentView", - "_id": "AAAAAAFU5r0gVKvzWhw=", + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ09mrall5UI=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vm044=" + "$ref": "AAAAAAFWJ09mq6ldcsE=" }, "visible": false, "enabled": true, @@ -8743,22 +9427,31 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 0, - "top": 0, - "width": 10, - "height": 10, - "autoResize": false + "left": 642, + "top": 166, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "edgePosition": 2, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 }, { - "_type": "UMLQualifierCompartmentView", - "_id": "AAAAAAFU5r0gVKv0DWY=", + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ09mrqlmYVE=", "_parent": { - "$ref": "AAAAAAFU5r0gVKvpO9o=" + "$ref": "AAAAAAFWJ09mrKlgqjo=" }, "model": { - "$ref": "AAAAAAFU5r0gU6vnmfI=" + "$ref": "AAAAAAFWJ09mq6ldcsE=" }, - "visible": false, + "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -8767,10 +9460,583 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 0, - "top": 0, - "width": 10, - "height": 10, + "left": 639, + "top": 125, + "width": 20, + "height": 13, + "autoResize": false, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "edgePosition": 2, + "underline": false, + "text": "0..*", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ09mrqlnlp0=", + "_parent": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "model": { + "$ref": "AAAAAAFWJ09mq6leAm4=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 513, + "top": 152, + "width": 50, + "height": 13, + "autoResize": false, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "edgePosition": 0, + "underline": false, + "text": "+models", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ09mrqlot58=", + "_parent": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "model": { + "$ref": "AAAAAAFWJ09mq6leAm4=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 541, + "top": 166, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "edgePosition": 0, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ09mrqlp1j0=", + "_parent": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "model": { + "$ref": "AAAAAAFWJ09mq6leAm4=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 531, + "top": 125, + "width": 7, + "height": 13, + "autoResize": false, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "edgePosition": 0, + "underline": false, + "text": "1", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFWJ09mrqlqS08=", + "_parent": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "model": { + "$ref": "AAAAAAFWJ09mq6ldcsE=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 0, + "top": 0, + "width": 10, + "height": 10, + "autoResize": false + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFWJ09mrqlrras=", + "_parent": { + "$ref": "AAAAAAFWJ09mrKlgqjo=" + }, + "model": { + "$ref": "AAAAAAFWJ09mq6leAm4=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 0, + "top": 0, + "width": 10, + "height": 10, + "autoResize": false + } + ], + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "head": { + "$ref": "AAAAAAFWJ08Z/qhHDF4=" + }, + "tail": { + "$ref": "AAAAAAFU5rTOT56Y0MM=" + }, + "lineStyle": 1, + "points": "671:144;513:144", + "stereotypeDisplay": "label", + "showVisibility": true, + "showProperty": true, + "nameLabel": { + "$ref": "AAAAAAFWJ09mralhvXo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFWJ09mrali0LA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFWJ09mraljF4Q=" + }, + "showMultiplicity": true, + "showType": true, + "tailRoleNameLabel": { + "$ref": "AAAAAAFWJ09mralkvzQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFWJ09mrall5UI=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFWJ09mrqlmYVE=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFWJ09mrqlnlp0=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFWJ09mrqlot58=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFWJ09mrqlp1j0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFWJ09mrqlqS08=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFWJ09mrqlrras=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFWJ096A6nogC0=", + "_parent": { + "$ref": "AAAAAAFU42fjDKtd44s=" + }, + "model": { + "$ref": "AAAAAAFWJ096Aqnkjtk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6npKJw=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096Aqnkjtk=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 265, + "top": 264, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6nqytk=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096Aqnkjtk=" + }, + "visible": null, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 255, + "top": 253, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6nrFos=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096Aqnkjtk=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 286, + "top": 287, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6nsUDo=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096AqnleE8=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 218, + "top": 308, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 2, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6ntgkM=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096AqnleE8=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 210, + "top": 297, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 2, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6nuBsE=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096AqnleE8=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 230, + "top": 331, + "width": 7, + "height": 13, + "autoResize": false, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 2, + "underline": false, + "text": "1", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6nvOnM=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096AqnmpsM=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 313, + "top": 221, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 0, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6nwDHU=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096AqnmpsM=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 303, + "top": 213, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 0, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ096A6nxO6E=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096AqnmpsM=" + }, + "visible": true, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 325, + "top": 238, + "width": 20, + "height": 13, + "autoResize": false, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "edgePosition": 0, + "underline": false, + "text": "0..*", + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFWJ096A6nyQno=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096AqnleE8=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 0, + "top": 0, + "width": 10, + "height": 10, + "autoResize": false + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFWJ096BKnzFto=", + "_parent": { + "$ref": "AAAAAAFWJ096A6nogC0=" + }, + "model": { + "$ref": "AAAAAAFWJ096AqnmpsM=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 0, + "top": 0, + "width": 10, + "height": 10, "autoResize": false } ], @@ -8784,172 +10050,171 @@ "containerChangeable": false, "containerExtending": false, "head": { - "$ref": "AAAAAAFU5rzTh6srG0I=" + "$ref": "AAAAAAFWJ08Z/qhHDF4=" }, "tail": { - "$ref": "AAAAAAFU5rum1KgKEBk=" + "$ref": "AAAAAAFU42gTNqutGVA=" }, "lineStyle": 1, - "points": "521:664;631:664", + "points": "209:343;343:221", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, "nameLabel": { - "$ref": "AAAAAAFU5r0gVKvqVAc=" + "$ref": "AAAAAAFWJ096A6npKJw=" }, "stereotypeLabel": { - "$ref": "AAAAAAFU5r0gVKvr2Fc=" + "$ref": "AAAAAAFWJ096A6nqytk=" }, "propertyLabel": { - "$ref": "AAAAAAFU5r0gVKvsMWQ=" + "$ref": "AAAAAAFWJ096A6nrFos=" }, "showMultiplicity": true, "showType": true, "tailRoleNameLabel": { - "$ref": "AAAAAAFU5r0gVKvtrzY=" + "$ref": "AAAAAAFWJ096A6nsUDo=" }, "tailPropertyLabel": { - "$ref": "AAAAAAFU5r0gVKvuazs=" + "$ref": "AAAAAAFWJ096A6ntgkM=" }, "tailMultiplicityLabel": { - "$ref": "AAAAAAFU5r0gVKvvLzU=" + "$ref": "AAAAAAFWJ096A6nuBsE=" }, "headRoleNameLabel": { - "$ref": "AAAAAAFU5r0gVKvws/s=" + "$ref": "AAAAAAFWJ096A6nvOnM=" }, "headPropertyLabel": { - "$ref": "AAAAAAFU5r0gVKvx3EQ=" + "$ref": "AAAAAAFWJ096A6nwDHU=" }, "headMultiplicityLabel": { - "$ref": "AAAAAAFU5r0gVKvyg/I=" + "$ref": "AAAAAAFWJ096A6nxO6E=" }, "tailQualifiersCompartment": { - "$ref": "AAAAAAFU5r0gVKvzWhw=" + "$ref": "AAAAAAFWJ096A6nyQno=" }, "headQualifiersCompartment": { - "$ref": "AAAAAAFU5r0gVKv0DWY=" + "$ref": "AAAAAAFWJ096BKnzFto=" } }, { - "_type": "UMLClassView", - "_id": "AAAAAAFU5sVbDML4liU=", + "_type": "UMLAssociationView", + "_id": "AAAAAAFWJ1Emha9yV1o=", "_parent": { "$ref": "AAAAAAFU42fjDKtd44s=" }, "model": { - "$ref": "AAAAAAFU5sVbCsL2w9g=" + "$ref": "AAAAAAFWJ1EmhK9uMYs=" }, "subViews": [ { - "_type": "UMLNameCompartmentView", - "_id": "AAAAAAFU5sVbDML5M8k=", + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ1Emha9zRGs=", "_parent": { - "$ref": "AAAAAAFU5sVbDML4liU=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, "model": { - "$ref": "AAAAAAFU5sVbCsL2w9g=" + "$ref": "AAAAAAFWJ1EmhK9uMYs=" }, - "subViews": [ - { - "_type": "LabelView", - "_id": "AAAAAAFU5sVbDcL6iAY=", - "_parent": { - "$ref": "AAAAAAFU5sVbDML5M8k=" - }, - "visible": false, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 32, - "top": -144, - "width": 0, - "height": 13, - "autoResize": false, - "underline": false, - "horizontalAlignment": 2, - "verticalAlignment": 5 - }, - { - "_type": "LabelView", - "_id": "AAAAAAFU5sVbDcL7QrY=", - "_parent": { - "$ref": "AAAAAAFU5sVbDML5M8k=" - }, - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;1", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 917, - "top": 559, - "width": 167, - "height": 13, - "autoResize": false, - "underline": false, - "text": "Chart", - "horizontalAlignment": 2, - "verticalAlignment": 5 - }, - { - "_type": "LabelView", - "_id": "AAAAAAFU5sVbDcL85uM=", - "_parent": { - "$ref": "AAAAAAFU5sVbDML5M8k=" - }, - "visible": false, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 32, - "top": -144, - "width": 80.49462890625, - "height": 13, - "autoResize": false, - "underline": false, - "text": "(from Model)", - "horizontalAlignment": 2, - "verticalAlignment": 5 - }, - { - "_type": "LabelView", - "_id": "AAAAAAFU5sVbDcL9g5w=", - "_parent": { - "$ref": "AAAAAAFU5sVbDML5M8k=" - }, - "visible": false, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 32, - "top": -144, - "width": 0, - "height": 13, - "autoResize": false, - "underline": false, - "horizontalAlignment": 1, - "verticalAlignment": 5 - } - ], - "visible": true, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 442, + "top": 269, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ1Emhq90seY=", + "_parent": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "model": { + "$ref": "AAAAAAFWJ1EmhK9uMYs=" + }, + "visible": null, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 457, + "top": 269, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ1Emhq91RTk=", + "_parent": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "model": { + "$ref": "AAAAAAFWJ1EmhK9uMYs=" + }, + "visible": false, + "enabled": true, + "lineColor": "#000000", + "fillColor": "#ffffff", + "fontColor": "#000000", + "font": "Arial;13;0", + "showShadow": true, + "containerChangeable": false, + "containerExtending": false, + "left": 413, + "top": 270, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "edgePosition": 1, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ1Emhq92OzM=", + "_parent": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "model": { + "$ref": "AAAAAAFWJ1EmhK9vk+s=" + }, + "visible": false, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -8958,120 +10223,31 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 912, - "top": 552, - "width": 177, - "height": 25, + "left": 443, + "top": 268, + "width": 0, + "height": 13, "autoResize": false, - "stereotypeLabel": { - "$ref": "AAAAAAFU5sVbDcL6iAY=" - }, - "nameLabel": { - "$ref": "AAAAAAFU5sVbDcL7QrY=" - }, - "namespaceLabel": { - "$ref": "AAAAAAFU5sVbDcL85uM=" + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, - "propertyLabel": { - "$ref": "AAAAAAFU5sVbDcL9g5w=" - } + "edgePosition": 2, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 }, { - "_type": "UMLAttributeCompartmentView", - "_id": "AAAAAAFU5sVbDsL+Ynw=", + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ1Emhq93pqA=", "_parent": { - "$ref": "AAAAAAFU5sVbDML4liU=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, "model": { - "$ref": "AAAAAAFU5sVbCsL2w9g=" + "$ref": "AAAAAAFWJ1EmhK9vk+s=" }, - "subViews": [ - { - "_type": "UMLAttributeView", - "_id": "AAAAAAFU5sWyasR60tc=", - "_parent": { - "$ref": "AAAAAAFU5sVbDsL+Ynw=" - }, - "model": { - "$ref": "AAAAAAFU5sWyNsRrzAE=" - }, - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 917, - "top": 582, - "width": 167, - "height": 13, - "autoResize": false, - "underline": false, - "text": "+units: string[2]", - "horizontalAlignment": 0, - "verticalAlignment": 5 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAFU5sYCLcThmgY=", - "_parent": { - "$ref": "AAAAAAFU5sVbDsL+Ynw=" - }, - "model": { - "$ref": "AAAAAAFU5sYCAMTSBn8=" - }, - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 917, - "top": 597, - "width": 167, - "height": 13, - "autoResize": false, - "underline": false, - "text": "+labels: string[2]", - "horizontalAlignment": 0, - "verticalAlignment": 5 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAFU5sZrk8XrUqc=", - "_parent": { - "$ref": "AAAAAAFU5sVbDsL+Ynw=" - }, - "model": { - "$ref": "AAAAAAFU5sZrXsXczjI=" - }, - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": false, - "containerExtending": false, - "left": 917, - "top": 612, - "width": 167, - "height": 13, - "autoResize": false, - "underline": false, - "text": "+lineColor: color", - "horizontalAlignment": 0, - "verticalAlignment": 5 - } - ], - "visible": true, + "visible": false, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -9080,20 +10256,29 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 912, - "top": 577, - "width": 177, - "height": 53, - "autoResize": false + "left": 456, + "top": 271, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "edgePosition": 2, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 }, { - "_type": "UMLOperationCompartmentView", - "_id": "AAAAAAFU5sVbDsL/2a4=", + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ1Emhq94kyE=", "_parent": { - "$ref": "AAAAAAFU5sVbDML4liU=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, "model": { - "$ref": "AAAAAAFU5sVbCsL2w9g=" + "$ref": "AAAAAAFWJ1EmhK9vk+s=" }, "visible": true, "enabled": true, @@ -9104,20 +10289,30 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 912, - "top": 630, - "width": 177, - "height": 10, - "autoResize": false + "left": 412, + "top": 264, + "width": 7, + "height": 13, + "autoResize": false, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "edgePosition": 2, + "underline": false, + "text": "1", + "horizontalAlignment": 2, + "verticalAlignment": 5 }, { - "_type": "UMLReceptionCompartmentView", - "_id": "AAAAAAFU5sVbEMMA2GM=", + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ1Emhq95FPY=", "_parent": { - "$ref": "AAAAAAFU5sVbDML4liU=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, "model": { - "$ref": "AAAAAAFU5sVbCsL2w9g=" + "$ref": "AAAAAAFWJ1EmhK9wRts=" }, "visible": false, "enabled": true, @@ -9128,20 +10323,29 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 16, - "top": -72, - "width": 10, - "height": 10, - "autoResize": false + "left": 443, + "top": 271, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "edgePosition": 0, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 }, { - "_type": "UMLTemplateParameterCompartmentView", - "_id": "AAAAAAFU5sVbEMMBrzQ=", + "_type": "EdgeLabelView", + "_id": "AAAAAAFWJ1Emhq96VDw=", "_parent": { - "$ref": "AAAAAAFU5sVbDML4liU=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, "model": { - "$ref": "AAAAAAFU5sVbCsL2w9g=" + "$ref": "AAAAAAFWJ1EmhK9wRts=" }, "visible": false, "enabled": true, @@ -9152,74 +10356,31 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 16, - "top": -72, - "width": 10, - "height": 10, - "autoResize": false - } - ], - "visible": true, - "enabled": true, - "lineColor": "#000000", - "fillColor": "#ffffff", - "fontColor": "#000000", - "font": "Arial;13;0", - "showShadow": true, - "containerChangeable": true, - "containerExtending": false, - "left": 912, - "top": 552, - "width": 177, - "height": 225, - "autoResize": false, - "stereotypeDisplay": "label", - "showVisibility": true, - "showNamespace": false, - "showProperty": true, - "showType": true, - "nameCompartment": { - "$ref": "AAAAAAFU5sVbDML5M8k=" - }, - "wordWrap": false, - "suppressAttributes": false, - "suppressOperations": false, - "suppressReceptions": true, - "showMultiplicity": true, - "showOperationSignature": true, - "attributeCompartment": { - "$ref": "AAAAAAFU5sVbDsL+Ynw=" - }, - "operationCompartment": { - "$ref": "AAAAAAFU5sVbDsL/2a4=" - }, - "receptionCompartment": { - "$ref": "AAAAAAFU5sVbEMMA2GM=" - }, - "templateParameterCompartment": { - "$ref": "AAAAAAFU5sVbEMMBrzQ=" - } - }, - { - "_type": "UMLGeneralizationView", - "_id": "AAAAAAFU5sWWb8PkrWs=", - "_parent": { - "$ref": "AAAAAAFU42fjDKtd44s=" - }, - "model": { - "$ref": "AAAAAAFU5sWWbsPi7Fo=" - }, - "subViews": [ + "left": 456, + "top": 268, + "width": 0, + "height": 13, + "autoResize": false, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFWJ1Emha9yV1o=" + }, + "edgePosition": 0, + "underline": false, + "horizontalAlignment": 2, + "verticalAlignment": 5 + }, { "_type": "EdgeLabelView", - "_id": "AAAAAAFU5sWWb8Plkh8=", + "_id": "AAAAAAFWJ1Emhq97lJQ=", "_parent": { - "$ref": "AAAAAAFU5sWWb8PkrWs=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, "model": { - "$ref": "AAAAAAFU5sWWbsPi7Fo=" + "$ref": "AAAAAAFWJ1EmhK9wRts=" }, - "visible": false, + "visible": true, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -9228,31 +10389,32 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 855, - "top": 673, - "width": 0, + "left": 405, + "top": 275, + "width": 20, "height": 13, "autoResize": false, - "alpha": 1.5707963267948966, - "distance": 15, + "alpha": 0.5235987755982988, + "distance": 25, "hostEdge": { - "$ref": "AAAAAAFU5sWWb8PkrWs=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, - "edgePosition": 1, + "edgePosition": 0, "underline": false, + "text": "0..*", "horizontalAlignment": 2, "verticalAlignment": 5 }, { - "_type": "EdgeLabelView", - "_id": "AAAAAAFU5sWWb8PmJxk=", + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFWJ1Emhq98b5A=", "_parent": { - "$ref": "AAAAAAFU5sWWb8PkrWs=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, "model": { - "$ref": "AAAAAAFU5sWWbsPi7Fo=" + "$ref": "AAAAAAFWJ1EmhK9vk+s=" }, - "visible": null, + "visible": false, "enabled": true, "lineColor": "#000000", "fillColor": "#ffffff", @@ -9261,29 +10423,20 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 855, - "top": 688, - "width": 0, - "height": 13, - "autoResize": false, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAFU5sWWb8PkrWs=" - }, - "edgePosition": 1, - "underline": false, - "horizontalAlignment": 2, - "verticalAlignment": 5 + "left": 0, + "top": 0, + "width": 10, + "height": 10, + "autoResize": false }, { - "_type": "EdgeLabelView", - "_id": "AAAAAAFU5sWWb8Pn6Dc=", + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFWJ1Emhq99Xv0=", "_parent": { - "$ref": "AAAAAAFU5sWWb8PkrWs=" + "$ref": "AAAAAAFWJ1Emha9yV1o=" }, "model": { - "$ref": "AAAAAAFU5sWWbsPi7Fo=" + "$ref": "AAAAAAFWJ1EmhK9wRts=" }, "visible": false, "enabled": true, @@ -9294,20 +10447,11 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 856, - "top": 643, - "width": 0, - "height": 13, - "autoResize": false, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAFU5sWWb8PkrWs=" - }, - "edgePosition": 1, - "underline": false, - "horizontalAlignment": 2, - "verticalAlignment": 5 + "left": 0, + "top": 0, + "width": 10, + "height": 10, + "autoResize": false } ], "visible": true, @@ -9320,24 +10464,50 @@ "containerChangeable": false, "containerExtending": false, "head": { - "$ref": "AAAAAAFU5rzTh6srG0I=" + "$ref": "AAAAAAFU42p81qvwoZI=" }, "tail": { - "$ref": "AAAAAAFU5sVbDML4liU=" + "$ref": "AAAAAAFWJ08Z/qhHDF4=" }, "lineStyle": 1, - "points": "911:664;801:664", + "points": "428:249;428:303", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, "nameLabel": { - "$ref": "AAAAAAFU5sWWb8Plkh8=" + "$ref": "AAAAAAFWJ1Emha9zRGs=" }, "stereotypeLabel": { - "$ref": "AAAAAAFU5sWWb8PmJxk=" + "$ref": "AAAAAAFWJ1Emhq90seY=" }, "propertyLabel": { - "$ref": "AAAAAAFU5sWWb8Pn6Dc=" + "$ref": "AAAAAAFWJ1Emhq91RTk=" + }, + "showMultiplicity": true, + "showType": true, + "tailRoleNameLabel": { + "$ref": "AAAAAAFWJ1Emhq92OzM=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFWJ1Emhq93pqA=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFWJ1Emhq94kyE=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFWJ1Emhq95FPY=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFWJ1Emhq96VDw=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFWJ1Emhq97lJQ=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFWJ1Emhq98b5A=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFWJ1Emhq99Xv0=" } } ] @@ -9445,6 +10615,53 @@ }, "visibility": "public", "isDerived": false + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAFWJ096Aqnkjtk=", + "_parent": { + "$ref": "AAAAAAFU42gTNaurUj0=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFWJ096AqnleE8=", + "_parent": { + "$ref": "AAAAAAFWJ096Aqnkjtk=" + }, + "reference": { + "$ref": "AAAAAAFU42gTNaurUj0=" + }, + "visibility": "public", + "navigable": true, + "aggregation": "none", + "multiplicity": "1", + "isReadOnly": false, + "isOrdered": false, + "isUnique": false, + "isDerived": false, + "isID": false + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFWJ096AqnmpsM=", + "_parent": { + "$ref": "AAAAAAFWJ096Aqnkjtk=" + }, + "reference": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "visibility": "public", + "navigable": true, + "aggregation": "none", + "multiplicity": "0..*", + "isReadOnly": false, + "isOrdered": false, + "isUnique": false, + "isDerived": false, + "isID": false + }, + "visibility": "public", + "isDerived": false } ], "visibility": "public", @@ -9700,7 +10917,58 @@ "_parent": { "$ref": "AAAAAAFF+qBWK6M3Z8Y=" }, - "name": "Model", + "name": "SimulationModel", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFWJ09mq6lcARU=", + "_parent": { + "$ref": "AAAAAAFU5rTOTp6WJS4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFWJ09mq6ldcsE=", + "_parent": { + "$ref": "AAAAAAFWJ09mq6lcARU=" + }, + "name": "simulation", + "reference": { + "$ref": "AAAAAAFU5rTOTp6WJS4=" + }, + "visibility": "public", + "navigable": true, + "aggregation": "none", + "multiplicity": "0..*", + "isReadOnly": false, + "isOrdered": false, + "isUnique": false, + "isDerived": false, + "isID": false + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFWJ09mq6leAm4=", + "_parent": { + "$ref": "AAAAAAFWJ09mq6lcARU=" + }, + "name": "models", + "reference": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "visibility": "public", + "navigable": true, + "aggregation": "none", + "multiplicity": "1", + "isReadOnly": false, + "isOrdered": false, + "isUnique": false, + "isDerived": false, + "isID": false + }, + "visibility": "public", + "isDerived": false + } + ], "visibility": "public", "attributes": [ { @@ -10153,6 +11421,106 @@ "isFinalSpecialization": false, "isLeaf": false, "isActive": false + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFWJ08Z/ahFxW0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Simulation", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFWJ1EmhK9uMYs=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFWJ1EmhK9vk+s=", + "_parent": { + "$ref": "AAAAAAFWJ1EmhK9uMYs=" + }, + "reference": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "visibility": "public", + "navigable": true, + "aggregation": "none", + "multiplicity": "1", + "isReadOnly": false, + "isOrdered": false, + "isUnique": false, + "isDerived": false, + "isID": false + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFWJ1EmhK9wRts=", + "_parent": { + "$ref": "AAAAAAFWJ1EmhK9uMYs=" + }, + "reference": { + "$ref": "AAAAAAFU42p81qvu+N0=" + }, + "visibility": "public", + "navigable": true, + "aggregation": "none", + "multiplicity": "0..*", + "isReadOnly": false, + "isOrdered": false, + "isUnique": false, + "isDerived": false, + "isID": false + }, + "visibility": "public", + "isDerived": false + } + ], + "visibility": "public", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFWJ0/FYaquLSw=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "name": "name", + "visibility": "public", + "isStatic": false, + "isLeaf": false, + "type": "string", + "isReadOnly": false, + "isOrdered": false, + "isUnique": false, + "isDerived": false, + "aggregation": "none", + "isID": false + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFWJ0/oaatLEZ4=", + "_parent": { + "$ref": "AAAAAAFWJ08Z/ahFxW0=" + }, + "name": "running", + "visibility": "public", + "isStatic": false, + "isLeaf": false, + "type": "boolean", + "isReadOnly": false, + "isOrdered": false, + "isUnique": false, + "isDerived": false, + "aggregation": "none", + "isID": false + } + ], + "isAbstract": false, + "isFinalSpecialization": false, + "isLeaf": false, + "isActive": false } ], "visibility": "public" diff --git a/models/project.js b/models/project.js index 0917855..ae3a922 100644 --- a/models/project.js +++ b/models/project.js @@ -18,7 +18,8 @@ var Schema = mongoose.Schema; var projectSchema = new Schema({ name: { type: String, required: true }, owner: { type: Schema.Types.ObjectId, ref: 'User', required: true }, - visualizations: [{ type: Schema.Types.ObjectId, ref: 'Visualization' }] + visualizations: [{ type: Schema.Types.ObjectId, ref: 'Visualization', default: [] }], + simulation: [{ type: Schema.Types.ObjectId, ref: 'Simulation' }] }); projectSchema.pre('remove', function(callback) { diff --git a/models/simulation.js b/models/simulation.js new file mode 100644 index 0000000..7957cc2 --- /dev/null +++ b/models/simulation.js @@ -0,0 +1,45 @@ +/** + * File: simulation.js + * Author: Markus Grigull <mgrigull@eonerc.rwth-aachen.de> + * Date: 26.07.2016 + * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC + * This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential. + * Unauthorized copying of this file, via any medium is strictly prohibited. + **********************************************************************************/ + + // include + var mongoose = require('mongoose'); + + var SimulationModel = require('./simulationModel'); + + var Schema = mongoose.Schema; + + // simulation model + var simulationSchema = new Schema({ + name: { type: String, required: true }, + running: { type: Boolean, default: false }, + owner: { type: Schema.Types.ObjectId, ref: 'User' }, + models: [{ type: Schema.Types.ObjectId, ref: 'SimulationModel', default: [] }], + projects: [{ type: Schema.Types.ObjectId, ref: 'Project', default: [] }] + }); + + simulationSchema.pre('remove', function(callback) { + // delete all models belonging to this project + this.models.forEach(function(id) { + SimulationModel.findOne({ _id: id }, function(err, model) { + if (err) { + return console.log(err); + } + + model.remove(function(err) { + if (err) { + return console.log(err); + } + }); + }); + }); + + callback(); + }); + + module.exports = mongoose.model('Simulation', simulationSchema); diff --git a/models/simulationModel.js b/models/simulationModel.js index 36509bb..0f25d10 100644 --- a/models/simulationModel.js +++ b/models/simulationModel.js @@ -15,9 +15,10 @@ var Schema = mongoose.Schema; // simulation model model var simulationModelSchema = new Schema({ name: { type: String, required: true }, - running: { type: Boolean, default: false }, - projects: [{ type: Schema.Types.ObjectId, ref: 'Project' }], - owner: { type: Schema.Types.ObjectId, ref: 'User' } + simulator: { type: Number, required: true }, + length: { type: Number, default: 1 }, + mapping: [{ type: String, default: [] }], + simulation: { type: Schema.Types.ObjectId, ref: 'Simulation' } }); module.exports = mongoose.model('SimulationModel', simulationModelSchema); diff --git a/models/user.js b/models/user.js index f317308..153a4a0 100644 --- a/models/user.js +++ b/models/user.js @@ -12,7 +12,7 @@ var mongoose = require('mongoose'); var bcrypt = require('bcrypt-nodejs'); var Project = require('./project'); -var SimulationModel = require('./simulationModel'); +var Simulation = require('./simulation'); var Schema = mongoose.Schema; @@ -23,7 +23,7 @@ var userSchema = new Schema({ adminLevel: { type: Number, default: 0 }, projects: [{ type: Schema.Types.ObjectId, ref: 'Project', default: [] }], mail: { type: String, default: "" }, - simulationModel: [{ type: Schema.Types.ObjectId, ref: 'Model', default: [] }] + simulations: [{ type: Schema.Types.ObjectId, ref: 'Simulation', default: [] }] }); userSchema.methods.verifyPassword = function(password, callback) { @@ -83,14 +83,14 @@ userSchema.pre('remove', function(callback) { }); }); - // delete all models belonging to this user - this.simulationModels.forEach(function(id) { - SimulationModel.findOne({ _id: id }, function(err, model) { + // delete all simulations belonging to this user + this.simulations.forEach(function(id) { + Simulation.findOne({ _id: id }, function(err, simulation) { if (err) { return console.log(err); } - model.remove(function(err) { + simulation.remove(function(err) { if (err) { return console.log(err); } diff --git a/routes/simulationModels.js b/routes/simulationModels.js index 16f2540..d55f916 100644 --- a/routes/simulationModels.js +++ b/routes/simulationModels.js @@ -14,7 +14,7 @@ var auth = require('../auth'); // models var SimulationModel = require('../models/simulationModel'); -var User = require('../models/user'); +var Simulation = require('../models/simulation'); // create router var router = express.Router(); @@ -46,15 +46,15 @@ router.post('/simulationModels', function(req, res) { res.send({ simulationModel: model }); }); - // add model to user - User.findOne({ _id: model.owner }, function(err, user) { + // add model to simulation + Simulation.findOne({ _id: model.simulation }, function(err, simulation) { if (err) { return console.log(err); } - user.simulationModels.push(model._id); + simulation.models.push(model._id); - user.save(function(err) { + simulation.save(function(err) { if (err) { console.log(err); } @@ -101,20 +101,20 @@ router.delete('/simulationModels/:id', function(req, res) { return res.send(err); } - // remove from owner's list - User.findOne({ _id: model.owner }, function(err, user) { + // remove from simulation's list + Simulation.findOne({ _id: model.simulation }, function(err, simulation) { if (err) { return console.log(err); } - for (var i = 0; user.simulationModels.length; i++) { - var id = String(user.simulationModels[i]); + for (var i = 0; simulation.models.length; i++) { + var id = String(simulation.models[i]); if (id == model._id) { - user.simulationModels.splice(i, 1); + simulation.models.splice(i, 1); } } - user.save(function(err) { + simulation.save(function(err) { if (err) { return console.log(err); } diff --git a/routes/simulations.js b/routes/simulations.js new file mode 100644 index 0000000..911cfa4 --- /dev/null +++ b/routes/simulations.js @@ -0,0 +1,134 @@ +/** + * File: simulations.js + * Author: Markus Grigull <mgrigull@eonerc.rwth-aachen.de> + * Date: 26.07.2016 + * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC + * This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential. + * Unauthorized copying of this file, via any medium is strictly prohibited. + **********************************************************************************/ + +// include +var express = require('express'); + +var auth = require('../auth'); + +// models +var Simulation = require('../models/simulation'); +var User = require('../models/user'); + +// create router +var router = express.Router(); + +// all model routes need authentication +router.use('/simulations', auth.validateToken); + +// routes +router.get('/simulations', function(req, res) { + // get all simulations + Simulation.find(function(err, simulations) { + if (err) { + return res.send(err); + } + + res.send({ simulations: simulations }); + }); +}); + +router.post('/simulations', function(req, res) { + // create new simulation + var simulation = new Simulation(req.body.simulation); + + simulation.save(function(err) { + if (err) { + return res.send(err); + } + + res.send({ simulation: simulation }); + }); + + // add simulation to user + User.findOne({ _id: simulation.owner }, function(err, user) { + if (err) { + return console.log(err); + } + + user.simulations.push(simulation._id); + + user.save(function(err) { + if (err) { + console.log(err); + } + }); + }); +}); + +router.put('/simulations/:id', function(req, res) { + // get simulation + Simulation.findOne({ _id: req.params.id }, function(err, simulation) { + if (err) { + return res.send(err); + } + + // update all properties + for (property in req.body.simulation) { + simulation[property] = req.body.simulation[property]; + } + + // save the changes + simulation.save(function(err) { + if (err) { + return res.send(err); + } + + res.send({ simulation: simulation }); + }); + }); +}); + +router.get('/simulations/:id', function(req, res) { + Simulation.findOne({ _id: req.params.id }, function(err, simulation) { + if (err) { + return res.send(err); + } + + res.send({ simulation: simulation }); + }); +}); + +router.delete('/simulations/:id', function(req, res) { + Simulation.findOne({ _id: req.params.id }, function(err, simulation) { + if (err) { + return res.send(err); + } + + // remove from owner's list + User.findOne({ _id: simulation.owner }, function(err, user) { + if (err) { + return console.log(err); + } + + for (var i = 0; user.simulations.length; i++) { + var id = String(user.simulations[i]); + if (id == simulation._id) { + user.simulations.splice(i, 1); + } + } + + user.save(function(err) { + if (err) { + return console.log(err); + } + }); + }); + + simulation.remove(function(err) { + if (err) { + return res.send(err); + } + + res.send({}); + }); + }); +}); + +module.exports = router; diff --git a/server.js b/server.js index 6583c23..b2a2998 100644 --- a/server.js +++ b/server.js @@ -21,6 +21,7 @@ var users = require('./routes/users'); var projects = require('./routes/projects'); var visualizations = require('./routes/visualizations'); var plots = require('./routes/plots'); +var simulations = require('./routes/simulations'); var simulationModels = require('./routes/simulationModels'); var User = require('./models/user'); @@ -42,6 +43,7 @@ app.use('/api/v1', users); app.use('/api/v1', projects); app.use('/api/v1', visualizations); app.use('/api/v1', plots); +app.use('/api/v1', simulations); app.use('/api/v1', simulationModels); // catch 404 and forward to error handler -- GitLab