def create_module(epackage)
return @modules[epackage] if @modules[epackage]
top = (@in_create_module == false)
@in_create_module = true
m = Module.new do
extend RGen::MetamodelBuilder::ModuleExtension
end
@modules[epackage] = m
epackage.eSubpackages.each{|p| create_module(p)}
m._set_ecore_internal(epackage)
create_module(epackage.eSuperPackage).const_set(epackage.name, m) if epackage.eSuperPackage
if top
epackage.eAllClassifiers.each do |c|
if c.is_a?(RGen::ECore::EClass)
create_class(c)
elsif c.is_a?(RGen::ECore::EEnum)
create_enum(c)
end
end
@in_create_module = false
end
m
end