cbd_design.mvc 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import models/SimpleClassDiagrams as SCD
  2. include "primitives.alh"
  3. SCD CausalBlockDiagrams_Design{
  4. AttributeValue Float {
  5. constraint = $
  6. String constraint(model : Element, name : String):
  7. if (bool_not(is_physical_float(model["model"][name]))):
  8. return "Float has no float value"!
  9. else:
  10. return "OK"!
  11. $
  12. }
  13. AttributeValue String {
  14. constraint = $
  15. String constraint(model : Element, name : String):
  16. if (bool_not(is_physical_string(model["model"][name]))):
  17. return "String has no string value"!
  18. else:
  19. return "OK"!
  20. $
  21. }
  22. Class Block{}
  23. Class ICBlock{}
  24. Class ConstantBlock{
  25. value : Float
  26. }
  27. Class AdditionBlock{}
  28. Class NegatorBlock{}
  29. Class MultiplyBlock{}
  30. Class InverseBlock{}
  31. Class DelayBlock{}
  32. Class IntegratorBlock{}
  33. Class DerivatorBlock{}
  34. Class ProbeBlock{
  35. name : String
  36. }
  37. Association Link(Block, Block){}
  38. Association InitialCondition(Block, ICBlock){
  39. source_lower_cardinality = 1
  40. source_upper_cardinality = 1
  41. }
  42. Inheritance (ConstantBlock, Block){}
  43. Inheritance (AdditionBlock, Block){}
  44. Inheritance (NegatorBlock, Block){}
  45. Inheritance (MultiplyBlock, Block){}
  46. Inheritance (InverseBlock, Block){}
  47. Inheritance (ProbeBlock, Block){}
  48. Inheritance (ICBlock, Block){}
  49. Inheritance (DelayBlock, ICBlock){}
  50. Inheritance (IntegratorBlock, ICBlock){}
  51. Inheritance (DerivatorBlock, ICBlock){}
  52. }
  53. export CausalBlockDiagrams_Design to models/CausalBlockDiagrams_Design