@motlin This looks like a nice addition. I would recommend adding at since 12.0 tags in all of the interfaces. I also think there needs to be special handling for MultiReader classes, similar to the synchronized types.
I'm about to push a new change that updates since from ? to 12.0 and overrides these methods in AbstractMultiReaderMutableCollection. However, I picked the places to place overrides by following the places where we have overridden the methods aggregateBy and countBy. None of these methods are overridden in the MultiReader collections. I don't think they need to be for correctness, because they're all implemented by delegating to forEach() which does the right thing. It might be nice to override them for other reasons.
I'm about to push a new change that updates since from
?
to12.0
and overrides these methods inAbstractMultiReaderMutableCollection
. However, I picked the places to place overrides by following the places where we have overridden the methodsaggregateBy
andcountBy
. None of these methods are overridden in the MultiReader collections. I don't think they need to be for correctness, because they're all implemented by delegating to forEach() which does the right thing. It might be nice to override them for other reasons.