Class: Lutaml::Qea::Factory::ReferenceResolver
- Inherits:
-
Object
- Object
- Lutaml::Qea::Factory::ReferenceResolver
- Defined in:
- lib/lutaml/qea/factory/reference_resolver.rb
Overview
Resolves references between EA and UML elements Maps EA GUIDs to UML xmi_ids and maintains object relationships
Instance Method Summary collapse
-
#clear ⇒ void
Clear all mappings.
-
#initialize ⇒ ReferenceResolver
constructor
Initialize empty resolver.
-
#register(ea_guid, uml_element) ⇒ void
Register EA GUID to UML element mapping.
-
#register_object_name(object_id, name) ⇒ void
Register object ID to name mapping.
-
#registered?(ea_guid) ⇒ Boolean
Check if GUID is registered.
-
#resolve(ea_guid) ⇒ Object?
Resolve EA GUID to UML element.
-
#resolve_object_name(object_id) ⇒ String?
Get object name by object ID.
-
#resolve_xmi_id(ea_guid) ⇒ String?
Get UML xmi_id by EA GUID.
-
#stats ⇒ Hash
Get statistics.
Constructor Details
#initialize ⇒ ReferenceResolver
Initialize empty resolver
10 11 12 13 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 10 def initialize @guid_to_element = {} @object_id_to_name = {} end |
Instance Method Details
#clear ⇒ void
This method returns an undefined value.
Clear all mappings
72 73 74 75 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 72 def clear @guid_to_element.clear @object_id_to_name.clear end |
#register(ea_guid, uml_element) ⇒ void
This method returns an undefined value.
Register EA GUID to UML element mapping
19 20 21 22 23 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 19 def register(ea_guid, uml_element) return if ea_guid.nil? || uml_element.nil? @guid_to_element[normalize_guid(ea_guid)] = uml_element end |
#register_object_name(object_id, name) ⇒ void
This method returns an undefined value.
Register object ID to name mapping
29 30 31 32 33 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 29 def register_object_name(object_id, name) return if object_id.nil? @object_id_to_name[object_id] = name end |
#registered?(ea_guid) ⇒ Boolean
Check if GUID is registered
64 65 66 67 68 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 64 def registered?(ea_guid) return false if ea_guid.nil? @guid_to_element.key?(normalize_guid(ea_guid)) end |
#resolve(ea_guid) ⇒ Object?
Resolve EA GUID to UML element
38 39 40 41 42 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 38 def resolve(ea_guid) return nil if ea_guid.nil? @guid_to_element[normalize_guid(ea_guid)] end |
#resolve_object_name(object_id) ⇒ String?
Get object name by object ID
47 48 49 50 51 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 47 def resolve_object_name(object_id) return nil if object_id.nil? @object_id_to_name[object_id] end |
#resolve_xmi_id(ea_guid) ⇒ String?
Get UML xmi_id by EA GUID
56 57 58 59 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 56 def resolve_xmi_id(ea_guid) element = resolve(ea_guid) element&.xmi_id end |
#stats ⇒ Hash
Get statistics
79 80 81 82 83 84 |
# File 'lib/lutaml/qea/factory/reference_resolver.rb', line 79 def stats { total_elements: @guid_to_element.size, total_objects: @object_id_to_name.size, } end |