lib/lutaml/xmi/parsers/xml.rb in lutaml-0.9.7 vs lib/lutaml/xmi/parsers/xml.rb in lutaml-0.9.8

- old
+ new

@@ -335,21 +335,30 @@ if link.start == owner_xmi_id xmi_id = link.end source_or_target = :target end - member_end = member_end_name(xmi_id, source_or_target) + member_end = member_end_name(xmi_id, source_or_target, link.name) [member_end, xmi_id] end # @param xmi_id [String] # @param source_or_target [Symbol] # @return [String] - def member_end_name(xmi_id, source_or_target) - connector_labels(xmi_id, source_or_target) || - lookup_entity_name(xmi_id) || - connector_name_by_source_or_target(xmi_id, source_or_target) + def member_end_name(xmi_id, source_or_target, link_name) + connector_label = connector_labels(xmi_id, source_or_target) + entity_name = lookup_entity_name(xmi_id) + connector_name = connector_name_by_source_or_target( + xmi_id, source_or_target + ) + + case link_name + when "Aggregation" + connector_label || entity_name || connector_name + else + entity_name || connector_name + end end # @param owner_xmi_id [String] # @param link [Shale::Mapper] # @param link_member_name [String] @@ -407,10 +416,10 @@ member_end_type = "inheritance" xmi_id = link.end source_or_target = :target end - member_end = member_end_name(xmi_id, source_or_target) + member_end = member_end_name(xmi_id, source_or_target, link.name) member_end_cardinality, _member_end_attribute_name = fetch_owned_attribute_node(xmi_id) [member_end, member_end_type, member_end_cardinality, nil, xmi_id]