core_formalism.mvc 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import models/SimpleClassDiagrams as SimpleClassDiagrams
  2. include "primitives.alh"
  3. SimpleClassDiagrams CoreFormalism {
  4. Class String {
  5. $
  6. if (bool_not(is_physical_string(self))):
  7. return "String has no string value"!
  8. else:
  9. return "OK"!
  10. $
  11. }
  12. Class Permissions {
  13. $
  14. if (bool_not(is_physical_string(self))):
  15. return "Permissions has no string value"!
  16. else:
  17. return "OK"!
  18. $
  19. }
  20. Class Boolean {
  21. $
  22. if (bool_not(is_physical_boolean(self))):
  23. return "Boolean has no bool value"!
  24. else:
  25. return "OK"!
  26. $
  27. }
  28. Class Natural {
  29. $
  30. if (bool_not(is_physical_int(self))):
  31. return "Natural has no integer value"!
  32. elif (integer_lt(self, 0)):
  33. return "Natural has negative value"!
  34. else:
  35. return "OK"!
  36. $
  37. }
  38. Class TypeMapping {
  39. $
  40. if (has_value(self)):
  41. return "TypeMapping cannot have a value for root node!"!
  42. Element keys
  43. String key
  44. keys = dict_keys(self)
  45. while (read_nr_out(keys) > 0):
  46. key = set_pop(keys)
  47. if (bool_not(is_physical_string(key))):
  48. return ("Key on type mapping is not a string: " + cast_e2s(key))!
  49. elif (bool_not(is_physical_string(self[key]))):
  50. return ("Value on type mapping is not a string for key " + cast_e2s(key))!
  51. return "OK"!
  52. $
  53. }
  54. Class User {
  55. name : String
  56. password : String
  57. admin : Boolean
  58. }
  59. Class Group {
  60. name : String
  61. }
  62. Association ownedBy (Group, User) {}
  63. Association belongsTo (User, Group) {}
  64. Class Model {
  65. name : String
  66. location : String
  67. permissions : Permissions
  68. }
  69. Association instanceOf (Model, Model) {
  70. type_mapping : TypeMapping
  71. }
  72. Association owner (Model, User) {
  73. target_lower_cardinality = 1
  74. target_upper_cardinality = 1
  75. }
  76. Association group (Model, Group) {
  77. target_lower_cardinality = 1
  78. target_upper_cardinality = 1
  79. }
  80. Class Transformation : Model {
  81. name : String
  82. location : String
  83. }
  84. Class ModelTransformation : Transformation {}
  85. Class ActionLanguage : Transformation {}
  86. Class ExternalTool : Transformation {}
  87. Class ManualTransformation : Transformation {}
  88. Association transformInput (Model, Transformation) {
  89. name : String
  90. }
  91. Association transformOutput (Transformation, Model) {
  92. name : String
  93. }
  94. Association tracability (Model, Model) {
  95. type : String
  96. }
  97. }
  98. export CoreFormalism to models/CoreFormalism