pm.mvc 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import models/SimpleClassDiagrams as SimpleClassDiagrams
  2. include "primitives.alh"
  3. include "object_operations.alh"
  4. SimpleClassDiagrams ProcessModel {
  5. SimpleAttribute MvCName {
  6. constraint = $
  7. String function constraint(model : Element, name : String):
  8. if (bool_not(is_physical_string(model["model"][name]))):
  9. return "MvCName has no string value"!
  10. else:
  11. return "OK"!
  12. $
  13. }
  14. Class Activity {}
  15. Class Start : Activity {
  16. lower_cardinality = 1
  17. upper_cardinality = 1
  18. }
  19. Class Finish : Activity {
  20. lower_cardinality = 1
  21. }
  22. Class JoinFork : Activity {}
  23. Class Decision : Activity {
  24. constraint = $
  25. String function constraint(model : Element, name : String):
  26. if (read_nr_out(allOutgoingAssociationInstances(model, name, "Next")) == 0):
  27. return "OK"!
  28. else:
  29. return "Decision node cannot have a normal 'Next' link"!
  30. $
  31. }
  32. Class Exec : Activity {
  33. name : MvCName
  34. }
  35. Class Data {
  36. name : MvCName
  37. type : MvCName
  38. }
  39. Association Produces (Exec, Data) {}
  40. Association Consumes (Data, Exec) {}
  41. Association Then (Decision, Activity) {}
  42. Association Else (Decision, Activity) {}
  43. Association Next (Activity, Activity) {}
  44. }
  45. export ProcessModel to models/ProcessModel