Class: Ea::Transformers::QeaToXmi::ExtensionSerializer
- Inherits:
-
Object
- Object
- Ea::Transformers::QeaToXmi::ExtensionSerializer
- Defined in:
- lib/ea/transformers/qea_to_xmi/extension_serializer.rb
Overview
Serializes the EA-specific content of <xmi:Extension>.
The xmi gem models the structural XMI tree (model, packages,
classes, attributes) but does not represent EA's per-element
extension metadata. This class produces the inner XML for the
<xmi:Extension> element as three sibling sections:
<elements> — one <element> per package/classifier, carrying
<model>, <properties documentation="...">,
<style appearance="..."> and nested <tags>.
<connectors> — one <connector> per relationship, with
source/target <model> blocks.
<diagrams> — one <diagram> per diagram, with placed
<element> children referencing subjects.
The Transformer injects this string into the serialized XMI's
empty <xmi:Extension> placeholder.
Sparx XMI is the canonical shape; the xmi gem's parser does not
model these sections, so output containing them is not
round-trippable through Xmi::Sparx::Root.parse_xml.
Instance Method Summary collapse
-
#call ⇒ String
Inner XML for xmi:Extension; empty if no elements/connectors/diagrams to emit.
-
#initialize(database, context) ⇒ ExtensionSerializer
constructor
A new instance of ExtensionSerializer.
Constructor Details
#initialize(database, context) ⇒ ExtensionSerializer
Returns a new instance of ExtensionSerializer.
28 29 30 31 |
# File 'lib/ea/transformers/qea_to_xmi/extension_serializer.rb', line 28 def initialize(database, context) @database = database @context = context end |
Instance Method Details
#call ⇒ String
Returns inner XML for xmi:Extension; empty if no elements/connectors/diagrams to emit.
35 36 37 38 39 40 41 42 43 |
# File 'lib/ea/transformers/qea_to_xmi/extension_serializer.rb', line 35 def call sections = [ build_elements_section, build_connectors_section, build_primitivetypes_section, build_diagrams_section ].reject(&:empty?) sections.join("\n") end |