Class: Ea::Transformers::UmlToXmi::IdGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/ea/transformers/uml_to_xmi/id_generator.rb

Overview

Allocates xmi:id values for UML elements during lossy serialization.

Strategy:

1. If the element already has an `xmi_id` (set by the QEA factory
 during parsing), reuse it.
2. Otherwise synthesize a stable `EAID_…` from a counter.

This class is used only by the lossy Transformer path. The full-fidelity QeaToXmi path uses QeaToXmi::GuidFormat to normalize raw EA GUIDs.

Constant Summary collapse

PREFIX =
"EAID"
MODEL_ID =
"#{PREFIX}_EA_MODEL"

Instance Method Summary collapse

Constructor Details

#initializeIdGenerator

Returns a new instance of IdGenerator.



20
21
22
23
# File 'lib/ea/transformers/uml_to_xmi/id_generator.rb', line 20

def initialize
  @assigned = {} # object_id → xmi:id
  @counter = 0
end

Instance Method Details

#eaid_for(element) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/ea/transformers/uml_to_xmi/id_generator.rb', line 25

def eaid_for(element)
  key = element.object_id
  @assigned[key] ||= begin
    @counter += 1
    extract_id(element) || synthesize(@counter)
  end
end

#model_idObject



33
34
35
# File 'lib/ea/transformers/uml_to_xmi/id_generator.rb', line 33

def model_id
  MODEL_ID
end