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)


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

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) ⇒ Hash

Parameters:

  • xml (String)

    path to xml

Returns:

  • (Hash)


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

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

Instance Method Details

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

Parameters:

  • xmi_model (Shale::Mapper)

Returns:



54
55
56
57
58
59
60
# File 'lib/lutaml/xmi/parsers/xml.rb', line 54

def parse(xmi_model)
  @xmi_cache = {}
  @xmi_root_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)


73
74
75
76
77
78
# File 'lib/lutaml/xmi/parsers/xml.rb', line 73

def serialize_generalization_by_name(xmi_model, name)
  @xmi_cache = {}
  @xmi_root_model = xmi_model
  klass = find_klass_packaged_element_by_name(name)
  serialize_generalization(klass)
end

#serialize_xmi(xmi_model) ⇒ Object

return [Hash]

Parameters:

  • xmi_model (Shale::Mapper)


64
65
66
67
68
# File 'lib/lutaml/xmi/parsers/xml.rb', line 64

def serialize_xmi(xmi_model)
  @xmi_cache = {}
  @xmi_root_model = xmi_model
  serialize_to_hash(xmi_model)
end