|
@@ -25,12 +25,32 @@ Element function create_metamodels():
|
|
|
model_add_edge(scd, "association_attr", "Association", "String")
|
|
|
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_value(scd, "upper_multiplicity", "upper_multiplicity")
|
|
|
model_add_edge(scd, "class_to_lm", "Class", "Integer")
|
|
|
- model_add_edge(scd, "class_to_um", "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")
|
|
@@ -51,12 +71,39 @@ 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, "class_to_um", "Association")
|
|
|
- retype(scd, "lm_name", "association_attr")
|
|
|
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")
|
|
|
|
|
|
export_node("models/SimpleClassDiagrams", scd)
|
|
|
|