Class: Ea::Transformers::UmlToXmi::IdGenerator
- Inherits:
-
Object
- Object
- Ea::Transformers::UmlToXmi::IdGenerator
- 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
- #eaid_for(element) ⇒ Object
-
#initialize ⇒ IdGenerator
constructor
A new instance of IdGenerator.
- #model_id ⇒ Object
Constructor Details
#initialize ⇒ IdGenerator
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_id ⇒ Object
33 34 35 |
# File 'lib/ea/transformers/uml_to_xmi/id_generator.rb', line 33 def model_id MODEL_ID end |