Class: Ea::Sources::Xmi::RelationshipBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ea/sources/xmi/relationship_builder.rb

Overview

Translates XMI relationship elements (uml:Association, uml:Generalization, uml:Realization, uml:Dependency) into the appropriate Ea::Model::Relationship subclass.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(root) ⇒ RelationshipBuilder

Returns a new instance of RelationshipBuilder.



12
13
14
# File 'lib/ea/sources/xmi/relationship_builder.rb', line 12

def initialize(root)
  @root = root
end

Instance Attribute Details

#rootObject (readonly)

Returns the value of attribute root.



10
11
12
# File 'lib/ea/sources/xmi/relationship_builder.rb', line 10

def root
  @root
end

Instance Method Details

#build_allObject



16
17
18
19
20
21
22
23
24
25
# File 'lib/ea/sources/xmi/relationship_builder.rb', line 16

def build_all
  relationships = []
  walk(root.model) do |element|
    next unless RelationshipTypeMap.relationship_type?(element.type)

    rel = build_one(element)
    relationships << rel if rel
  end
  relationships
end

#build_one(element) ⇒ Object



27
28
29
30
31
32
# File 'lib/ea/sources/xmi/relationship_builder.rb', line 27

def build_one(element)
  klass = RelationshipTypeMap.class_for(element.type)
  args = common_args(element)
  args.merge!(specific_args_for(klass, element))
  klass.new(**args)
end