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

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.



13
14
15
# File 'lib/lutaml/xmi/parsers/xml.rb', line 13

def xmi_cache
  @xmi_cache
end

#xmi_root_modelObject (readonly)

Returns the value of attribute xmi_root_model.



13
14
15
# File 'lib/lutaml/xmi/parsers/xml.rb', line 13

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:



19
20
21
22
# File 'lib/lutaml/xmi/parsers/xml.rb', line 19

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)


42
43
44
45
# File 'lib/lutaml/xmi/parsers/xml.rb', line 42

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)


27
28
29
30
# File 'lib/lutaml/xmi/parsers/xml.rb', line 27

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)


34
35
36
37
# File 'lib/lutaml/xmi/parsers/xml.rb', line 34

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:



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

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)


90
91
92
93
94
95
96
97
# File 'lib/lutaml/xmi/parsers/xml.rb', line 90

def serialize_generalization_by_name(xmi_model, name)
  set_xmi_model(xmi_model)
  model = xmi_model.model
  klass = find_klass_packaged_element_by_name(name)
  serialized_hash = build_klass_hash(klass, model, with_gen: true)

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

#serialize_xmi(xmi_model, with_gen: false) ⇒ Object

return [Hash]

Parameters:

  • xmi_model (Shale::Mapper)


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

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)


80
81
82
83
84
85
# File 'lib/lutaml/xmi/parsers/xml.rb', line 80

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)


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

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