123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- import models/SimpleClassDiagrams as SimpleClassDiagrams
- include "primitives.alh"
- SimpleClassDiagrams CoreFormalism {
- SimpleAttribute String {
- constraint = $
- String function constraint(model : Element, name : String):
- if (bool_not(is_physical_string(model["model"][name]))):
- return "String has no string value"!
- else:
- return "OK"!
- $
- }
- SimpleAttribute Permissions {
- constraint = $
- String function constraint(model : Element, name : String):
- if (bool_not(is_physical_string(model["model"][name]))):
- return "Permissions has no string value"!
- else:
- return "OK"!
- $
- }
- SimpleAttribute Boolean {
- constraint = $
- String function constraint(model : Element, name : String):
- if (bool_not(is_physical_boolean(model["model"][name]))):
- return "Boolean has no bool value"!
- else:
- return "OK"!
- $
- }
- SimpleAttribute Natural {
- constraint = $
- String function constraint(model : Element, name : String):
- if (bool_not(is_physical_int(model["model"][name]))):
- return "Natural has no integer value"!
- elif (integer_lt(model["model"][name], 0)):
- return "Natural has negative value"!
- else:
- return "OK"!
- $
- }
- SimpleAttribute TypeMapping {
- constraint = $
- String function constraint(model : Element, name : String):
- Element self
- self = model["model"][name]
- if (has_value(self)):
- return "TypeMapping cannot have a value for root node!"!
- Element keys
- String key
- keys = dict_keys(self)
- while (read_nr_out(keys) > 0):
- key = set_pop(keys)
- if (bool_not(is_physical_string(key))):
- return ("Key on type mapping is not a string: " + cast_e2s(key))!
- elif (bool_not(is_physical_string(self[key]))):
- return ("Value on type mapping is not a string for key " + cast_e2s(key))!
- return "OK"!
- $
- }
- Class User {
- name : String
- password : String
- admin : Boolean
- }
- Class Group {
- name : String
- }
- Association ownedBy (Group, User) {}
- Association belongsTo (User, Group) {}
- Class Model {
- name : String
- location : String
- permissions : Permissions
- }
- Association instanceOf (Model, Model) {
- type_mapping : TypeMapping
- }
- Association owner (Model, User) {
- target_lower_cardinality = 1
- target_upper_cardinality = 1
- }
- Association group (Model, Group) {
- target_lower_cardinality = 1
- target_upper_cardinality = 1
- }
- Class Transformation : Model {
- name : String
- location : String
- }
- Class ModelTransformation : Transformation {}
- Class ActionLanguage : Transformation {}
- Class ExternalTool : Transformation {}
- Class ManualTransformation : Transformation {}
- Association transformInput (Model, Transformation) {
- name : String
- }
- Association transformOutput (Transformation, Model) {
- name : String
- }
- Association tracability (Model, Model) {
- type : String
- }
- }
- export CoreFormalism to models/CoreFormalism
|