DiningRoom.metamodel 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. {
  2. "types": {
  3. "Table": [
  4. {
  5. "name": "x",
  6. "type": "int",
  7. "default": "0"
  8. },
  9. {
  10. "name": "y",
  11. "type": "int",
  12. "default": "0"
  13. }
  14. ],
  15. "Chair": [
  16. {
  17. "name": "order",
  18. "type": "int",
  19. "default": "1"
  20. }
  21. ],
  22. "around": [
  23. {
  24. "name": "",
  25. "type": "",
  26. "default": ""
  27. }
  28. ]
  29. },
  30. "constraints": [
  31. {
  32. "name": "GC_UniqueTable",
  33. "event": "",
  34. "targetType": "*",
  35. "code": "(getAllNodes(['/Formalisms/DiningRoom/DiningRoom/Table']).length <= 1)"
  36. }
  37. ],
  38. "actions": [],
  39. "cardinalities": {
  40. "Table": [
  41. {
  42. "dir": "out",
  43. "type": "around",
  44. "min": "0",
  45. "max": "Infinity"
  46. }
  47. ],
  48. "Chair": [
  49. {
  50. "dir": "in",
  51. "type": "around",
  52. "min": "0",
  53. "max": "Infinity"
  54. }
  55. ],
  56. "around": [
  57. {
  58. "dir": "in",
  59. "type": "around",
  60. "min": "0",
  61. "max": "1"
  62. },
  63. {
  64. "dir": "in",
  65. "type": "Table",
  66. "min": "0",
  67. "max": "1"
  68. },
  69. {
  70. "dir": "out",
  71. "type": "Chair",
  72. "min": "0",
  73. "max": "1"
  74. }
  75. ]
  76. },
  77. "legalConnections": {
  78. "Table": {
  79. "Chair": [
  80. "around"
  81. ]
  82. }
  83. },
  84. "connectorTypes": {
  85. "around": "visual"
  86. },
  87. "types2parentTypes": {
  88. "Table": [],
  89. "Chair": [],
  90. "around": [],
  91. "GC_UniqueTable": []
  92. }
  93. }