{ "csm": { "nodes": { "0": { "typename": { "type": "string", "value": "CompositeStateIcon" }, "position": { "type": "list", "value": [ 15.893748170267678, 53.06119999999987 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 4.690053928466156, 2.3335327953318883 ] }, "mapper": { "type": "code", "value": "" }, "parser": { "type": "code", "value": "" }, "$contents": { "type": "map", "value": { "nodes": { "10": { "width": { "type": "double", "value": 400 }, "height": { "type": "double", "value": 400 }, "cornerRadius": { "type": "double", "value": 20 }, "style": { "type": "map", "value": { "stroke": "green", "fill": "#ffffff", "fill-opacity": 0.01, "stroke-width": 2 } }, "mapper": { "type": "code", "value": "var style = { \"stroke\": \"blue\",\n\t\t \"fill\": \"#ffffff\",\n\t\t \"fill-opacity\": 0.01,\n \t\t \"stroke-width\": 2};\n\nif( getAttr('isStart') )\n\tstyle['stroke'] = 'green';\n\n({'style' : style})" }, "parser": { "type": "code", "value": "" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle", "position": { "type": "list", "value": [ 2, 0 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] } }, "11": { "textContent": { "type": "string", "value": "main" }, "style": { "type": "map", "value": { "stroke": "#000000", "stroke-dasharray": "", "fill": "#ffffff", "fill-opacity": 0.75, "font-size": "13px", "stroke-width": 1 } }, "mapper": { "type": "code", "value": "({'textContent':getAttr('name')})" }, "parser": { "type": "code", "value": "({'name':getAttr('textContent')})" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text", "position": { "type": "list", "value": [ 11, 404 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] } }, "12": { "distance": { "type": "double", "value": 10 }, "alignment": { "type": "ENUM(\"right\",\"left\",\"center\")", "value": "\"center\"" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Below", "position": { "type": "list", "value": [ 77.06940657361247, 379.3658354276615 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "link-style": { "type": "map", "value": { "stroke": "#00ff00", "stroke-dasharray": "", "stroke-opacity": 1, "arrow-start": "none", "arrow-end": "classic-wide-long" } } } }, "edges": [ { "src": "11", "dest": "12" }, { "src": "12", "dest": "10" } ] } }, "$asuri": { "type": "string", "value": "/Formalisms/SCCD/SCCD/CompositeState/0.instance" }, "$type": "/Formalisms/SCCD/SCCD.defaultIcons/CompositeStateIcon" }, "92": { "typename": { "type": "string", "value": "ClassIcon" }, "position": { "type": "list", "value": [ 293, 1134 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "mapper": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */" }, "parser": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */" }, "$contents": { "type": "map", "value": { "nodes": { "75": { "textContent": { "type": "string", "value": "" }, "style": { "type": "map", "value": { "font-size": "14px", "font-style": "normal", "font-weight": "bold", "line-height": "100%", "letter-spacing": "0px", "word-spacing": "0px", "fill": "#000000", "fill-opacity": "1", "stroke": "none" } }, "mapper": { "type": "code", "value": "var filenames = getAttr('attributes').map(\n function(attr)\n {\n var s = '+ '+attr['name'] + ' : ' + attr['type'] + ' = ' + attr['default'];\n return s;\n });\n\n({'textContent': filenames.join('\\n')})" }, "parser": { "type": "code", "value": "" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text", "position": { "type": "list", "value": [ 10, 41 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] } }, "77": { "textContent": { "type": "string", "value": "Train" }, "style": { "type": "map", "value": { "font-size": "18px", "font-style": "normal", "font-weight": "bold", "line-height": "100%", "letter-spacing": "0px", "word-spacing": "0px", "fill": "#000000", "fill-opacity": "1", "stroke": "none" } }, "mapper": { "type": "code", "value": "var style = \n{\n \"font-size\": \"18px\",\n \"font-style\": \"normal\",\n \"font-weight\": \"bold\",\n \"line-height\": \"100%\",\n \"letter-spacing\": \"0px\",\n \"word-spacing\": \"0px\",\n \"fill\": \"#000000\",\n \"fill-opacity\": \"1\",\n \"stroke\": \"none\",\n \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n};\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n" }, "parser": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'name': getAttr('textContent')})" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text", "position": { "type": "list", "value": [ 8, 8 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] } }, "80": { "segments": { "type": "string", "value": "m0,0l197,0" }, "style": { "type": "map", "value": { "stroke": "#000000", "stroke-dasharray": "", "fill": "#ffffff", "fill-opacity": 0.75, "font-size": "20px", "stroke-width": 2, "arrow-start": "none", "arrow-end": "none" } }, "mapper": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */" }, "parser": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path", "position": { "type": "list", "value": [ 6, 36 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] } }, "81": { "width": { "type": "double", "value": 200 }, "height": { "type": "double", "value": 125 }, "cornerRadius": { "type": "double", "value": 0 }, "style": { "type": "map", "value": { "stroke": "#000000", "stroke-dasharray": "", "fill": "#ffffff", "fill-opacity": 0.75, "stroke-width": 2 } }, "mapper": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */" }, "parser": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle", "position": { "type": "list", "value": [ 4, 3 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] } }, "83": { "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain", "position": { "type": "list", "value": [ 12.5, 27 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "link-style": { "type": "map", "value": { "stroke": "#00ffff", "stroke-dasharray": "", "stroke-opacity": 0.1, "stroke-width": 1 } } }, "84": { "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain", "position": { "type": "list", "value": [ 53.75, 20 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "link-style": { "type": "map", "value": { "stroke": "#00ffff", "stroke-dasharray": "", "stroke-opacity": 0.1, "stroke-width": 1 } } }, "85": { "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain", "position": { "type": "list", "value": [ 68.5, 36.5 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "link-style": { "type": "map", "value": { "stroke": "#00ffff", "stroke-dasharray": "", "stroke-opacity": 0.1, "stroke-width": 1 } } } }, "edges": [ { "src": "81", "dest": "83" }, { "src": "83", "dest": "75" }, { "src": "81", "dest": "84" }, { "src": "84", "dest": "80" }, { "src": "81", "dest": "85" }, { "src": "85", "dest": "77" } ] } }, "$asuri": { "type": "string", "value": "/Formalisms/SCCD/SCCD/Class/92.instance" }, "$type": "/Formalisms/SCCD/SCCD.defaultIcons/ClassIcon" }, "93": { "link-style": { "type": "map", "value": { "stroke": "#000000", "stroke-dasharray": "-", "stroke-opacity": 1, "stroke-width": 1 } }, "arrowHead": { "type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)", "value": "custom" }, "arrowTail": { "type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)", "value": "arrow-black" }, "typename": { "type": "string", "value": "behaviourLink" }, "position": { "type": "list", "value": [ 424.52800829232535, 1058.3752004605901 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "mapper": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */" }, "parser": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */" }, "$contents": { "type": "map", "value": { "nodes": { "92": { "textContent": { "type": "string", "value": "<>" }, "style": { "type": "map", "value": { "stroke": "#000000", "stroke-dasharray": "", "fill": "#ffffff", "fill-opacity": 0.75, "font-size": "13px", "stroke-width": 1, "arrow-start": "none", "arrow-end": "none" } }, "mapper": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */" }, "parser": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text", "position": { "type": "list", "value": [ "0;-41.07352483201754,0%", "0;25.35873378801398,0%" ] }, "orientation": { "type": "double", "value": "0;-52.48103858015613" }, "scale": { "type": "list", "value": [ 1, 1 ] }, "$linkDecoratorInfo": { "type": "map", "value": { "xratio": 0.34355828220858897, "yoffset": -16.5 } } }, "281": { "segments": { "type": "string", "value": "m0,0 l10,4 l-10,4" }, "style": { "type": "map", "value": { "stroke": "#000000", "fill": "#000000", "fill-opacity": 0, "stroke-width": 1, "opacity": 1 } }, "mapper": { "type": "code", "value": "" }, "parser": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path", "position": { "type": "list", "value": [ "0;75.47545430764512,73.42833291069904%", "0;-76.06499203592136,-67.88431281198591%" ] }, "orientation": { "type": "double", "value": "0;-42.75330700490329" }, "scale": { "type": "list", "value": [ 1, 1 ] }, "$linkDecoratorInfo": { "type": "map", "value": { "xratio": 1, "yoffset": -4 } } } }, "edges": [] } }, "$asuri": { "type": "string", "value": "/Formalisms/SCCD/SCCD/behaviour/93.instance" }, "$segments": { "type": "map>", "value": { "/Formalisms/SCCD/SCCD.defaultIcons/ClassIcon/92.instance--/Formalisms/SCCD/SCCD.defaultIcons/behaviourLink/93.instance": "M348,1157L424,1058.022710800171", "/Formalisms/SCCD/SCCD.defaultIcons/behaviourLink/93.instance--/Formalisms/SCCD/SCCD.defaultIcons/CompositeStateIcon/0.instance": "M424,1058.022710800171L502.71883511244994,985.2473417410966" } }, "$type": "/Formalisms/SCCD/SCCD.defaultIcons/behaviourLink" }, "94": { "typename": { "type": "string", "value": "BasicStateIcon" }, "position": { "type": "list", "value": [ 939, 482 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "mapper": { "type": "code", "value": "" }, "parser": { "type": "code", "value": "" }, "$contents": { "type": "map", "value": { "nodes": { "4": { "r": { "type": "double", "value": 20 }, "style": { "type": "map", "value": { "stroke": "#20B2AA", "fill": "#E6E6FA", "fill-opacity": 0.75, "stroke-width": 4 } }, "mapper": { "type": "code", "value": "var style = { \"stroke\": \"#20B2AA\",\n\t\t \"fill\": \"#E6E6FA\",\n\t\t \"fill-opacity\": 0.75,\n \t\t \"stroke-width\": 2};\n\nif( getAttr('isStart') )\n\tstyle['stroke-width'] = 4;\n\nif( getAttr('isCurrent') )\n\tstyle['fill'] = 'green';\n\n({'style' : style})" }, "parser": { "type": "code", "value": "" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Circle", "position": { "type": "list", "value": [ 3, 3 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] } }, "5": { "textContent": { "type": "string", "value": "initial" }, "style": { "type": "map", "value": { "stroke": "#000000", "stroke-dasharray": "", "fill": "#ffffff", "fill-opacity": 0.75, "font-size": "13px", "stroke-width": 1 } }, "mapper": { "type": "code", "value": "({'textContent':getAttr('name')})" }, "parser": { "type": "code", "value": "({'name':getAttr('textContent')})" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text", "position": { "type": "list", "value": [ 2, 44 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] } }, "6": { "distance": { "type": "double", "value": 10 }, "alignment": { "type": "ENUM(\"right\",\"left\",\"center\")", "value": "\"center\"" }, "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Below", "position": { "type": "list", "value": [ 32.99899850809555, 45.99899850809561 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "link-style": { "type": "map", "value": { "stroke": "#00ff00", "stroke-dasharray": "", "stroke-opacity": 1, "arrow-start": "none", "arrow-end": "classic-wide-long" } } } }, "edges": [ { "src": "5", "dest": "6" }, { "src": "6", "dest": "4" } ] } }, "$asuri": { "type": "string", "value": "/Formalisms/SCCD/SCCD/BasicState/94.instance" }, "$type": "/Formalisms/SCCD/SCCD.defaultIcons/BasicStateIcon" }, "95": { "link-style": { "type": "map", "value": { "stroke": "#ffff00", "stroke-dasharray": "", "stroke-opacity": 0.75, "stroke-width": 1 } }, "arrowHead": { "type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)", "value": "custom" }, "arrowTail": { "type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)", "value": "arrow-black" }, "typename": { "type": "string", "value": "containLink" }, "position": { "type": "list", "value": [ 492.52180185370116, 281.59656806463266 ] }, "orientation": { "type": "double", "value": 0 }, "scale": { "type": "list", "value": [ 1, 1 ] }, "mapper": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */" }, "parser": { "type": "code", "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */" }, "$contents": { "type": "map", "value": { "nodes": {}, "edges": [] } }, "$asuri": { "type": "string", "value": "/Formalisms/SCCD/SCCD/contain/95.instance" }, "$segments": { "type": "map>", "value": { "/Formalisms/SCCD/SCCD.defaultIcons/CompositeStateIcon/0.instance--/Formalisms/SCCD/SCCD.defaultIcons/containLink/95.instance": "M25.27385602719999,53.06119999999987L492.52180185370116,281.59656806463266", "/Formalisms/SCCD/SCCD.defaultIcons/containLink/95.instance--/Formalisms/SCCD/SCCD.defaultIcons/BasicStateIcon/94.instance": "M492.4541702174697,281.5634887947996L959.4993511522072,509.99968264243756" } }, "$type": "/Formalisms/SCCD/SCCD.defaultIcons/containLink" } }, "edges": [], "metamodels": [ "/Formalisms/SCCD/SCCD.defaultIcons" ] }, "asm": { "nodes": { "0": { "name": { "type": "string", "value": "main" }, "entryAction": { "type": "code", "value": "" }, "exitAction": { "type": "code", "value": "" }, "isStart": { "type": "boolean", "value": true }, "isCurrent": { "type": "boolean", "value": false }, "option": { "type": "ENUM(ITF, OTF, RTO)", "value": "ITF" }, "raiseEntry": { "type": "list]>>", "value": [] }, "raiseExit": { "type": "list]>>", "value": [] }, "$type": "/Formalisms/SCCD/SCCD/CompositeState" }, "92": { "name": { "type": "string", "value": "Train" }, "attributes": { "type": "list<$ATTRIBUTE>", "value": [] }, "cardinalities": { "type": "list<$CARDINALITY>", "value": [] }, "abstract": { "type": "boolean", "value": false }, "methods": { "type": "list<$METHOD>", "value": [ { "name": "Train", "args": [ { "name": "root", "type": "" } ], "returntype": "", "body": "self.root, self.acceleration, self.velocity = root, 0.0, 0.0/*newline*/self.root.trainIs(self)" }, { "name": "updateState", "args": [ { "name": "", "type": "" } ], "returntype": "", "body": "self.root.updateState()" }, { "name": "openDoors", "args": [ { "name": "", "type": "" } ], "returntype": "", "body": "self.root.openDoors()" }, { "name": "closeDoors", "args": [ { "name": "", "type": "" } ], "returntype": "", "body": "self.root.closeDoors()" }, { "name": "notify", "args": [ { "name": "message", "type": "" }, { "name": "colour", "type": "" } ], "returntype": "", "body": "self.root.notify(message, colour)" } ] }, "external": { "type": "boolean", "value": false }, "$type": "/Formalisms/SCCD/SCCD/Class" }, "93": { "$type": "/Formalisms/SCCD/SCCD/behaviour" }, "94": { "name": { "type": "string", "value": "initial" }, "entryAction": { "type": "code", "value": "" }, "exitAction": { "type": "code", "value": "" }, "isStart": { "type": "boolean", "value": true }, "isCurrent": { "type": "boolean", "value": false }, "option": { "type": "ENUM(ITF, OTF, RTO)", "value": "ITF" }, "raiseEntry": { "type": "list]>>", "value": [] }, "raiseExit": { "type": "list]>>", "value": [] }, "$type": "/Formalisms/SCCD/SCCD/BasicState" }, "95": { "$type": "/Formalisms/SCCD/SCCD/contain" } }, "edges": [ { "src": "92", "dest": "93" }, { "src": "93", "dest": "0" }, { "src": "0", "dest": "95" }, { "src": "95", "dest": "94" } ], "metamodels": [ "/Formalisms/SCCD/SCCD" ] } }