public static InnerEffectHandler mapEffects()

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);
        }
      }
    };
  }