Module: Ea::Sources::Xmi::TypeClassifierMap

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

Overview

Maps XMI's xmi:type discriminator on packaged elements to the concrete Ea::Model::Classifier subclass. New classifier kinds = one entry here, nothing else changes (OCP).

Constant Summary collapse

LOOKUP =
{
  "uml:Class" => "Ea::Model::Klass",
  "uml:DataType" => "Ea::Model::DataType",
  "uml:PrimitiveType" => "Ea::Model::PrimitiveType",
  "uml:Enumeration" => "Ea::Model::Enumeration",
  "uml:Interface" => "Ea::Model::Interface",
}.freeze

Class Method Summary collapse

Class Method Details

.class_for(xmi_type) ⇒ Object



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

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

  Object.const_get(name)
end

.classifier_type?(xmi_type) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/ea/sources/xmi/type_classifier_map.rb', line 27

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