Sha256: 344d96b9b3d221dd0e24555996a3b01344ee4a48f0a30f8729a77b8c09f36923

Contents?: true

Size: 1.12 KB

Versions: 6

Compression:

Stored size: 1.12 KB

Contents

require 'rgen/instantiator/xmi11_instantiator'
require 'metamodels/uml13_metamodel'

class EAInstantiator < XMI11Instantiator

  #TODO add element names to make feature names unique
  FIXMAP = {
    :tags => {
      "EAStub" => proc { |tag, attr| UML13::Class.new(
        :name => attr["name"]
      )},
      "ActivityModel" => "ActivityGraph",
      "PseudoState" => "Pseudostate"
    },
    :feature_names => {
      "isOrdered" => "ordering",
      "subtype" => "child",
      "supertype" => "parent",
      "changeable" => "changeability",
      "substate" => "subvertex"
    },
    :feature_values => {
      "ordering" => {"true" => "ordered", "false" => "unordered"},
      "aggregation" => {"shared" => "aggregate"},
      "changeability" => {"none" => "frozen"},
      "multiplicity" => proc { |v| UML13::Multiplicity.new(
        :range => [UML13::MultiplicityRange.new(
          :lower => v.split("..").first,
          :upper => v.split("..").last
        )])}
    }
  }
  
  def initialize(env, loglevel)
    super(env, FIXMAP, loglevel)
    add_metamodel("omg.org/UML1.3", UML13)
  end
  
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rgen-0.4.1 lib/instantiators/ea_instantiator.rb
rgen-0.4.2 lib/instantiators/ea_instantiator.rb
rgen-0.4.3 lib/instantiators/ea_instantiator.rb
rgen-0.4.4 lib/instantiators/ea_instantiator.rb
rgen-0.4.5 lib/instantiators/ea_instantiator.rb
rgen-0.4.6 lib/instantiators/ea_instantiator.rb