DataSource and DataSource.Factory have mapBy()
and mapPageBy()
, which could help you in this case. Just be careful cause these two will restrict the size of the "Y"-result-list.
If the size of the result differs from the original list's size then DataSource will throw an Exception.