|
@@ -26,32 +26,6 @@ Element function create_metamodels():
|
|
|
model_add_edge(scd, "attr_name", "association_attr", "name")
|
|
|
model_add_node(scd, "Integer")
|
|
|
|
|
|
- // TODO: possible to use instantiate_named here?
|
|
|
- // Lower multiplicity on classes
|
|
|
- model_add_value(scd, "lower_multiplicity", "lower_multiplicity")
|
|
|
- model_add_edge(scd, "class_to_lm", "Class", "Integer")
|
|
|
- model_add_edge(scd, "lm_name", "class_to_lm", "lower_multiplicity")
|
|
|
- // Upper multiplicity on classes
|
|
|
- model_add_value(scd, "upper_multiplicity", "upper_multiplicity")
|
|
|
- model_add_edge(scd, "class_to_um", "Class", "Integer")
|
|
|
- model_add_edge(scd, "um_name", "class_to_um", "upper_multiplicity")
|
|
|
- // Source lower multiplicity on associations
|
|
|
- model_add_value(scd, "source_lower_cardinality", "source_lower_cardinality")
|
|
|
- model_add_edge(scd, "assoc_to_slc", "Association", "Integer")
|
|
|
- model_add_edge(scd, "slc_name", "assoc_to_slc", "source_lower_cardinality")
|
|
|
- // Source upper multiplicity on associations
|
|
|
- model_add_value(scd, "source_upper_cardinality", "source_upper_cardinality")
|
|
|
- model_add_edge(scd, "assoc_to_suc", "Association", "Integer")
|
|
|
- model_add_edge(scd, "suc_name", "assoc_to_suc", "source_upper_cardinality")
|
|
|
- // Target lower multiplicity on associations
|
|
|
- model_add_value(scd, "target_lower_cardinality", "target_lower_cardinality")
|
|
|
- model_add_edge(scd, "assoc_to_tlc", "Association", "Integer")
|
|
|
- model_add_edge(scd, "tlc_name", "assoc_to_tlc", "target_lower_cardinality")
|
|
|
- // Target upper multiplicity on associations
|
|
|
- model_add_value(scd, "target_upper_cardinality", "target_upper_cardinality")
|
|
|
- model_add_edge(scd, "assoc_to_tuc", "Association", "Integer")
|
|
|
- model_add_edge(scd, "tuc_name", "assoc_to_tuc", "target_upper_cardinality")
|
|
|
-
|
|
|
retype_model(scd, scd)
|
|
|
define_inheritance(scd, "Inheritance")
|
|
|
retype(scd, "Class", "Class")
|
|
@@ -71,39 +45,20 @@ Element function create_metamodels():
|
|
|
retype(scd, "association_attr", "Association")
|
|
|
retype(scd, "attr_name", "association_attr")
|
|
|
retype(scd, "Integer", "Type")
|
|
|
- // TODO: with instantiate_named, after all previous retypings?
|
|
|
- // Lower multiplicity on classes
|
|
|
- retype(scd, "lower_multiplicity", "String")
|
|
|
- retype(scd, "lm_name", "association_attr")
|
|
|
- retype(scd, "class_to_um", "Association")
|
|
|
- // Upper multiplicity on classes
|
|
|
- retype(scd, "upper_multiplicity", "String")
|
|
|
- retype(scd, "class_to_lm", "Association")
|
|
|
- retype(scd, "um_name", "association_attr")
|
|
|
- // Source lower cardinality on associations
|
|
|
- retype(scd, "source_lower_cardinality", "String")
|
|
|
- retype(scd, "assoc_to_slc", "Association")
|
|
|
- retype(scd, "slc_name", "association_attr")
|
|
|
- // Source upper cardinality on associations
|
|
|
- retype(scd, "source_upper_cardinality", "String")
|
|
|
- retype(scd, "assoc_to_suc", "Association")
|
|
|
- retype(scd, "suc_name", "association_attr")
|
|
|
- // Target lower cardinality on associations
|
|
|
- retype(scd, "target_lower_cardinality", "String")
|
|
|
- retype(scd, "assoc_to_tlc", "Association")
|
|
|
- retype(scd, "tlc_name", "association_attr")
|
|
|
- // Target upper cardinality on associations
|
|
|
- retype(scd, "target_upper_cardinality", "String")
|
|
|
- retype(scd, "assoc_to_tuc", "Association")
|
|
|
- retype(scd, "tuc_name", "association_attr")
|
|
|
|
|
|
- // TODO: try this
|
|
|
- //instantiate_named(scd, "Association", "lower_multiplicity", "Class", "Integer")
|
|
|
- //instantiate_named(scd, "Association", "upper_multiplicity", "Class", "Integer")
|
|
|
- //instantiate_named(scd, "Association", "source_lower_multiplicity", "Association", "Integer")
|
|
|
- //instantiate_named(scd, "Association", "source_upper_multiplicity", "Association", "Integer")
|
|
|
- //instantiate_named(scd, "Association", "target_lower_multiplicity", "Association", "Integer")
|
|
|
- //instantiate_named(scd, "Association", "target_upper_multiplicity", "Association", "Integer")
|
|
|
+ // Add some attributes "the nice way" now that everything is typed
|
|
|
+ instantiate_link(scd, "Association", "lc", "Class", "Integer")
|
|
|
+ instantiate_attribute(scd, "lc", "name", "lower_cardinality")
|
|
|
+ instantiate_link(scd, "Association", "uc", "Class", "Integer")
|
|
|
+ instantiate_attribute(scd, "uc", "name", "upper_cardinality")
|
|
|
+ instantiate_link(scd, "Association", "slc", "Association", "Integer")
|
|
|
+ instantiate_attribute(scd, "slc", "name", "source_lower_cardinality")
|
|
|
+ instantiate_link(scd, "Association", "suc", "Association", "Integer")
|
|
|
+ instantiate_attribute(scd, "suc", "name", "source_upper_cardinality")
|
|
|
+ instantiate_link(scd, "Association", "tlc", "Association", "Integer")
|
|
|
+ instantiate_attribute(scd, "tlc", "name", "target_lower_cardinality")
|
|
|
+ instantiate_link(scd, "Association", "tuc", "Association", "Integer")
|
|
|
+ instantiate_attribute(scd, "tuc", "name", "target_upper_cardinality")
|
|
|
|
|
|
export_node("models/SimpleClassDiagrams", scd)
|
|
|
|
|
@@ -115,9 +70,12 @@ Element function create_metamodels():
|
|
|
instantiate_node(pn, "Type", "Integer")
|
|
|
instantiate_link(pn, "Association", "P2T", "Place", "Transition")
|
|
|
instantiate_link(pn, "Association", "T2P", "Transition", "Place")
|
|
|
- instantiate_named(pn, "Association", "tokens", "Place", "Integer")
|
|
|
- instantiate_named(pn, "Association", "weight", "P2T", "Integer")
|
|
|
- instantiate_named(pn, "Association", "weight", "T2P", "Integer")
|
|
|
+ instantiate_link(pn, "Association", "Place_tokens", "Place", "Integer")
|
|
|
+ instantiate_attribute(pn, "Place_tokens", "name", "tokens")
|
|
|
+ instantiate_link(pn, "Association", "P2T_weight", "P2T", "Integer")
|
|
|
+ instantiate_attribute(pn, "P2T_weight", "name", "weight")
|
|
|
+ instantiate_link(pn, "Association", "T2P_weight", "T2P", "Integer")
|
|
|
+ instantiate_attribute(pn, "T2P_weight", "name", "weight")
|
|
|
|
|
|
set_model_constraints(pn, petrinet_constraints)
|
|
|
export_node("models/PetriNets", pn)
|