Class: Ea::Transformers::QeaToXmi::Context
- Inherits:
-
Object
- Object
- Ea::Transformers::QeaToXmi::Context
- Defined in:
- lib/ea/transformers/qea_to_xmi/context.rb
Overview
Shared state passed across the walk.
Wraps the Qea::Database and provides:
- ID-derivation helpers (
xmi_id_for,end_xmi_id_for) backed by GuidFormat - delegated database lookups (objects, packages, attributes, etc.)
The Qea::Database already maintains its own lookup indexes (object-by-id, connectors-by-object, attributes-by-object, etc.). This class delegates to those rather than re-indexing — single source of truth lives on the database.
Instance Attribute Summary collapse
-
#database ⇒ Object
readonly
Returns the value of attribute database.
-
#id_allocator ⇒ Object
readonly
Returns the value of attribute id_allocator.
Instance Method Summary collapse
- #attributes_for(object_id) ⇒ Array<Ea::Qea::Models::EaAttribute>
- #child_packages(package_id) ⇒ Array<Ea::Qea::Models::EaPackage>
-
#connectors_for(object_id) ⇒ Array<Ea::Qea::Models::EaConnector>
Connectors where the object is on either side.
-
#connectors_starting_at(object_id) ⇒ Array<Ea::Qea::Models::EaConnector>
Connectors where this object is the start (source) — used to decide which package owns a relationship connector.
- #end_xmi_id_for(connector_xmi_id, side:) ⇒ String
-
#initialize(database:) ⇒ Context
constructor
A new instance of Context.
- #object_by_guid(ea_guid) ⇒ Ea::Qea::Models::EaObject?
- #object_by_id(object_id) ⇒ Ea::Qea::Models::EaObject?
- #objects_in_package(package_id) ⇒ Array<Ea::Qea::Models::EaObject>
- #operations_for(object_id) ⇒ Array<Ea::Qea::Models::EaOperation>
- #params_for_operation(operation_id) ⇒ Array<Ea::Qea::Models::EaOperationParam>
- #xmi_id_for(record, prefix: "EAID") ⇒ String?
Constructor Details
#initialize(database:) ⇒ Context
Returns a new instance of Context.
20 21 22 23 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 20 def initialize(database:) @database = database @id_allocator = IdAllocator.new end |
Instance Attribute Details
#database ⇒ Object (readonly)
Returns the value of attribute database.
18 19 20 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 18 def database @database end |
#id_allocator ⇒ Object (readonly)
Returns the value of attribute id_allocator.
18 19 20 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 18 def id_allocator @id_allocator end |
Instance Method Details
#attributes_for(object_id) ⇒ Array<Ea::Qea::Models::EaAttribute>
71 72 73 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 71 def attributes_for(object_id) database.attributes_for_object(object_id) end |
#child_packages(package_id) ⇒ Array<Ea::Qea::Models::EaPackage>
59 60 61 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 59 def child_packages(package_id) database.child_packages_for(package_id) end |
#connectors_for(object_id) ⇒ Array<Ea::Qea::Models::EaConnector>
Connectors where the object is on either side.
90 91 92 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 90 def connectors_for(object_id) database.connectors_for_object(object_id) end |
#connectors_starting_at(object_id) ⇒ Array<Ea::Qea::Models::EaConnector>
Connectors where this object is the start (source) — used to decide which package owns a relationship connector.
98 99 100 101 102 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 98 def connectors_starting_at(object_id) database.connectors_for_object(object_id).select do |conn| conn.start_object_id == object_id end end |
#end_xmi_id_for(connector_xmi_id, side:) ⇒ String
39 40 41 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 39 def end_xmi_id_for(connector_xmi_id, side:) GuidFormat.connector_end_xmi_id(connector_xmi_id, side: side) end |
#object_by_guid(ea_guid) ⇒ Ea::Qea::Models::EaObject?
47 48 49 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 47 def object_by_guid(ea_guid) database.find_object_by_guid(ea_guid) end |
#object_by_id(object_id) ⇒ Ea::Qea::Models::EaObject?
53 54 55 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 53 def object_by_id(object_id) database.find_object(object_id) end |
#objects_in_package(package_id) ⇒ Array<Ea::Qea::Models::EaObject>
65 66 67 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 65 def objects_in_package(package_id) database.objects_in_package(package_id) end |
#operations_for(object_id) ⇒ Array<Ea::Qea::Models::EaOperation>
77 78 79 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 77 def operations_for(object_id) database.operations_for_object(object_id) end |
#params_for_operation(operation_id) ⇒ Array<Ea::Qea::Models::EaOperationParam>
83 84 85 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 83 def params_for_operation(operation_id) database.operation_params_for(operation_id) end |
#xmi_id_for(record, prefix: "EAID") ⇒ String?
30 31 32 33 34 |
# File 'lib/ea/transformers/qea_to_xmi/context.rb', line 30 def xmi_id_for(record, prefix: "EAID") return nil unless record&.ea_guid GuidFormat.ea_guid_to_xmi_id(record.ea_guid, prefix: prefix) end |