Class: Concrete::Metamodel::ECoreToConcrete
- Inherits:
-
RGen::Transformer
- Object
- RGen::Transformer
- Concrete::Metamodel::ECoreToConcrete
- Includes:
- RGen::ECore
- Defined in:
- lib/concrete/metamodel/ecore_to_concrete.rb
Instance Method Summary collapse
-
#initialize(env_in, env_out, opts = {}) ⇒ ECoreToConcrete
constructor
A new instance of ECoreToConcrete.
- #primitiveType(eType) ⇒ Object
- #transform ⇒ Object
- #uniqueClassNameCheck ⇒ Object
Constructor Details
#initialize(env_in, env_out, opts = {}) ⇒ ECoreToConcrete
Returns a new instance of ECoreToConcrete.
12 13 14 15 |
# File 'lib/concrete/metamodel/ecore_to_concrete.rb', line 12 def initialize(env_in, env_out, opts={}) super @featureFilter = opts[:featureFilter] end |
Instance Method Details
#primitiveType(eType) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/concrete/metamodel/ecore_to_concrete.rb', line 52 def primitiveType(eType) @primitiveType ||= {} return @primitiveType[eType] if @primitiveType[eType] if eType == EString @primitiveType[eType] = @env_out.new(ConcreteMMM::Datatype, :name => "String") elsif eType == EInt @primitiveType[eType] = @env_out.new(ConcreteMMM::Datatype, :name => "Integer") elsif eType == EFloat @primitiveType[eType] = @env_out.new(ConcreteMMM::Datatype, :name => "Float") elsif eType == EBoolean @primitiveType[eType] = @env_out.new(ConcreteMMM::Datatype, :name => "Boolean") else # ignore unsupported datatype end end |
#transform ⇒ Object
17 18 19 20 |
# File 'lib/concrete/metamodel/ecore_to_concrete.rb', line 17 def transform uniqueClassNameCheck trans(:class => EClass) end |
#uniqueClassNameCheck ⇒ Object
68 69 70 71 72 73 74 |
# File 'lib/concrete/metamodel/ecore_to_concrete.rb', line 68 def uniqueClassNameCheck classNames = {} @env_in.find(:class => EClass).each do |c| raise "unqualified class names not unique, concrete does not support packages" if classNames[c.name] classNames[c.name] = true end end |