Class: Lutaml::Qea::Factory::EnumTransformer

Inherits:
BaseTransformer show all
Defined in:
lib/lutaml/qea/factory/enum_transformer.rb

Overview

Transforms EA objects (Enumeration type) to UML enums

Instance Attribute Summary

Attributes inherited from BaseTransformer

#database

Instance Method Summary collapse

Methods inherited from BaseTransformer

#initialize, #transform_collection

Constructor Details

This class inherits a constructor from Lutaml::Qea::Factory::BaseTransformer

Instance Method Details

#assign_enum_basic(enum, ea_object) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/lutaml/qea/factory/enum_transformer.rb', line 26

def assign_enum_basic(enum, ea_object)
  enum.name = ea_object.name
  enum.xmi_id = normalize_guid_to_xmi_format(ea_object.ea_guid,
                                             "EAID")
  enum.visibility = map_visibility(ea_object.visibility)
  enum.stereotype = [ea_object.stereotype] if valid_stereotype?(ea_object)
  enum.definition = ea_object.note if note_present?(ea_object)
end

#assign_enum_features(enum, ea_object) ⇒ Object



39
40
41
42
# File 'lib/lutaml/qea/factory/enum_transformer.rb', line 39

def assign_enum_features(enum, ea_object)
  enum.values = load_enum_values(ea_object.ea_object_id)
  enum.tagged_values = load_tagged_values(ea_object.ea_guid)
end

#note_present?(ea_object) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/lutaml/qea/factory/enum_transformer.rb', line 35

def note_present?(ea_object)
  ea_object.note && !ea_object.note.empty?
end

#transform(ea_object) ⇒ Lutaml::Uml::Enum

Transform EA object to UML enum

Parameters:

  • ea_object (EaObject)

    EA object model

Returns:



16
17
18
19
20
21
22
23
24
# File 'lib/lutaml/qea/factory/enum_transformer.rb', line 16

def transform(ea_object)
  return nil if ea_object.nil?
  return nil unless enum?(ea_object)

  Lutaml::Uml::Enum.new.tap do |enum|
    assign_enum_basic(enum, ea_object)
    assign_enum_features(enum, ea_object)
  end
end