Class: Lutaml::UmlRepository::StaticSite::DataTransformer

Inherits:
Object
  • Object
show all
Includes:
Lutaml::Uml::ModelHelpers, AssociationSerialization
Defined in:
lib/lutaml/uml_repository/static_site/data_transformer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Lutaml::Uml::ModelHelpers

#class_type_for, #format_cardinality, #normalize_stereotypes, #package_path_for, #parse_cardinality, #qualified_name_for

Constructor Details

#initialize(repository, options = {}) ⇒ DataTransformer

Returns a new instance of DataTransformer.



25
26
27
28
29
30
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 25

def initialize(repository, options = {})
  @repository = repository
  @options = default_options.merge(options)
  @id_generator = IDGenerator.new
  @generalization_map = build_generalization_map
end

Instance Attribute Details

#id_generatorObject (readonly)

Returns the value of attribute id_generator.



23
24
25
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 23

def id_generator
  @id_generator
end

#optionsObject (readonly)

Returns the value of attribute options.



23
24
25
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 23

def options
  @options
end

#repositoryObject (readonly)

Returns the value of attribute repository.



23
24
25
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 23

def repository
  @repository
end

Instance Method Details

#transformObject



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 32

def transform
  {
    metadata: Serializers::MetadataBuilder.new(repository).build,
    packageTree: Serializers::PackageTreeBuilder.new(repository, id_generator).build,
    packages: Serializers::PackageSerializer.new(repository, id_generator, options).build_map,
    classes: Serializers::ClassSerializer.new(repository, id_generator, options, inheritance_resolver).build_map,
    attributes: Serializers::AttributeSerializer.new(repository, id_generator, options).build_map,
    associations: build_associations_map,
    operations: Serializers::OperationSerializer.new(repository, id_generator).build_map,
    diagrams: (options[:include_diagrams] ? Serializers::DiagramSerializer.new(repository, id_generator, options).build_map : {}),
  }
end