Class: Ea::Sources::Xmi::RelationshipBuilder
- Inherits:
-
Object
- Object
- Ea::Sources::Xmi::RelationshipBuilder
- 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
-
#root ⇒ Object
readonly
Returns the value of attribute root.
Instance Method Summary collapse
- #build_all ⇒ Object
- #build_one(element) ⇒ Object
-
#initialize(root) ⇒ RelationshipBuilder
constructor
A new instance of RelationshipBuilder.
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
#root ⇒ Object (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_all ⇒ Object
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 |