Class: Lutaml::Xmi::Parsers::Xml

Inherits:
Object
  • Object
show all
Includes:
Converter::XmiToUml, XmiBase
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

Methods included from XmiBase

#cardinality_min_max_value, #connector_labels, #connector_lookup, #connector_name_by_source_or_target, #connector_node_by_id, #connector_source_name, #fetch_assoc_connector, #fetch_connector, #fetch_connector_name, #fetch_definition_node_value, #fetch_element, #fetch_owned_attribute_node, #generalization_association, #get_ns_by_xmi_id, included, #loopup_assoc_def, #member_end_name, #serialize_member_end, #serialize_member_type, #serialize_owned_type, #set_xmi_model, #xmi_index

Methods included from Converter::XmiToUml

#assign_general_basic_props, #assign_general_properties, #assign_parent_generalization, #assign_stereotype, #build_uml_general_node, #create_uml_assoc_generalizations, #create_uml_associations, #create_uml_attribute, #create_uml_attributes, #create_uml_cardinality, #create_uml_class, #create_uml_class_attributes, #create_uml_classes, #create_uml_constraints, #create_uml_data_types, #create_uml_diagrams, #create_uml_document, #create_uml_enums, #create_uml_generalization, #create_uml_operations, #create_uml_package, #create_uml_packages, #create_uml_values, #diagram_lookup, #find_owner_attribute_name, #get_next_general_node_id, #get_uml_general, #get_uml_general_attributes, #loop_general_item, #set_uml_generalization

Instance Attribute Details

#id_name_mappingObject (readonly)

Returns the value of attribute id_name_mapping.



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

def id_name_mapping
  @id_name_mapping
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:



25
26
27
28
# File 'lib/lutaml/xmi/parsers/xml.rb', line 25

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

.serialize_xmi_to_liquid(xml, guidance = nil) ⇒ Liquid::Drop

Parameters:

  • xml (String)

    path to xml

Returns:

  • (Liquid::Drop)


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

def serialize_xmi_to_liquid(xml, guidance = nil)
  xmi_model = get_xmi_model(xml)
  new.serialize_xmi_to_liquid(xmi_model, guidance)
end

Instance Method Details

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

Parameters:

  • xmi_model (Lutaml::Model::Serializable)

Returns:



40
41
42
43
# File 'lib/lutaml/xmi/parsers/xml.rb', line 40

def parse(xmi_model)
  set_xmi_model(xmi_model)
  create_uml_document(xmi_model)
end

#serialize_xmi_to_liquid(xmi_model, guidance = nil) ⇒ Object

return [Liquid::Drop]

Parameters:

  • xmi_model (Lutaml::Model::Serializable)
  • guidance_yaml (String)


48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/lutaml/xmi/parsers/xml.rb', line 48

def serialize_xmi_to_liquid(xmi_model, guidance = nil)
  set_xmi_model(xmi_model)
  uml_document = create_uml_document(xmi_model)
  lookup = XmiLookupService.new(@xmi_root_model, @id_name_mapping)
  options = {
    xmi_root_model: @xmi_root_model,
    id_name_mapping: @id_name_mapping,
    lookup: lookup,
    with_gen: true,
    with_absolute_path: true,
  }
  ::Lutaml::Xmi::LiquidDrops::RootDrop.new(uml_document, guidance,
                                           options)
end