Class: Lutaml::XMI::Parsers::XML

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/xmi/parsers/xml.rb

Overview

Class for parsing .xmi schema files into ::Lutaml::Uml::Document

Constant Summary collapse

LOWER_VALUE_MAPPINGS =
{
  "0" => "C",
  "1" => "M",
}.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#xmi_cacheObject (readonly)

Returns the value of attribute xmi_cache.



17
18
19
# File 'lib/lutaml/xmi/parsers/xml.rb', line 17

def xmi_cache
  @xmi_cache
end

#xmi_root_modelObject (readonly)

Returns the value of attribute xmi_root_model.



17
18
19
# File 'lib/lutaml/xmi/parsers/xml.rb', line 17

def xmi_root_model
  @xmi_root_model
end

Class Method Details

.parse(xml, _options = {}) ⇒ Lutaml::Uml::Document

Parameters:

  • xml (String)

    path to xml

  • options (Hash)

    options for parsing

Returns:



23
24
25
26
# File 'lib/lutaml/xmi/parsers/xml.rb', line 23

def parse(xml, _options = {})
  xmi_model = get_xmi_model(xml)
  new.parse(xmi_model)
end

.serialize_generalization_by_name(xml, name) ⇒ Hash

Parameters:

  • xml (String)

    path to xml

  • name (String)

Returns:

  • (Hash)


46
47
48
49
# File 'lib/lutaml/xmi/parsers/xml.rb', line 46

def serialize_generalization_by_name(xml, name)
  xmi_model = get_xmi_model(xml)
  new.serialize_generalization_by_name(xmi_model, name)
end

.serialize_xmi(xml, with_gen: false) ⇒ Hash

Parameters:

  • xml (String)

    path to xml

  • with_gen (Boolean) (defaults to: false)

Returns:

  • (Hash)


31
32
33
34
# File 'lib/lutaml/xmi/parsers/xml.rb', line 31

def serialize_xmi(xml, with_gen: false)
  xmi_model = get_xmi_model(xml)
  new.serialize_xmi(xmi_model, with_gen: with_gen)
end

.serialize_xmi_to_liquid(xml) ⇒ Liquid::Drop

Parameters:

  • xml (String)

    path to xml

Returns:

  • (Liquid::Drop)


38
39
40
41
# File 'lib/lutaml/xmi/parsers/xml.rb', line 38

def serialize_xmi_to_liquid(xml)
  xmi_model = get_xmi_model(xml)
  new.serialize_xmi_to_liquid(xmi_model)
end

Instance Method Details

#parse(xmi_model) ⇒ Lutaml::Uml::Document

Parameters:

  • xmi_model (Shale::Mapper)

Returns:



68
69
70
71
72
73
# File 'lib/lutaml/xmi/parsers/xml.rb', line 68

def parse(xmi_model)
  set_xmi_model(xmi_model)
  serialized_hash = serialize_xmi(xmi_model)

  ::Lutaml::Uml::Document.new(serialized_hash)
end

#serialize_generalization_by_name(xmi_model, name) ⇒ Hash

Parameters:

  • xmi_model (Shale::Mapper)
  • name (String)

Returns:

  • (Hash)


94
95
96
97
98
99
100
# File 'lib/lutaml/xmi/parsers/xml.rb', line 94

def serialize_generalization_by_name(xmi_model, name)
  set_xmi_model(xmi_model)
  klass = find_klass_packaged_element_by_name(name)
  serialized_hash = serialize_generalization(klass)

  ::Lutaml::XMI::GeneralizationDrop.new(serialized_hash)
end

#serialize_xmi(xmi_model, with_gen: false) ⇒ Object

return [Hash]

Parameters:

  • xmi_model (Shale::Mapper)


77
78
79
80
# File 'lib/lutaml/xmi/parsers/xml.rb', line 77

def serialize_xmi(xmi_model, with_gen: false)
  set_xmi_model(xmi_model)
  serialize_to_hash(xmi_model, with_gen: with_gen)
end

#serialize_xmi_to_liquid(xmi_model) ⇒ Object

return [Liquid::Drop]

Parameters:

  • xmi_model (Shale::Mapper)


84
85
86
87
88
89
# File 'lib/lutaml/xmi/parsers/xml.rb', line 84

def serialize_xmi_to_liquid(xmi_model)
  set_xmi_model(xmi_model)
  serialized_hash = serialize_xmi(xmi_model, with_gen: true)

  ::Lutaml::XMI::RootDrop.new(serialized_hash)
end

#set_xmi_model(xmi_model) ⇒ Object

Parameters:

  • xmi_model (Shale::Mapper)


61
62
63
64
# File 'lib/lutaml/xmi/parsers/xml.rb', line 61

def set_xmi_model(xmi_model)
  @xmi_cache = {}
  @xmi_root_model = xmi_model
end