Module: Ea::Sources::Qea::ObjectClassifierMap

Defined in:
lib/ea/sources/qea/object_classifier_map.rb

Overview

Maps EA's t_object.Object_Type discriminator to the concrete Ea::Model::Classifier subclass that should be produced. New classifier kinds = one entry here, nothing else changes (OCP).

Constant Summary collapse

LOOKUP =

EA Object_Type → Model class. Unknown types default to Klass — the most generic classifier.

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

Class Method Summary collapse

Class Method Details

.class_for(object_type) ⇒ Object



24
25
26
27
# File 'lib/ea/sources/qea/object_classifier_map.rb', line 24

def class_for(object_type)
  name = LOOKUP[object_type] || "Ea::Model::Klass"
  Object.const_get(name)
end

.model_kind_for(object_type) ⇒ Object



29
30
31
32
# File 'lib/ea/sources/qea/object_classifier_map.rb', line 29

def model_kind_for(object_type)
  cls = class_for(object_type)
  cls.new.model_kind
end