Sha256: 474a1829b798949b36e501cf79798e3dad85be2910c7f725c757f810a3b07a7b

Contents?: true

Size: 1.25 KB

Versions: 6

Compression:

Stored size: 1.25 KB

Contents

# RGen Framework
# (c) Martin Thiede, 2006

require 'rgen/name_helper'

module RGen

module MetamodelBuilder

# This module is mixed into MetamodelBuilder::MMBase.
# The methods provided by this module are used by the methods generated
# by the class methods of MetamodelBuilder::BuilderExtensions
module BuilderRuntime
	include NameHelper
	
	def is_a?(c)
    return super unless c.const_defined?(:ClassModule)
    kind_of?(c::ClassModule)
	end
	
	def addGeneric(role, value)
		send("add#{firstToUpper(role)}",value)
	end
	
	def removeGeneric(role, value)
		send("remove#{firstToUpper(role)}",value)
	end
	
	def setGeneric(role, value)
		send("#{role}=",value)
	end

	def getGeneric(role)
		send("#{role}")
	end

	def _assignmentTypeError(target, value, expected)
		text = ""
		if target
			targetId = target.class.name
			targetId += "(" + target.name + ")" if target.respond_to?(:name) and target.name
			text += "In #{targetId} : "
		end
		valueId = value.class.name
		valueId += "(" + value.name + ")" if value.respond_to?(:name) and value.name
		valueId += "(:" + value.to_s + ")" if value.is_a?(Symbol)
		text += "Can not use a #{valueId} where a #{expected} is expected"
		StandardError.new(text)
	end

end

end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rgen-0.5.1 lib/rgen/metamodel_builder/builder_runtime.rb
rgen-0.4.3 lib/rgen/metamodel_builder/builder_runtime.rb
rgen-0.4.5 lib/rgen/metamodel_builder/builder_runtime.rb
rgen-0.5.0 lib/rgen/metamodel_builder/builder_runtime.rb
rgen-0.4.4 lib/rgen/metamodel_builder/builder_runtime.rb
rgen-0.4.6 lib/rgen/metamodel_builder/builder_runtime.rb