Currently - and possibly due to an oversight - the PrefetchingTermLookup returns a Lookup class with an unnecessarily doubly nested structure as seen below, for every source that contains more than one type.
Questions:
- Should the lookup collect all types into a more flat structure, to prevent duplication and nesting of lookup instances? If so, then this task should aim to achieve that, otherwise, the task can be declined.
Example:
["lookups":"Wikibase\DataAccess\ByTypeDispatchingPrefetchingTermLookup":private]=> array(2) { ["item"]=> ByTypeDispatchingPrefetchingTermLookup) { ["lookups":"ByTypeDispatchingPrefetchingTermLookup":private] => array(2) { ["item"] => FakePrefetchingTermLookup { ["buffer":"FakePrefetchingTermLookup":private] => NULL } ["property"] => FakePrefetchingTermLookup { ["buffer":"FakePrefetchingTermLookup":private] => NULL } } ["defaultLookup":"ByTypeDispatchingPrefetchingTermLookup":private] => NullPrefetchingTermLookup) {} } ["property"] => ByTypeDispatchingPrefetchingTermLookup) { ["lookups":"ByTypeDispatchingPrefetchingTermLookup":private] => array(2) { ["item"] => FakePrefetchingTermLookup { ["buffer":"FakePrefetchingTermLookup":private] => NULL } ["property"] => FakePrefetchingTermLookup { ["buffer":"FakePrefetchingTermLookup":private] => NULL } } ["defaultLookup":"ByTypeDispatchingPrefetchingTermLookup":private] => NullPrefetchingTermLookup) {} } } ["defaultLookup":"ByTypeDispatchingPrefetchingTermLookup":private] => NULL