nitc :: MModuleMultiData :: defaultinit
# A `MModuleData` where multiples values could be set on a single module
# a-la `MultiHashMap`
class MModuleMultiData[E]
super MModuleData[Array[E]]
# Instead of `null` return an empty array usable
redef fun [](mmodule)
do
var res = super
if res == null then
res = new Array[E]
defs[mmodule] = res
end
return res
end
# like `lookup_all_values` but return a big concatenated sequence (instead of a sequence of array)
fun lookup_joined_values(mmodule: MModule, min_visibility: MVisibility): Sequence[E]
do
var mmodules = lookup_all_modules(mmodule, min_visibility)
mmodules = model.mmodule_importation_hierarchy.linearize(mmodules)
var res = new Array[E]
for m in mmodules do res.add_all defs[m]
return res
end
end
src/model/mmodule_data.nit:104,1--129,3