Class: Lutaml::Qea::Factory::TransformerRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/qea/factory/transformer_registry.rb

Overview

Registry for EA to UML transformers Implements the Registry pattern for transformer lookup

Class Method Summary collapse

Class Method Details

.all_transformersHash

Get all registered transformers

Returns:

  • (Hash)

    All registered transformers



32
33
34
# File 'lib/lutaml/qea/factory/transformer_registry.rb', line 32

def all_transformers
  registry.dup
end

.clearObject

Clear all registrations (mainly for testing)



44
45
46
# File 'lib/lutaml/qea/factory/transformer_registry.rb', line 44

def clear
  @registry = {}
end

.register(ea_type, transformer_class) ⇒ Object

Register a transformer for an EA type

Parameters:

  • ea_type (Symbol, String)

    EA model type

  • transformer_class (Class)

    Transformer class



19
20
21
# File 'lib/lutaml/qea/factory/transformer_registry.rb', line 19

def register(ea_type, transformer_class)
  registry[ea_type.to_sym] = transformer_class
end

.register_defaultsObject

Register default transformers



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/lutaml/qea/factory/transformer_registry.rb', line 55

def register_defaults
  # Object types
  register(:class, ClassTransformer)
  register(:interface, ClassTransformer)
  register(:package, PackageTransformer)

  # Connector types
  register(:association, AssociationTransformer)
  register(:generalization, GeneralizationTransformer)

  # Other types
  register(:attribute, AttributeTransformer)
  register(:operation, OperationTransformer)
  register(:diagram, DiagramTransformer)
end

.registered?(ea_type) ⇒ Boolean

Check if a transformer is registered for a type

Parameters:

  • ea_type (Symbol, String)

    EA model type

Returns:

  • (Boolean)

    True if registered



39
40
41
# File 'lib/lutaml/qea/factory/transformer_registry.rb', line 39

def registered?(ea_type)
  registry.key?(ea_type.to_sym)
end

.registryHash

Get or initialize the registry

Returns:

  • (Hash)

    Registry hash



12
13
14
# File 'lib/lutaml/qea/factory/transformer_registry.rb', line 12

def registry
  @registry ||= {}
end

.reset_defaultsObject

Reset to default registrations



49
50
51
52
# File 'lib/lutaml/qea/factory/transformer_registry.rb', line 49

def reset_defaults
  clear
  register_defaults
end

.transformer_for(ea_type) ⇒ Class?

Get transformer for an EA type

Parameters:

  • ea_type (Symbol, String)

    EA model type

Returns:

  • (Class, nil)

    Transformer class or nil if not found



26
27
28
# File 'lib/lutaml/qea/factory/transformer_registry.rb', line 26

def transformer_for(ea_type)
  registry[ea_type.to_sym]
end