in mobius-extras/src/main/java/com/spotify/mobius/extras/patterns/InnerEffectHandlers.java [59:81]
public static <M, F, FI> InnerEffectHandler<M, F, FI> mapEffects(final Function<FI, F> f) {
return new InnerEffectHandler<M, F, FI>() {
@Nonnull
@Override
public Next<M, F> handleInnerEffects(M model, boolean modelUpdated, Set<FI> innerEffects) {
if (innerEffects.isEmpty()) {
return modelUpdated ? Next.<M, F>next(model) : Next.<M, F>noChange();
}
Set<F> effects = new HashSet<>();
for (FI innerEffect : innerEffects) {
F outerEffect = checkNotNull(f).apply(innerEffect);
effects.add(checkNotNull(outerEffect));
}
if (modelUpdated) {
return Next.next(model, effects);
} else {
return Next.dispatch(effects);
}
}
};
}