MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 13.59.226.183
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/ruby/vendor_ruby/puppet/vendor/rgen/lib/ea_support/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/ruby/vendor_ruby/puppet/vendor/rgen/lib/ea_support/ea_support.rb
require 'ea_support/uml13_ea_metamodel'
require 'ea_support/uml13_ea_metamodel_ext'
require 'ea_support/uml13_to_uml13_ea'
require 'ea_support/uml13_ea_to_uml13'
require 'ea_support/id_store'
require 'rgen/serializer/xmi11_serializer'
require 'rgen/instantiator/xmi11_instantiator'
require 'rgen/environment'

module EASupport
  
  FIXMAP = {
    :tags => {
      "EAStub" => proc { |tag, attr| 
        UML13EA::Class.new(:name => attr["name"]) if attr["UMLType"] == "Class"
      }
    }
  }
  
  INFO = XMI11Instantiator::INFO
  WARN = XMI11Instantiator::WARN
  ERROR = XMI11Instantiator::ERROR
  
  def self.instantiateUML13FromXMI11(envUML, fileName, options={})
    envUMLEA = RGen::Environment.new
    xmiInst = XMI11Instantiator.new(envUMLEA, FIXMAP, options[:loglevel] || ERROR)
    xmiInst.add_metamodel("omg.org/UML1.3", UML13EA)
    File.open(fileName) do |f|
      xmiInst.instantiate(f.read)
    end
    trans = UML13EAToUML13.new(envUMLEA, envUML)
    trans.transform
    trans.cleanModel if options[:clean_model]
  end

  def self.serializeUML13ToXMI11(envUML, fileName, options={})
    envUMLEA = RGen::Environment.new
    
    UML13EA.idStore = options[:keep_ids] ? 
      IdStore.new(File.dirname(fileName)+"/"+File.basename(fileName)+".ids") : IdStore.new
    
    UML13ToUML13EA.new(envUML, envUMLEA).transform
    
    File.open(fileName, "w") do |f|
      xmiSer = RGen::Serializer::XMI11Serializer.new(f)
      xmiSer.setNamespace("UML","omg.org/UML1.3")
      xmiSer.serialize(envUMLEA.find(:class => UML13EA::Model).first, 
        {:documentation => {:exporter => "Enterprise Architect", :exporterVersion => "2.5"}})
    end
    
    UML13EA.idStore.store
  end
  
end

MMCT - 2023