end
abstract class ResolutionLayoutBuilder
-
type LAYOUT: Layout[MType]
-
init do end
-
fun build_layout(elements: Map[MClassType, Set[MType]]): LAYOUT is abstract
-
- fun compute_ids(elements: Map[MClassType, Set[MType]]): Map[MType, Int] do
- var ids = new HashMap[MType, Int]
- var color = 0
- for mclasstype, mclasstypes in elements do
- for element in mclasstypes do
- if ids.has_key(element) then continue
- ids[element] = color
- color += 1
- end
- end
- return ids
- end
end
# Layout builder for MClass using Binary Matrix (BM)
result.pos = result.ids
return result
end
+
+ fun compute_ids(elements: Map[MClassType, Set[MType]]): Map[MType, Int] do
+ var ids = new HashMap[MType, Int]
+ var color = 0
+ for mclasstype, mclasstypes in elements do
+ for element in mclasstypes do
+ if ids.has_key(element) then continue
+ ids[element] = color
+ color += 1
+ end
+ end
+ return ids
+ end
end
# Layout builder for resolution tables using Coloring (CL)
result.pos = self.colorer.colorize(elements)
return result
end
+
+ fun compute_ids(elements: Map[MClassType, Set[MType]]): Map[MType, Int] do
+ var ids = new HashMap[MType, Int]
+ var color = 0
+ for mclasstype, mclasstypes in elements do
+ for element in mclasstypes do
+ if ids.has_key(element) then continue
+ ids[element] = color
+ color += 1
+ end
+ end
+ return ids
+ end
end
# Layout builder for resolution table using Perfect Hashing (PH)
return result
end
- redef fun compute_ids(elements) do
+ fun compute_ids(elements: Map[MClassType, Set[MType]]): Map[MType, Int] do
var ids = new HashMap[MType, Int]
var color = 1
for mclasstype, mclasstypes in elements do