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]