|
@@ -19,6 +19,7 @@ Boolean function is_nominal_subtype(metamodel : Element, subclass : Element, sup
|
|
|
Element new_superclass
|
|
|
Element result
|
|
|
|
|
|
+ log((("Nominal subtype? " + cast_e2s(subclass)) + " --|> ") + cast_e2s(superclass))
|
|
|
superclasses = get_superclasses(metamodel, subclass)
|
|
|
|
|
|
while (0 < list_len(superclasses)):
|
|
@@ -126,8 +127,14 @@ String function conformance_scd(model : Element):
|
|
|
Integer lower_val
|
|
|
Integer upper_val
|
|
|
check_type = set_pop(check_list)
|
|
|
+ log("Lookup!")
|
|
|
+ log(cast_e2s(check_type))
|
|
|
+ log(cast_e2s(reverseNameLookup(model, check_type)))
|
|
|
+ log(cast_e2s(reverseNameLookup(metamodel, check_type)))
|
|
|
lower_val = read_attribute(metamodel, reverseNameLookup(metamodel, check_type), "target_lower_cardinality")
|
|
|
upper_val = read_attribute(metamodel, reverseNameLookup(metamodel, check_type), "target_upper_cardinality")
|
|
|
+ log("Look up " + cast_e2s(element))
|
|
|
+ log(" " + cast_e2s(check_type))
|
|
|
instances = list_len(allIncomingAssociationInstances(model, element, check_type))
|
|
|
if (element_neq(lower_val, read_root())):
|
|
|
// A lower multiplicity was defined at the target
|