Преглед на файлове

Consumes now takes a "name" attribute

Yentl Van Tendeloo преди 8 години
родител
ревизия
69b03a216e
променени са 4 файла, в които са добавени 105 реда и са изтрити 37 реда
  1. 4 1
      core/pm.mvc
  2. 20 1
      models/combine_EPN.mvc
  3. 5 1
      models/petrinet_ports.mvc
  4. 76 34
      models/pm_req_analyse.mvc

+ 4 - 1
core/pm.mvc

@@ -3,6 +3,7 @@ include "primitives.alh"
 include "object_operations.alh"
 
 SimpleClassDiagrams ProcessModel {
+    SimpleAttribute String {}
     SimpleAttribute MvCName {
         constraint = $
             String function constraint(model : Element, name : String):
@@ -42,7 +43,9 @@ SimpleClassDiagrams ProcessModel {
     }
 
     Association Produces (Exec, Data) {}
-    Association Consumes (Data, Exec) {}
+    Association Consumes (Data, Exec) {
+        name : String
+    }
     Association Then (Decision, Activity) {}
     Association Else (Decision, Activity) {}
     Association Next (Activity, Activity) {}

+ 20 - 1
models/combine_EPN.mvc

@@ -6,6 +6,23 @@ A B {
     Composite schedule {
         {Contains} Success success {}
         {Contains} Failure failure {}
+        {Contains} Atomic unselect_all {
+            LHS {
+                Pre_Encapsulated_PetriNet/Port pre_ua_1 {
+                    label = "1"
+                }
+            }
+            RHS {
+                Post_Encapsulated_PetriNet/Port post_ua_1 {
+                    label = "1"
+                    value_selected = $
+                        Boolean function value(model : Element, name : String, mapping : Element):
+                            return False!
+                        $
+                }
+            }
+        }
+
         {Contains} Atomic select {
             LHS {
                 Pre_Encapsulated_PetriNet/Place pre_s_1 {
@@ -230,8 +247,9 @@ A B {
             }
         }
     }
-    Initial (schedule, select) {}
+    Initial (schedule, unselect_all) {}
 
+    OnSuccess (unselect_all, select) {}
     OnSuccess (select, merge_P2T) {}
     OnSuccess (merge_P2T, merge_T2P) {}
     OnSuccess (merge_T2P, remove_old) {}
@@ -239,6 +257,7 @@ A B {
     OnSuccess (unselect, select) {}
     OnFailure (select, finish) {}
 
+    OnFailure (unselect_all, select) {}
     OnFailure (merge_P2T, merge_T2P) {}
     OnFailure (merge_T2P, remove_old) {}
     OnFailure (remove_old, unselect) {}

+ 5 - 1
models/petrinet_ports.mvc

@@ -21,6 +21,8 @@ SimpleClassDiagrams PetriNetsPorts {
             $
     }
 
+    SimpleAttribute Boolean {}
+
     Class Named {
         name : String
     }
@@ -28,7 +30,9 @@ SimpleClassDiagrams PetriNetsPorts {
         tokens : Natural
     }
     Class Transition : Named {}
-    Class Port : Named {}
+    Class Port : Named {
+        selected? : Boolean
+    }
 
     Association P2T (Place, Transition) {}
     Association T2P (Transition, Place) {}

+ 76 - 34
models/pm_req_analyse.mvc

@@ -124,38 +124,80 @@ ProcessModel analyse_requirements {
     Then (found, forkjoin1) {}
     Else (found, finish) {}
 
-    Produces (define_req, req) {}
-
-    Produces (make_initial_models, plant_model) {}
-    Produces (make_initial_models, environment_model) {}
-    Produces (make_initial_models, control_model) {}
-    Produces (make_initial_models, query) {}
-
-    Consumes (req, refine_plant) {}
-    Consumes (req, refine_environment) {}
-    Consumes (req, refine_control) {}
-    Consumes (req, refine_query) {}
-
-    Consumes (plant_model, refine_plant) {}
-    Consumes (environment_model, refine_environment) {}
-    Consumes (control_model, refine_control) {}
-    Consumes (query, refine_query) {}
-    Produces (refine_plant, plant_EPN) {}
-    Produces (refine_control, control_EPN) {}
-    Produces (refine_environment, environment_EPN) {}
-    Produces (refine_query, query) {}
-
-    Consumes (plant_EPN, combine_EPN) {}
-    Consumes (environment_EPN, combine_EPN) {}
-    Consumes (control_EPN, combine_EPN) {}
-    Produces (combine_EPN, merged_EPN) {}
-
-    Consumes (merged_EPN, EPN_to_PN) {}
-    Produces (EPN_to_PN, pn) {}
-
-    Consumes (pn, analyse) {}
-    Produces (analyse, reachability_graph) {}
-
-    Consumes (reachability_graph, matches) {}
-    Consumes (query, matches) {}
+    Produces (define_req, req) {
+    }
+
+    Produces (make_initial_models, plant_model) {
+    }
+    Produces (make_initial_models, environment_model) {
+    }
+    Produces (make_initial_models, control_model) {
+    }
+    Produces (make_initial_models, query) {
+    }
+
+    Consumes (req, refine_plant) {
+        name = "requirements"
+    }
+    Consumes (req, refine_environment) {
+        name = "requirements"
+    }
+    Consumes (req, refine_control) {
+        name = "requirements"
+    }
+    Consumes (req, refine_query) {
+        name = "requirements"
+    }
+
+    Consumes (plant_model, refine_plant) {
+        name = "plant"
+    }
+    Consumes (environment_model, refine_environment) {
+        name = "environment"
+    }
+    Consumes (control_model, refine_control) {
+        name = "control"
+    }
+    Consumes (query, refine_query) {
+        name = "query"
+    }
+    Produces (refine_plant, plant_EPN) {
+    }
+    Produces (refine_control, control_EPN) {
+    }
+    Produces (refine_environment, environment_EPN) {
+    }
+    Produces (refine_query, query) {
+    }
+
+    Consumes (plant_EPN, combine_EPN) {
+        name = "EPN_1"
+    }
+    Consumes (environment_EPN, combine_EPN) {
+        name = "EPN_2"
+    }
+    Consumes (control_EPN, combine_EPN) {
+        name = "EPN_3"
+    }
+    Produces (combine_EPN, merged_EPN) {
+    }
+
+    Consumes (merged_EPN, EPN_to_PN) {
+        name = "EPN"
+    }
+    Produces (EPN_to_PN, pn) {
+    }
+
+    Consumes (pn, analyse) {
+        name = "PN"
+    }
+    Produces (analyse, reachability_graph) {
+    }
+
+    Consumes (reachability_graph, matches) {
+        name = "reachability_graph"
+    }
+    Consumes (query, matches) {
+        name = "query"
+    }
 }