Selaa lähdekoodia

Nicer CBD mapper (with kind of a tracability check)

Yentl Van Tendeloo 8 vuotta sitten
vanhempi
commit
b58e65f467
1 muutettua tiedostoa jossa 25 lisäystä ja 2 poistoa
  1. 25 2
      models/CBD_mapper.mvc

+ 25 - 2
models/CBD_mapper.mvc

@@ -11,6 +11,18 @@ A B {
                 Pre_CausalBlockDiagrams/Block pre_block_0 {
                     label = "0"
                 }
+
+                constraint = $
+                    Boolean function constraint(model : Element, mapping : Element):
+                        Element trace_links
+                        trace_links = allOutgoingAssociationInstances(model, mapping["0"], "TracabilityLink")
+                        log("Found tracability links: " + cast_v2s(read_nr_out(trace_links)))
+                        if (read_nr_out(trace_links) > 0):
+                            log("Block already connected; ignoring!")
+                            return False!
+                        else:
+                            return True!
+                    $
             }
             RHS {
                 Post_CausalBlockDiagrams/Block post_block_0 {
@@ -43,11 +55,11 @@ A B {
                         $
                     value_width = $
                         Integer function value(model : Element, name : String, mapping : Element):
-                            return 10!
+                            return 30!
                         $
                     value_height = $
                         Integer function value(model : Element, name : String, mapping : Element):
-                            return 10!
+                            return 30!
                         $
                     value_lineWidth = $
                         Integer function value(model : Element, name : String, mapping : Element):
@@ -147,6 +159,17 @@ A B {
                 Pre_TracabilityLink (pre_conn_1, pre_conn_4) {
                     label = "6"
                 }
+
+                constraint = $
+                    Boolean function constraint(model : Element, mapping : Element):
+                        Element trace_links
+                        trace_links = allOutgoingAssociationInstances(model, mapping["2"], "TracabilityLink")
+                        if (read_nr_out(trace_links) > 0):
+                            log("Block already connected; ignoring!")
+                            return False!
+                        else:
+                            return True!
+                    $
             }
             RHS {
                 Post_CausalBlockDiagrams/Block post_conn_0 {