train.model 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155
  1. {
  2. "csm": {
  3. "nodes": {
  4. "0": {
  5. "typename": {
  6. "type": "string",
  7. "value": "CompositeStateIcon"
  8. },
  9. "position": {
  10. "type": "list<double>",
  11. "value": [
  12. 15.893748170267678,
  13. 53.06119999999987
  14. ]
  15. },
  16. "orientation": {
  17. "type": "double",
  18. "value": 0
  19. },
  20. "scale": {
  21. "type": "list<double>",
  22. "value": [
  23. 4.690053928466156,
  24. 2.3335327953318883
  25. ]
  26. },
  27. "mapper": {
  28. "type": "code",
  29. "value": ""
  30. },
  31. "parser": {
  32. "type": "code",
  33. "value": ""
  34. },
  35. "$contents": {
  36. "type": "map<string,*>",
  37. "value": {
  38. "nodes": {
  39. "10": {
  40. "width": {
  41. "type": "double",
  42. "value": 400
  43. },
  44. "height": {
  45. "type": "double",
  46. "value": 400
  47. },
  48. "cornerRadius": {
  49. "type": "double",
  50. "value": 20
  51. },
  52. "style": {
  53. "type": "map<string,string>",
  54. "value": {
  55. "stroke": "green",
  56. "fill": "#ffffff",
  57. "fill-opacity": 0.01,
  58. "stroke-width": 2
  59. }
  60. },
  61. "mapper": {
  62. "type": "code",
  63. "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})"
  64. },
  65. "parser": {
  66. "type": "code",
  67. "value": ""
  68. },
  69. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
  70. "position": {
  71. "type": "list<double>",
  72. "value": [
  73. 2,
  74. 0
  75. ]
  76. },
  77. "orientation": {
  78. "type": "double",
  79. "value": 0
  80. },
  81. "scale": {
  82. "type": "list<double>",
  83. "value": [
  84. 1,
  85. 1
  86. ]
  87. }
  88. },
  89. "11": {
  90. "textContent": {
  91. "type": "string",
  92. "value": "main"
  93. },
  94. "style": {
  95. "type": "map<string,string>",
  96. "value": {
  97. "stroke": "#000000",
  98. "stroke-dasharray": "",
  99. "fill": "#ffffff",
  100. "fill-opacity": 0.75,
  101. "font-size": "13px",
  102. "stroke-width": 1
  103. }
  104. },
  105. "mapper": {
  106. "type": "code",
  107. "value": "({'textContent':getAttr('name')})"
  108. },
  109. "parser": {
  110. "type": "code",
  111. "value": "({'name':getAttr('textContent')})"
  112. },
  113. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
  114. "position": {
  115. "type": "list<double>",
  116. "value": [
  117. 11,
  118. 404
  119. ]
  120. },
  121. "orientation": {
  122. "type": "double",
  123. "value": 0
  124. },
  125. "scale": {
  126. "type": "list<double>",
  127. "value": [
  128. 1,
  129. 1
  130. ]
  131. }
  132. },
  133. "12": {
  134. "distance": {
  135. "type": "double",
  136. "value": 10
  137. },
  138. "alignment": {
  139. "type": "ENUM(\"right\",\"left\",\"center\")",
  140. "value": "\"center\""
  141. },
  142. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Below",
  143. "position": {
  144. "type": "list<double>",
  145. "value": [
  146. 77.06940657361247,
  147. 379.3658354276615
  148. ]
  149. },
  150. "orientation": {
  151. "type": "double",
  152. "value": 0
  153. },
  154. "scale": {
  155. "type": "list<double>",
  156. "value": [
  157. 1,
  158. 1
  159. ]
  160. },
  161. "link-style": {
  162. "type": "map<string,string>",
  163. "value": {
  164. "stroke": "#00ff00",
  165. "stroke-dasharray": "",
  166. "stroke-opacity": 1,
  167. "arrow-start": "none",
  168. "arrow-end": "classic-wide-long"
  169. }
  170. }
  171. }
  172. },
  173. "edges": [
  174. {
  175. "src": "11",
  176. "dest": "12"
  177. },
  178. {
  179. "src": "12",
  180. "dest": "10"
  181. }
  182. ]
  183. }
  184. },
  185. "$asuri": {
  186. "type": "string",
  187. "value": "/Formalisms/SCCD/SCCD/CompositeState/0.instance"
  188. },
  189. "$type": "/Formalisms/SCCD/SCCD.defaultIcons/CompositeStateIcon"
  190. },
  191. "92": {
  192. "typename": {
  193. "type": "string",
  194. "value": "ClassIcon"
  195. },
  196. "position": {
  197. "type": "list<double>",
  198. "value": [
  199. 293,
  200. 1134
  201. ]
  202. },
  203. "orientation": {
  204. "type": "double",
  205. "value": 0
  206. },
  207. "scale": {
  208. "type": "list<double>",
  209. "value": [
  210. 1,
  211. 1
  212. ]
  213. },
  214. "mapper": {
  215. "type": "code",
  216. "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
  217. },
  218. "parser": {
  219. "type": "code",
  220. "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
  221. },
  222. "$contents": {
  223. "type": "map<string,*>",
  224. "value": {
  225. "nodes": {
  226. "75": {
  227. "textContent": {
  228. "type": "string",
  229. "value": ""
  230. },
  231. "style": {
  232. "type": "map<string,string>",
  233. "value": {
  234. "font-size": "14px",
  235. "font-style": "normal",
  236. "font-weight": "bold",
  237. "line-height": "100%",
  238. "letter-spacing": "0px",
  239. "word-spacing": "0px",
  240. "fill": "#000000",
  241. "fill-opacity": "1",
  242. "stroke": "none"
  243. }
  244. },
  245. "mapper": {
  246. "type": "code",
  247. "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')})"
  248. },
  249. "parser": {
  250. "type": "code",
  251. "value": ""
  252. },
  253. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
  254. "position": {
  255. "type": "list<double>",
  256. "value": [
  257. 10,
  258. 41
  259. ]
  260. },
  261. "orientation": {
  262. "type": "double",
  263. "value": 0
  264. },
  265. "scale": {
  266. "type": "list<double>",
  267. "value": [
  268. 1,
  269. 1
  270. ]
  271. }
  272. },
  273. "77": {
  274. "textContent": {
  275. "type": "string",
  276. "value": "Train"
  277. },
  278. "style": {
  279. "type": "map<string,string>",
  280. "value": {
  281. "font-size": "18px",
  282. "font-style": "normal",
  283. "font-weight": "bold",
  284. "line-height": "100%",
  285. "letter-spacing": "0px",
  286. "word-spacing": "0px",
  287. "fill": "#000000",
  288. "fill-opacity": "1",
  289. "stroke": "none"
  290. }
  291. },
  292. "mapper": {
  293. "type": "code",
  294. "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"
  295. },
  296. "parser": {
  297. "type": "code",
  298. "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'name': getAttr('textContent')})"
  299. },
  300. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
  301. "position": {
  302. "type": "list<double>",
  303. "value": [
  304. 8,
  305. 8
  306. ]
  307. },
  308. "orientation": {
  309. "type": "double",
  310. "value": 0
  311. },
  312. "scale": {
  313. "type": "list<double>",
  314. "value": [
  315. 1,
  316. 1
  317. ]
  318. }
  319. },
  320. "80": {
  321. "segments": {
  322. "type": "string",
  323. "value": "m0,0l197,0"
  324. },
  325. "style": {
  326. "type": "map<string,string>",
  327. "value": {
  328. "stroke": "#000000",
  329. "stroke-dasharray": "",
  330. "fill": "#ffffff",
  331. "fill-opacity": 0.75,
  332. "font-size": "20px",
  333. "stroke-width": 2,
  334. "arrow-start": "none",
  335. "arrow-end": "none"
  336. }
  337. },
  338. "mapper": {
  339. "type": "code",
  340. "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
  341. },
  342. "parser": {
  343. "type": "code",
  344. "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
  345. },
  346. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
  347. "position": {
  348. "type": "list<double>",
  349. "value": [
  350. 6,
  351. 36
  352. ]
  353. },
  354. "orientation": {
  355. "type": "double",
  356. "value": 0
  357. },
  358. "scale": {
  359. "type": "list<double>",
  360. "value": [
  361. 1,
  362. 1
  363. ]
  364. }
  365. },
  366. "81": {
  367. "width": {
  368. "type": "double",
  369. "value": 200
  370. },
  371. "height": {
  372. "type": "double",
  373. "value": 125
  374. },
  375. "cornerRadius": {
  376. "type": "double",
  377. "value": 0
  378. },
  379. "style": {
  380. "type": "map<string,string>",
  381. "value": {
  382. "stroke": "#000000",
  383. "stroke-dasharray": "",
  384. "fill": "#ffffff",
  385. "fill-opacity": 0.75,
  386. "stroke-width": 2
  387. }
  388. },
  389. "mapper": {
  390. "type": "code",
  391. "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
  392. },
  393. "parser": {
  394. "type": "code",
  395. "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
  396. },
  397. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
  398. "position": {
  399. "type": "list<double>",
  400. "value": [
  401. 4,
  402. 3
  403. ]
  404. },
  405. "orientation": {
  406. "type": "double",
  407. "value": 0
  408. },
  409. "scale": {
  410. "type": "list<double>",
  411. "value": [
  412. 1,
  413. 1
  414. ]
  415. }
  416. },
  417. "83": {
  418. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
  419. "position": {
  420. "type": "list<double>",
  421. "value": [
  422. 12.5,
  423. 27
  424. ]
  425. },
  426. "orientation": {
  427. "type": "double",
  428. "value": 0
  429. },
  430. "scale": {
  431. "type": "list<double>",
  432. "value": [
  433. 1,
  434. 1
  435. ]
  436. },
  437. "link-style": {
  438. "type": "map<string,string>",
  439. "value": {
  440. "stroke": "#00ffff",
  441. "stroke-dasharray": "",
  442. "stroke-opacity": 0.1,
  443. "stroke-width": 1
  444. }
  445. }
  446. },
  447. "84": {
  448. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
  449. "position": {
  450. "type": "list<double>",
  451. "value": [
  452. 53.75,
  453. 20
  454. ]
  455. },
  456. "orientation": {
  457. "type": "double",
  458. "value": 0
  459. },
  460. "scale": {
  461. "type": "list<double>",
  462. "value": [
  463. 1,
  464. 1
  465. ]
  466. },
  467. "link-style": {
  468. "type": "map<string,string>",
  469. "value": {
  470. "stroke": "#00ffff",
  471. "stroke-dasharray": "",
  472. "stroke-opacity": 0.1,
  473. "stroke-width": 1
  474. }
  475. }
  476. },
  477. "85": {
  478. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
  479. "position": {
  480. "type": "list<double>",
  481. "value": [
  482. 68.5,
  483. 36.5
  484. ]
  485. },
  486. "orientation": {
  487. "type": "double",
  488. "value": 0
  489. },
  490. "scale": {
  491. "type": "list<double>",
  492. "value": [
  493. 1,
  494. 1
  495. ]
  496. },
  497. "link-style": {
  498. "type": "map<string,string>",
  499. "value": {
  500. "stroke": "#00ffff",
  501. "stroke-dasharray": "",
  502. "stroke-opacity": 0.1,
  503. "stroke-width": 1
  504. }
  505. }
  506. }
  507. },
  508. "edges": [
  509. {
  510. "src": "81",
  511. "dest": "83"
  512. },
  513. {
  514. "src": "83",
  515. "dest": "75"
  516. },
  517. {
  518. "src": "81",
  519. "dest": "84"
  520. },
  521. {
  522. "src": "84",
  523. "dest": "80"
  524. },
  525. {
  526. "src": "81",
  527. "dest": "85"
  528. },
  529. {
  530. "src": "85",
  531. "dest": "77"
  532. }
  533. ]
  534. }
  535. },
  536. "$asuri": {
  537. "type": "string",
  538. "value": "/Formalisms/SCCD/SCCD/Class/92.instance"
  539. },
  540. "$type": "/Formalisms/SCCD/SCCD.defaultIcons/ClassIcon"
  541. },
  542. "93": {
  543. "link-style": {
  544. "type": "map<string,string>",
  545. "value": {
  546. "stroke": "#000000",
  547. "stroke-dasharray": "-",
  548. "stroke-opacity": 1,
  549. "stroke-width": 1
  550. }
  551. },
  552. "arrowHead": {
  553. "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)",
  554. "value": "custom"
  555. },
  556. "arrowTail": {
  557. "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)",
  558. "value": "arrow-black"
  559. },
  560. "typename": {
  561. "type": "string",
  562. "value": "behaviourLink"
  563. },
  564. "position": {
  565. "type": "list<double>",
  566. "value": [
  567. 424.52800829232535,
  568. 1058.3752004605901
  569. ]
  570. },
  571. "orientation": {
  572. "type": "double",
  573. "value": 0
  574. },
  575. "scale": {
  576. "type": "list<double>",
  577. "value": [
  578. 1,
  579. 1
  580. ]
  581. },
  582. "mapper": {
  583. "type": "code",
  584. "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
  585. },
  586. "parser": {
  587. "type": "code",
  588. "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
  589. },
  590. "$contents": {
  591. "type": "map<string,*>",
  592. "value": {
  593. "nodes": {
  594. "92": {
  595. "textContent": {
  596. "type": "string",
  597. "value": "<<behaviour>>"
  598. },
  599. "style": {
  600. "type": "map<string,string>",
  601. "value": {
  602. "stroke": "#000000",
  603. "stroke-dasharray": "",
  604. "fill": "#ffffff",
  605. "fill-opacity": 0.75,
  606. "font-size": "13px",
  607. "stroke-width": 1,
  608. "arrow-start": "none",
  609. "arrow-end": "none"
  610. }
  611. },
  612. "mapper": {
  613. "type": "code",
  614. "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
  615. },
  616. "parser": {
  617. "type": "code",
  618. "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
  619. },
  620. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
  621. "position": {
  622. "type": "list<double>",
  623. "value": [
  624. "0;-41.07352483201754,0%",
  625. "0;25.35873378801398,0%"
  626. ]
  627. },
  628. "orientation": {
  629. "type": "double",
  630. "value": "0;-52.48103858015613"
  631. },
  632. "scale": {
  633. "type": "list<double>",
  634. "value": [
  635. 1,
  636. 1
  637. ]
  638. },
  639. "$linkDecoratorInfo": {
  640. "type": "map<string,double>",
  641. "value": {
  642. "xratio": 0.34355828220858897,
  643. "yoffset": -16.5
  644. }
  645. }
  646. },
  647. "281": {
  648. "segments": {
  649. "type": "string",
  650. "value": "m0,0 l10,4 l-10,4"
  651. },
  652. "style": {
  653. "type": "map<string,string>",
  654. "value": {
  655. "stroke": "#000000",
  656. "fill": "#000000",
  657. "fill-opacity": 0,
  658. "stroke-width": 1,
  659. "opacity": 1
  660. }
  661. },
  662. "mapper": {
  663. "type": "code",
  664. "value": ""
  665. },
  666. "parser": {
  667. "type": "code",
  668. "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
  669. },
  670. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
  671. "position": {
  672. "type": "list<double>",
  673. "value": [
  674. "0;75.47545430764512,73.42833291069904%",
  675. "0;-76.06499203592136,-67.88431281198591%"
  676. ]
  677. },
  678. "orientation": {
  679. "type": "double",
  680. "value": "0;-42.75330700490329"
  681. },
  682. "scale": {
  683. "type": "list<double>",
  684. "value": [
  685. 1,
  686. 1
  687. ]
  688. },
  689. "$linkDecoratorInfo": {
  690. "type": "map<string,double>",
  691. "value": {
  692. "xratio": 1,
  693. "yoffset": -4
  694. }
  695. }
  696. }
  697. },
  698. "edges": []
  699. }
  700. },
  701. "$asuri": {
  702. "type": "string",
  703. "value": "/Formalisms/SCCD/SCCD/behaviour/93.instance"
  704. },
  705. "$segments": {
  706. "type": "map<string,list<string>>",
  707. "value": {
  708. "/Formalisms/SCCD/SCCD.defaultIcons/ClassIcon/92.instance--/Formalisms/SCCD/SCCD.defaultIcons/behaviourLink/93.instance": "M348,1157L424,1058.022710800171",
  709. "/Formalisms/SCCD/SCCD.defaultIcons/behaviourLink/93.instance--/Formalisms/SCCD/SCCD.defaultIcons/CompositeStateIcon/0.instance": "M424,1058.022710800171L502.71883511244994,985.2473417410966"
  710. }
  711. },
  712. "$type": "/Formalisms/SCCD/SCCD.defaultIcons/behaviourLink"
  713. },
  714. "94": {
  715. "typename": {
  716. "type": "string",
  717. "value": "BasicStateIcon"
  718. },
  719. "position": {
  720. "type": "list<double>",
  721. "value": [
  722. 939,
  723. 482
  724. ]
  725. },
  726. "orientation": {
  727. "type": "double",
  728. "value": 0
  729. },
  730. "scale": {
  731. "type": "list<double>",
  732. "value": [
  733. 1,
  734. 1
  735. ]
  736. },
  737. "mapper": {
  738. "type": "code",
  739. "value": ""
  740. },
  741. "parser": {
  742. "type": "code",
  743. "value": ""
  744. },
  745. "$contents": {
  746. "type": "map<string,*>",
  747. "value": {
  748. "nodes": {
  749. "4": {
  750. "r": {
  751. "type": "double",
  752. "value": 20
  753. },
  754. "style": {
  755. "type": "map<string,string>",
  756. "value": {
  757. "stroke": "#20B2AA",
  758. "fill": "#E6E6FA",
  759. "fill-opacity": 0.75,
  760. "stroke-width": 4
  761. }
  762. },
  763. "mapper": {
  764. "type": "code",
  765. "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})"
  766. },
  767. "parser": {
  768. "type": "code",
  769. "value": ""
  770. },
  771. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Circle",
  772. "position": {
  773. "type": "list<double>",
  774. "value": [
  775. 3,
  776. 3
  777. ]
  778. },
  779. "orientation": {
  780. "type": "double",
  781. "value": 0
  782. },
  783. "scale": {
  784. "type": "list<double>",
  785. "value": [
  786. 1,
  787. 1
  788. ]
  789. }
  790. },
  791. "5": {
  792. "textContent": {
  793. "type": "string",
  794. "value": "initial"
  795. },
  796. "style": {
  797. "type": "map<string,string>",
  798. "value": {
  799. "stroke": "#000000",
  800. "stroke-dasharray": "",
  801. "fill": "#ffffff",
  802. "fill-opacity": 0.75,
  803. "font-size": "13px",
  804. "stroke-width": 1
  805. }
  806. },
  807. "mapper": {
  808. "type": "code",
  809. "value": "({'textContent':getAttr('name')})"
  810. },
  811. "parser": {
  812. "type": "code",
  813. "value": "({'name':getAttr('textContent')})"
  814. },
  815. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
  816. "position": {
  817. "type": "list<double>",
  818. "value": [
  819. 2,
  820. 44
  821. ]
  822. },
  823. "orientation": {
  824. "type": "double",
  825. "value": 0
  826. },
  827. "scale": {
  828. "type": "list<double>",
  829. "value": [
  830. 1,
  831. 1
  832. ]
  833. }
  834. },
  835. "6": {
  836. "distance": {
  837. "type": "double",
  838. "value": 10
  839. },
  840. "alignment": {
  841. "type": "ENUM(\"right\",\"left\",\"center\")",
  842. "value": "\"center\""
  843. },
  844. "$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Below",
  845. "position": {
  846. "type": "list<double>",
  847. "value": [
  848. 32.99899850809555,
  849. 45.99899850809561
  850. ]
  851. },
  852. "orientation": {
  853. "type": "double",
  854. "value": 0
  855. },
  856. "scale": {
  857. "type": "list<double>",
  858. "value": [
  859. 1,
  860. 1
  861. ]
  862. },
  863. "link-style": {
  864. "type": "map<string,string>",
  865. "value": {
  866. "stroke": "#00ff00",
  867. "stroke-dasharray": "",
  868. "stroke-opacity": 1,
  869. "arrow-start": "none",
  870. "arrow-end": "classic-wide-long"
  871. }
  872. }
  873. }
  874. },
  875. "edges": [
  876. {
  877. "src": "5",
  878. "dest": "6"
  879. },
  880. {
  881. "src": "6",
  882. "dest": "4"
  883. }
  884. ]
  885. }
  886. },
  887. "$asuri": {
  888. "type": "string",
  889. "value": "/Formalisms/SCCD/SCCD/BasicState/94.instance"
  890. },
  891. "$type": "/Formalisms/SCCD/SCCD.defaultIcons/BasicStateIcon"
  892. },
  893. "95": {
  894. "link-style": {
  895. "type": "map<string,string>",
  896. "value": {
  897. "stroke": "#ffff00",
  898. "stroke-dasharray": "",
  899. "stroke-opacity": 0.75,
  900. "stroke-width": 1
  901. }
  902. },
  903. "arrowHead": {
  904. "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)",
  905. "value": "custom"
  906. },
  907. "arrowTail": {
  908. "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)",
  909. "value": "arrow-black"
  910. },
  911. "typename": {
  912. "type": "string",
  913. "value": "containLink"
  914. },
  915. "position": {
  916. "type": "list<double>",
  917. "value": [
  918. 492.52180185370116,
  919. 281.59656806463266
  920. ]
  921. },
  922. "orientation": {
  923. "type": "double",
  924. "value": 0
  925. },
  926. "scale": {
  927. "type": "list<double>",
  928. "value": [
  929. 1,
  930. 1
  931. ]
  932. },
  933. "mapper": {
  934. "type": "code",
  935. "value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
  936. },
  937. "parser": {
  938. "type": "code",
  939. "value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
  940. },
  941. "$contents": {
  942. "type": "map<string,*>",
  943. "value": {
  944. "nodes": {},
  945. "edges": []
  946. }
  947. },
  948. "$asuri": {
  949. "type": "string",
  950. "value": "/Formalisms/SCCD/SCCD/contain/95.instance"
  951. },
  952. "$segments": {
  953. "type": "map<string,list<string>>",
  954. "value": {
  955. "/Formalisms/SCCD/SCCD.defaultIcons/CompositeStateIcon/0.instance--/Formalisms/SCCD/SCCD.defaultIcons/containLink/95.instance": "M25.27385602719999,53.06119999999987L492.52180185370116,281.59656806463266",
  956. "/Formalisms/SCCD/SCCD.defaultIcons/containLink/95.instance--/Formalisms/SCCD/SCCD.defaultIcons/BasicStateIcon/94.instance": "M492.4541702174697,281.5634887947996L959.4993511522072,509.99968264243756"
  957. }
  958. },
  959. "$type": "/Formalisms/SCCD/SCCD.defaultIcons/containLink"
  960. }
  961. },
  962. "edges": [],
  963. "metamodels": [
  964. "/Formalisms/SCCD/SCCD.defaultIcons"
  965. ]
  966. },
  967. "asm": {
  968. "nodes": {
  969. "0": {
  970. "name": {
  971. "type": "string",
  972. "value": "main"
  973. },
  974. "entryAction": {
  975. "type": "code",
  976. "value": ""
  977. },
  978. "exitAction": {
  979. "type": "code",
  980. "value": ""
  981. },
  982. "isStart": {
  983. "type": "boolean",
  984. "value": true
  985. },
  986. "isCurrent": {
  987. "type": "boolean",
  988. "value": false
  989. },
  990. "option": {
  991. "type": "ENUM(ITF, OTF, RTO)",
  992. "value": "ITF"
  993. },
  994. "raiseEntry": {
  995. "type": "list<map<[event,scope,arguments],[string,string,list<string>]>>",
  996. "value": []
  997. },
  998. "raiseExit": {
  999. "type": "list<map<[event,scope,arguments],[string,string,list<string>]>>",
  1000. "value": []
  1001. },
  1002. "$type": "/Formalisms/SCCD/SCCD/CompositeState"
  1003. },
  1004. "92": {
  1005. "name": {
  1006. "type": "string",
  1007. "value": "Train"
  1008. },
  1009. "attributes": {
  1010. "type": "list<$ATTRIBUTE>",
  1011. "value": []
  1012. },
  1013. "cardinalities": {
  1014. "type": "list<$CARDINALITY>",
  1015. "value": []
  1016. },
  1017. "abstract": {
  1018. "type": "boolean",
  1019. "value": false
  1020. },
  1021. "methods": {
  1022. "type": "list<$METHOD>",
  1023. "value": [
  1024. {
  1025. "name": "Train",
  1026. "args": [
  1027. {
  1028. "name": "root",
  1029. "type": ""
  1030. }
  1031. ],
  1032. "returntype": "",
  1033. "body": "self.root, self.acceleration, self.velocity = root, 0.0, 0.0/*newline*/self.root.trainIs(self)"
  1034. },
  1035. {
  1036. "name": "updateState",
  1037. "args": [
  1038. {
  1039. "name": "",
  1040. "type": ""
  1041. }
  1042. ],
  1043. "returntype": "",
  1044. "body": "self.root.updateState()"
  1045. },
  1046. {
  1047. "name": "openDoors",
  1048. "args": [
  1049. {
  1050. "name": "",
  1051. "type": ""
  1052. }
  1053. ],
  1054. "returntype": "",
  1055. "body": "self.root.openDoors()"
  1056. },
  1057. {
  1058. "name": "closeDoors",
  1059. "args": [
  1060. {
  1061. "name": "",
  1062. "type": ""
  1063. }
  1064. ],
  1065. "returntype": "",
  1066. "body": "self.root.closeDoors()"
  1067. },
  1068. {
  1069. "name": "notify",
  1070. "args": [
  1071. {
  1072. "name": "message",
  1073. "type": ""
  1074. },
  1075. {
  1076. "name": "colour",
  1077. "type": ""
  1078. }
  1079. ],
  1080. "returntype": "",
  1081. "body": "self.root.notify(message, colour)"
  1082. }
  1083. ]
  1084. },
  1085. "external": {
  1086. "type": "boolean",
  1087. "value": false
  1088. },
  1089. "$type": "/Formalisms/SCCD/SCCD/Class"
  1090. },
  1091. "93": {
  1092. "$type": "/Formalisms/SCCD/SCCD/behaviour"
  1093. },
  1094. "94": {
  1095. "name": {
  1096. "type": "string",
  1097. "value": "initial"
  1098. },
  1099. "entryAction": {
  1100. "type": "code",
  1101. "value": ""
  1102. },
  1103. "exitAction": {
  1104. "type": "code",
  1105. "value": ""
  1106. },
  1107. "isStart": {
  1108. "type": "boolean",
  1109. "value": true
  1110. },
  1111. "isCurrent": {
  1112. "type": "boolean",
  1113. "value": false
  1114. },
  1115. "option": {
  1116. "type": "ENUM(ITF, OTF, RTO)",
  1117. "value": "ITF"
  1118. },
  1119. "raiseEntry": {
  1120. "type": "list<map<[event,scope,arguments],[string,string,list<string>]>>",
  1121. "value": []
  1122. },
  1123. "raiseExit": {
  1124. "type": "list<map<[event,scope,arguments],[string,string,list<string>]>>",
  1125. "value": []
  1126. },
  1127. "$type": "/Formalisms/SCCD/SCCD/BasicState"
  1128. },
  1129. "95": {
  1130. "$type": "/Formalisms/SCCD/SCCD/contain"
  1131. }
  1132. },
  1133. "edges": [
  1134. {
  1135. "src": "92",
  1136. "dest": "93"
  1137. },
  1138. {
  1139. "src": "93",
  1140. "dest": "0"
  1141. },
  1142. {
  1143. "src": "0",
  1144. "dest": "95"
  1145. },
  1146. {
  1147. "src": "95",
  1148. "dest": "94"
  1149. }
  1150. ],
  1151. "metamodels": [
  1152. "/Formalisms/SCCD/SCCD"
  1153. ]
  1154. }
  1155. }