Module: RGen::ECore::EPackage::ClassModule
- Includes:
- NameHelper
- Defined in:
- lib/mmgen/mm_ext/ecore_ext.rb
Instance Method Summary
collapse
Methods included from NameHelper
#camelize, #className, #firstToLower, #firstToUpper, #normalize, #saneClassName, #saneMethodName
Instance Method Details
#allClassesSorted ⇒ Object
40
41
42
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 40
def allClassesSorted
inheritanceOrderClasses(classesInGenerationOrdering)
end
|
#allClassifiers ⇒ Object
19
20
21
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 19
def allClassifiers
eSubpackages.inject(eClassifiers) {|r,p| r.concat(p.allClassifiers) }
end
|
#ancestorPackages ⇒ Object
23
24
25
26
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 23
def ancestorPackages
return [] unless eSuperPackage
[eSuperPackage] + eSuperPackage.ancestorPackages
end
|
#classesInGenerationOrdering ⇒ Object
32
33
34
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 32
def classesInGenerationOrdering
ownClasses + eSubpackages.collect{|s| s.classesInGenerationOrdering}.flatten
end
|
#inheritanceOrderClasses(cls) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 44
def inheritanceOrderClasses(cls)
sortArray = cls.dup
i1 = 0
while i1 < sortArray.size-1
again = false
for i2 in i1+1..sortArray.size-1
e2 = sortArray[i2]
if sortArray[i1].eSuperTypes.include?(e2)
sortArray.delete(e2)
sortArray.insert(i1,e2)
again = true
break
end
end
i1 += 1 unless again
end
sortArray
end
|
#moduleName ⇒ Object
10
11
12
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 10
def moduleName
firstToUpper(name)
end
|
#needClassReorder? ⇒ Boolean
36
37
38
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 36
def needClassReorder?
classesInGenerationOrdering != inheritanceOrderClasses(classesInGenerationOrdering)
end
|
#ownClasses ⇒ Object
28
29
30
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 28
def ownClasses
eClassifiers.select{|c| c.is_a?(EClass)}
end
|
#qualifiedModuleName(rootPackage) ⇒ Object
14
15
16
17
|
# File 'lib/mmgen/mm_ext/ecore_ext.rb', line 14
def qualifiedModuleName(rootPackage)
return moduleName unless eSuperPackage and self != rootPackage
eSuperPackage.qualifiedModuleName(rootPackage) + "::" + moduleName
end
|