|
@@ -32,20 +32,28 @@ Element function ramify(model : Element):
|
|
add_AL_to_MM(new_model)
|
|
add_AL_to_MM(new_model)
|
|
|
|
|
|
// Add some default elements
|
|
// Add some default elements
|
|
- // Class LHS {
|
|
|
|
|
|
+ // Class LHS_Root {
|
|
// constraint : funcdef {
|
|
// constraint : funcdef {
|
|
// target_upper_cardinality = 1
|
|
// target_upper_cardinality = 1
|
|
// }
|
|
// }
|
|
// upper_cardinality = 1
|
|
// upper_cardinality = 1
|
|
// lower_cardinality = 1
|
|
// lower_cardinality = 1
|
|
// }
|
|
// }
|
|
- instantiate_node(new_model, "Class", "LHS")
|
|
|
|
- instantiate_attribute(new_model, "LHS", "lower_cardinality", 1)
|
|
|
|
- instantiate_attribute(new_model, "LHS", "upper_cardinality", 1)
|
|
|
|
- instantiate_link(new_model, "Association", "LHS_constraint", "LHS", "funcdef")
|
|
|
|
|
|
+ instantiate_node(new_model, "Class", "LHS_Root")
|
|
|
|
+ instantiate_attribute(new_model, "LHS_Root", "lower_cardinality", 1)
|
|
|
|
+ instantiate_attribute(new_model, "LHS_Root", "upper_cardinality", 1)
|
|
|
|
+ instantiate_link(new_model, "Association", "LHS_constraint", "LHS_Root", "funcdef")
|
|
instantiate_attribute(new_model, "LHS_constraint", "name", "constraint")
|
|
instantiate_attribute(new_model, "LHS_constraint", "name", "constraint")
|
|
instantiate_attribute(new_model, "LHS_constraint", "target_upper_cardinality", 1)
|
|
instantiate_attribute(new_model, "LHS_constraint", "target_upper_cardinality", 1)
|
|
|
|
|
|
|
|
+ // Class LHS : LHS_Root {}
|
|
|
|
+ instantiate_node(new_model, "Class", "LHS")
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "LHS", "LHS_Root")
|
|
|
|
+
|
|
|
|
+ // Class NAC : LHS_Root {}
|
|
|
|
+ instantiate_node(new_model, "Class", "NAC")
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "NAC", "LHS_Root")
|
|
|
|
+
|
|
// Class Pre_Element {
|
|
// Class Pre_Element {
|
|
// label : String {
|
|
// label : String {
|
|
// target_lower_cardinality = 1
|
|
// target_lower_cardinality = 1
|
|
@@ -64,8 +72,8 @@ Element function ramify(model : Element):
|
|
instantiate_attribute(new_model, "Pre_Element_constraint", "name", "constraint")
|
|
instantiate_attribute(new_model, "Pre_Element_constraint", "name", "constraint")
|
|
instantiate_attribute(new_model, "Pre_Element_constraint", "target_upper_cardinality", 1)
|
|
instantiate_attribute(new_model, "Pre_Element_constraint", "target_upper_cardinality", 1)
|
|
|
|
|
|
- // Association LHS_contains (LHS, Pre_Element) {}
|
|
|
|
- instantiate_link(new_model, "Association", "LHS_contains", "LHS", "Pre_Element")
|
|
|
|
|
|
+ // Association LHS_contains (LHS_Root, Pre_Element) {}
|
|
|
|
+ instantiate_link(new_model, "Association", "LHS_contains", "LHS_Root", "Pre_Element")
|
|
instantiate_attribute(new_model, "LHS_contains", "name", "contains")
|
|
instantiate_attribute(new_model, "LHS_contains", "name", "contains")
|
|
|
|
|
|
// Class RHS {
|
|
// Class RHS {
|
|
@@ -209,41 +217,46 @@ Element function ramify(model : Element):
|
|
instantiate_attribute(new_model, "OnFailure", "target_lower_cardinality", 1)
|
|
instantiate_attribute(new_model, "OnFailure", "target_lower_cardinality", 1)
|
|
instantiate_attribute(new_model, "OnFailure", "target_upper_cardinality", 1)
|
|
instantiate_attribute(new_model, "OnFailure", "target_upper_cardinality", 1)
|
|
|
|
|
|
- // Class Query : Rule {}
|
|
|
|
- instantiate_node(new_model, "Class", "Query")
|
|
|
|
- instantiate_link(new_model, "Inheritance", "", "Query", "Rule")
|
|
|
|
|
|
+ // Class LHSRule : Rule {}
|
|
|
|
+ instantiate_node(new_model, "Class", "LHSRule")
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "LHSRule", "Rule")
|
|
|
|
|
|
- // Association QueryLHS (Query, LHS) {
|
|
|
|
|
|
+ // Association LHSLink (LHSRule, LHS) {
|
|
// target_lower_cardinality = 1
|
|
// target_lower_cardinality = 1
|
|
// target_upper_cardinality = 1
|
|
// target_upper_cardinality = 1
|
|
// }
|
|
// }
|
|
- instantiate_link(new_model, "Association", "QueryLHS", "Query", "LHS")
|
|
|
|
- instantiate_attribute(new_model, "QueryLHS", "target_lower_cardinality", 1)
|
|
|
|
- instantiate_attribute(new_model, "QueryLHS", "target_upper_cardinality", 1)
|
|
|
|
|
|
+ instantiate_link(new_model, "Association", "LHSLink", "LHSRule", "LHS")
|
|
|
|
+ instantiate_attribute(new_model, "LHSLink", "target_lower_cardinality", 1)
|
|
|
|
+ instantiate_attribute(new_model, "LHSLink", "target_upper_cardinality", 1)
|
|
|
|
|
|
- // Class Atomic : Rule {}
|
|
|
|
- instantiate_node(new_model, "Class", "Atomic")
|
|
|
|
- instantiate_link(new_model, "Inheritance", "", "Atomic", "Rule")
|
|
|
|
|
|
+ // Association NACLink (LHSRule, NAC) {}
|
|
|
|
+ instantiate_link(new_model, "Association", "NACLink", "LHSRule", "NAC")
|
|
|
|
|
|
- // Association AtomicLHS (Atomic, LHS) {
|
|
|
|
- // target_lower_cardinality = 1
|
|
|
|
- // target_upper_cardinality = 1
|
|
|
|
- // }
|
|
|
|
- instantiate_link(new_model, "Association", "AtomicLHS", "Atomic", "LHS")
|
|
|
|
- instantiate_attribute(new_model, "AtomicLHS", "target_lower_cardinality", 1)
|
|
|
|
- instantiate_attribute(new_model, "AtomicLHS", "target_upper_cardinality", 1)
|
|
|
|
|
|
+ // Class RHSRule : Rule {}
|
|
|
|
+ instantiate_node(new_model, "Class", "RHSRule")
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "RHSRule", "Rule")
|
|
|
|
|
|
- // Association AtomicRHS (Atomic, RHS) {
|
|
|
|
|
|
+ // Association RHSLink (RHSRule, RHS) {
|
|
// target_lower_cardinality = 1
|
|
// target_lower_cardinality = 1
|
|
// target_upper_cardinality = 1
|
|
// target_upper_cardinality = 1
|
|
// }
|
|
// }
|
|
- instantiate_link(new_model, "Association", "AtomicRHS", "Atomic", "RHS")
|
|
|
|
- instantiate_attribute(new_model, "AtomicRHS", "target_lower_cardinality", 1)
|
|
|
|
- instantiate_attribute(new_model, "AtomicRHS", "target_upper_cardinality", 1)
|
|
|
|
|
|
+ instantiate_link(new_model, "Association", "RHSLink", "RHSRule", "RHS")
|
|
|
|
+ instantiate_attribute(new_model, "RHSLink", "target_lower_cardinality", 1)
|
|
|
|
+ instantiate_attribute(new_model, "RHSLink", "target_upper_cardinality", 1)
|
|
|
|
+
|
|
|
|
+ // Class Query : LHSRule {}
|
|
|
|
+ instantiate_node(new_model, "Class", "Query")
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "Query", "LHSRule")
|
|
|
|
+
|
|
|
|
+ // Class Atomic : LHSRule, RHSRule {}
|
|
|
|
+ instantiate_node(new_model, "Class", "Atomic")
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "Atomic", "LHSRule")
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "Atomic", "RHSRule")
|
|
|
|
|
|
- // Class ForAll : Atomic {}
|
|
|
|
|
|
+ // Class ForAll : LHSRule, RHSRule {}
|
|
instantiate_node(new_model, "Class", "ForAll")
|
|
instantiate_node(new_model, "Class", "ForAll")
|
|
- instantiate_link(new_model, "Inheritance", "", "ForAll", "Atomic")
|
|
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "ForAll", "LHSRule")
|
|
|
|
+ instantiate_link(new_model, "Inheritance", "", "ForAll", "RHSRule")
|
|
|
|
|
|
// Class Composite : Rule {}
|
|
// Class Composite : Rule {}
|
|
instantiate_node(new_model, "Class", "Composite")
|
|
instantiate_node(new_model, "Class", "Composite")
|