public SubtypeEffectHandlerBuilder addTransformer()

in mobius-rx2/src/main/java/com/spotify/mobius/rx2/RxMobius.java [176:206]


    public <G extends F> SubtypeEffectHandlerBuilder<F, E> addTransformer(
        final Class<G> effectClass, final ObservableTransformer<G, E> effectHandler) {
      //noinspection ResultOfMethodCallIgnored
      checkNotNull(effectClass);
      //noinspection ResultOfMethodCallIgnored
      checkNotNull(effectHandler);

      for (Class<?> cls : effectPerformerMap.keySet()) {
        if (cls.isAssignableFrom(effectClass) || effectClass.isAssignableFrom(cls)) {
          throw new IllegalArgumentException(
              "Effect classes may not be assignable to each other, collision found: "
                  + effectClass.getSimpleName()
                  + " <-> "
                  + cls.getSimpleName());
        }
      }

      effectPerformerMap.put(
          effectClass,
          new ObservableTransformer<F, E>() {
            @Override
            public Observable<E> apply(Observable<F> effects) {
              return effects
                  .ofType(effectClass)
                  .compose(effectHandler)
                  .doOnError(onErrorFunction.apply(effectHandler));
            }
          });

      return this;
    }