-abstract class ResolutionLayoutBuilder
- type LAYOUT: Layout[MType]
- init do end
- fun build_layout(elements: Map[MClassType, Set[MType]]): LAYOUT is abstract
-end
-
-# Layout builder for MClass using Binary Matrix (BM)
-class BMResolutionLayoutBuilder
- super ResolutionLayoutBuilder
-
- init do super
-
- # Compute resolved types position using BM
- redef fun build_layout(elements) do
- var bmizer = new ResolutionBMizer
- return bmizer.build_layout(elements)
- end
-end
-
-# Layout builder for resolution tables using Coloring (CL)
-class CLResolutionLayoutBuilder
- super ResolutionLayoutBuilder
-
- init do super
-
- # Compute resolved types colors
- redef fun build_layout(elements) do
- var colorer = new ResolutionColorer
- return colorer.build_layout(elements)
- end
-end
-
-# Layout builder for resolution table using Perfect Hashing (PH)
-class PHResolutionLayoutBuilder
- super ResolutionLayoutBuilder
-
- redef type LAYOUT: PHLayout[MClassType, MType]
-
- private var hasher: ResolutionHasher
-
- init(operator: PHOperator) do self.hasher = new ResolutionHasher(operator)
-
- # Compute resolved types masks and hashes
- redef fun build_layout(elements) do
- return hasher.build_layout(elements)
- end