Module: RGen::MetamodelBuilder::BuilderRuntime

Includes:
Util::NameHelper
Included in:
MMBase
Defined in:
lib/rgen/metamodel_builder/builder_runtime.rb

Overview

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

Instance Method Summary collapse

Methods included from Util::NameHelper

#camelize, #className, #firstToLower, #firstToUpper, #normalize, #saneClassName, #saneMethodName

Instance Method Details

#_assignmentTypeError(target, value, expected) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 81

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

#_set_container(container, containing_feature_name) ⇒ Object



76
77
78
79
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 76

def _set_container(container, containing_feature_name)
  @_container = container
  @_containing_feature_name = containing_feature_name
end

#addGeneric(role, value, index = -1)) ⇒ Object



21
22
23
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 21

def addGeneric(role, value, index=-1)
	send("add#{firstToUpper(role.to_s)}",value, index)
end

#eContainerObject



68
69
70
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 68

def eContainer
  @_container
end

#eContainingFeatureObject



72
73
74
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 72

def eContainingFeature
  @_containing_feature_name
end

#eIsSet(role) ⇒ Object



55
56
57
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 55

def eIsSet(role)
  eval("defined? @#{role}") != nil
end

#eUnset(role) ⇒ Object



59
60
61
62
63
64
65
66
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 59

def eUnset(role)
  if respond_to?("add#{firstToUpper(role.to_s)}")
    setGeneric(role, [])
  else
    setGeneric(role, nil)
  end
  remove_instance_variable("@#{role}")
end

#getGeneric(role) ⇒ Object



45
46
47
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 45

def getGeneric(role)
	send("get#{firstToUpper(role.to_s)}")
end

#getGenericAsArray(role) ⇒ Object



49
50
51
52
53
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 49

def getGenericAsArray(role)
  result = getGeneric(role)
  result = [result].compact unless result.is_a?(Array)
  result
end

#hasManyMethods(role) ⇒ Object



33
34
35
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 33

def hasManyMethods(role)
  respond_to?("add#{firstToUpper(role.to_s)}")
end

#is_a?(c) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
19
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 16

def is_a?(c)
   return super unless c.const_defined?(:ClassModule)
   kind_of?(c::ClassModule)
end

#removeGeneric(role, value) ⇒ Object



25
26
27
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 25

def removeGeneric(role, value)
	send("remove#{firstToUpper(role.to_s)}",value)
end

#setGeneric(role, value) ⇒ Object



29
30
31
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 29

def setGeneric(role, value)
	send("set#{firstToUpper(role.to_s)}",value)
end

#setOrAddGeneric(role, value) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/rgen/metamodel_builder/builder_runtime.rb', line 37

def setOrAddGeneric(role, value)
  if hasManyMethods(role)
    addGeneric(role, value)
  else
    setGeneric(role, value)
  end
end