Module: Ea::Sources::Xmi::RelationshipTypeMap

Defined in:
lib/ea/sources/xmi/relationship_type_map.rb

Overview

Maps XMI's xmi:type discriminator for relationship-shaped packaged elements (uml:Association, uml:Generalization, etc.) to the concrete Ea::Model::Relationship subclass.

Constant Summary collapse

LOOKUP =
{
  "uml:Association" => "Ea::Model::Association",
  "uml:Generalization" => "Ea::Model::Generalization",
  "uml:Realization" => "Ea::Model::Realization",
  "uml:Dependency" => "Ea::Model::Dependency",
  "uml:Usage" => "Ea::Model::Dependency",
  "uml:Abstraction" => "Ea::Model::Dependency",
}.freeze

Class Method Summary collapse

Class Method Details

.class_for(xmi_type) ⇒ Object



21
22
23
24
25
26
# File 'lib/ea/sources/xmi/relationship_type_map.rb', line 21

def class_for(xmi_type)
  name = LOOKUP[xmi_type]
  return nil unless name

  Object.const_get(name)
end

.relationship_type?(xmi_type) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/ea/sources/xmi/relationship_type_map.rb', line 28

def relationship_type?(xmi_type)
  LOOKUP.key?(xmi_type)
end