package com.safframework.rxcache.transformstrategy.impl; import com.safframework.rxcache.RxCache; import com.safframework.rxcache.transformstrategy.FlowableStrategy; import com.safframework.rxcache.transformstrategy.MaybeStrategy; import com.safframework.rxcache.transformstrategy.ObservableStrategy; import com.safframework.rxcache.domain.Record; import com.safframework.rxcache.domain.Source; import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.BackpressureStrategy; import io.reactivex.rxjava3.core.Flowable; import io.reactivex.rxjava3.core.Maybe; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.functions.Function; import org.reactivestreams.Publisher; import java.lang.reflect.Type; /** * 不使用缓存,也不保存缓存 * Created by tony on 2018/10/2. */ public class NoCacheStrategy implements ObservableStrategy, FlowableStrategy, MaybeStrategy { @Override public <T> Publisher<Record<T>> execute(RxCache rxCache, String key, Flowable<T> source, Type type) { return source.map(new Function<T, Record<T>>() { @Override public Record<T> apply(@NonNull T t) throws Exception { return new Record<>(Source.CLOUD, key, t); } }); } @Override public <T> Publisher<Record<T>> execute(RxCache rxCache, String key, Flowable<T> source, Type type, BackpressureStrategy backpressureStrategy) { return source.map(new Function<T, Record<T>>() { @Override public Record<T> apply(@NonNull T t) throws Exception { return new Record<>(Source.CLOUD, key, t); } }); } @Override public <T> Maybe<Record<T>> execute(RxCache rxCache, String key, Maybe<T> source, Type type) { return source.map(new Function<T, Record<T>>() { @Override public Record<T> apply(@NonNull T t) throws Exception { return new Record<>(Source.CLOUD, key, t); } }); } @Override public <T> Observable<Record<T>> execute(RxCache rxCache, String key, Observable<T> source, Type type) { return source.map(new Function<T, Record<T>>() { @Override public Record<T> apply(@NonNull T t) throws Exception { return new Record<>(Source.CLOUD, key, t); } }); } }