Sha256: 27cfece330ff3f1139059676fd2e88b7baf774852d705f732c03c33be08803cc

Contents?: true

Size: 1.7 KB

Versions: 237

Compression:

Stored size: 1.7 KB

Contents

require 'rgen/instantiator/default_xml_instantiator'
require 'rgen/environment'
require 'rgen/ecore/ecore'
require 'xml_instantiator_test/simple_xmi_metamodel'

# SimpleXMIECoreInstantiator demonstrates the usage of the DefaultXMLInstantiator.
# It can be used to instantiate an ECore model from an XMI description
# produced by Enterprise Architect.
# 
# Note however, that this is *not* the recommended way to read an EA model.
# See EAInstantiatorTest for the clean way to do this.
# 
# This example shows how arbitrary XML content can be used to instantiate
# an implicit metamodel. The resulting model is transformed into a simple
# ECore model.
# 
# See XMLInstantiatorTest for an example of how to use this class.
# 
class SimpleXMIECoreInstantiator < RGen::Instantiator::DefaultXMLInstantiator
  
  map_tag_ns "omg.org/UML1.3", SimpleXMIMetaModel::UML
  
  resolve_by_id :typeClass, :src => :type, :id => :xmi_id
  resolve_by_id :subtypeClass, :src => :subtype, :id => :xmi_id
  resolve_by_id :supertypeClass, :src => :supertype, :id => :xmi_id
  
  def initialize
    @envXMI = RGen::Environment.new 
    super(@envXMI, SimpleXMIMetaModel, true)
  end
  
  def new_object(node)
    if node.tag == "EAStub"
      class_name = saneClassName(node.attributes["UMLType"])
      mod = XMIMetaModel::UML
      build_on_error(NameError, :build_class, class_name, mod) do
        mod.const_get(class_name).new
      end	 
    else
      super
    end
  end	
  
  # This method does the actual work.
  def instantiateECoreModel(envOut, str)
    instantiate(str)
    
    require 'xml_instantiator_test/simple_xmi_to_ecore'
    
    SimpleXmiToECore.new(@envXMI,envOut).transform
  end
  
end

Version data entries

237 entries across 237 versions & 3 rubygems

Version Path
rgen-0.10.2 test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
rgen-0.10.0 test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
rgen-0.9.1 ./test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
rgen-0.8.3 test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
rgen-0.8.4 test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
rgen-0.9.0 test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.12 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.12-x86-mingw32 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.12-x64-mingw32 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.12-universal-darwin lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.11 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.11-x86-mingw32 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.11-x64-mingw32 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.11-universal-darwin lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.10 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.10-x86-mingw32 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.10-x64-mingw32 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.10-universal-darwin lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.9 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb
puppet-4.10.9-x86-mingw32 lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb