Class: Lutaml::Qea::Factory::AssociationBuilder
- Inherits:
-
BaseTransformer
- Object
- BaseTransformer
- Lutaml::Qea::Factory::AssociationBuilder
- Defined in:
- lib/lutaml/qea/factory/association_builder.rb
Constant Summary collapse
- ASSOC_TYPES =
["Association", "Aggregation", "Composition"].freeze
Instance Attribute Summary
Attributes inherited from BaseTransformer
Instance Method Summary collapse
- #build_connector_attribute(ea_connector, object_id, obj, obj_pkg_name) ⇒ Object
-
#create_association_attribute(name:, type:, type_xmi_id:, association_xmi_id:, cardinality:, definition:, gen_name:, name_ns:, type_ns:, is_src: true) ⇒ Object
rubocop:disable Metrics/ParameterLists.
- #load_association_attributes(object_id) ⇒ Object
- #load_class_associations(object_id, object_guid) ⇒ Object
Methods inherited from BaseTransformer
#initialize, #transform, #transform_collection
Constructor Details
This class inherits a constructor from Lutaml::Qea::Factory::BaseTransformer
Instance Method Details
#build_connector_attribute(ea_connector, object_id, obj, obj_pkg_name) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/lutaml/qea/factory/association_builder.rb', line 39 def build_connector_attribute(ea_connector, object_id, obj, obj_pkg_name) if ea_connector.start_object_id == object_id build_end_attribute(ea_connector, obj, obj_pkg_name) elsif ea_connector.end_object_id == object_id build_start_attribute(ea_connector, obj, obj_pkg_name) end end |
#create_association_attribute(name:, type:, type_xmi_id:, association_xmi_id:, cardinality:, definition:, gen_name:, name_ns:, type_ns:, is_src: true) ⇒ Object
rubocop:disable Metrics/ParameterLists
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/lutaml/qea/factory/association_builder.rb', line 48 def create_association_attribute( # rubocop:disable Metrics/ParameterLists name:, type:, type_xmi_id:, association_xmi_id:, cardinality:, definition:, gen_name:, name_ns:, type_ns:, is_src: true ) Lutaml::Uml::GeneralAttribute.new.tap do |attr| assign_assoc_attr_basic(attr, name, type, gen_name, definition, name_ns, type_ns) attr.xmi_id = normalize_guid_to_xmi_format(type_xmi_id, "EAID") attr.association = normalize_guid_to_xmi_format( association_xmi_id, "EAID" ) attr.has_association = true attr.id = normalize_guid_to_xmi_src_dst_format( association_xmi_id, "EAID", is_src ) attr.cardinality = build_cardinality(cardinality) end end |
#load_association_attributes(object_id) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/lutaml/qea/factory/association_builder.rb', line 25 def load_association_attributes(object_id) return [] if object_id.nil? assoc_connectors = database.connectors_for_object(object_id) .select { |c| ASSOC_TYPES.include?(c.connector_type) } obj = find_object_by_id(object_id) obj_pkg_name = find_package_name(obj&.package_id) assoc_connectors.filter_map do |ea_connector| build_connector_attribute(ea_connector, object_id, obj, obj_pkg_name) end end |
#load_class_associations(object_id, object_guid) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/lutaml/qea/factory/association_builder.rb', line 11 def load_class_associations(object_id, object_guid) return [] if object_id.nil? normalized_owner_xmi_id = normalize_guid_to_xmi_format(object_guid, "EAID") assoc_connectors = database.connectors_for_object(object_id) .select { |c| ASSOC_TYPES.include?(c.connector_type) } assoc_connectors.filter_map do |ea_connector| build_association(ea_connector, object_id, normalized_owner_xmi_id) end end |