Java 类io.reactivex.functions.BiPredicate 实例源码
项目:NullAway
文件:NullAwayRxSupportNegativeCases.java
private Observable<NullableContainer<String>> filterThenDistinctUntilChanged(
Observable<NullableContainer<String>> observable) {
return observable
.filter(
new Predicate<NullableContainer<String>>() {
@Override
public boolean test(NullableContainer<String> container) throws Exception {
return container.get() != null;
}
})
.distinctUntilChanged(
new BiPredicate<NullableContainer<String>, NullableContainer<String>>() {
@Override
public boolean test(NullableContainer<String> nc1, NullableContainer<String> nc2) {
return nc1.get().length() == nc2.get().length()
&& nc1.get().contains(nc2.get())
&& nc2.get().contains(nc1.get());
}
});
}
项目:J-Chain
文件:ChainTest.java
@Test
public void inWithTrueBiPredicateThenReturnTrue() {
Collection<TestClass> testClasses = new ArrayList<>(2);
TestClass testClass = new TestClass();
testClasses.add(testClass);
testClasses.add(new TestClass());
testClasses.add(null);
boolean result = Chain.let(testClass)
.in(testClasses, new BiPredicate<TestClass, TestClass>() {
@Override
public boolean test(@NonNull TestClass original, @NonNull TestClass collectionItem) {
return original.equals(collectionItem);
}
})
.call()
.getValue1();
assertTrue(result);
}
项目:J-Chain
文件:ChainTest.java
@Test
public void inWithFalseBiPredicateThenReturnTrue() {
Collection<TestClass> testClasses = new ArrayList<>(2);
TestClass testClass = new TestClass();
testClasses.add(testClass);
testClasses.add(new TestClass());
testClasses.add(null);
boolean result = Chain.let(testClass)
.in(testClasses, new BiPredicate<TestClass, TestClass>() {
@Override
public boolean test(@NonNull TestClass original, @NonNull TestClass collectionItem) {
return false;
}
})
.call()
.getValue1();
assertFalse(result);
}
项目:GitHub
文件:Utils.java
public static <U> ObservableTransformer<U, U> retry(final String hint, final int retryCount) {
return new ObservableTransformer<U, U>() {
@Override
public ObservableSource<U> apply(Observable<U> upstream) {
return upstream.retry(new BiPredicate<Integer, Throwable>() {
@Override
public boolean test(Integer integer, Throwable throwable) throws Exception {
return retry(hint, retryCount, integer, throwable);
}
});
}
};
}
项目:GitHub
文件:Utils.java
public static <U> FlowableTransformer<U, U> retry2(final String hint, final int retryCount) {
return new FlowableTransformer<U, U>() {
@Override
public Publisher<U> apply(Flowable<U> upstream) {
return upstream.retry(new BiPredicate<Integer, Throwable>() {
@Override
public boolean test(Integer integer, Throwable throwable) throws Exception {
return retry(hint, retryCount, integer, throwable);
}
});
}
};
}
项目:J-Chain
文件:InOperator.java
InOperator(Collection<T> collection,
BiPredicate<T, T> comparator,
InternalConfiguration configuration) {
this.collection = new ArrayList<>();
if (collection != null && !collection.isEmpty()) {
this.collection.addAll(collection);
}
this.comparator = comparator;
this.configuration = configuration;
}
项目:RxJava2-Android-Sample
文件:RetryExampleActivity.java
private void retryWithBiPredicate(final boolean flag) {
Observable
.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
for (int i = 0; i <= 3; i++) {
if (i == 2) {
e.onError(new Exception("出现错误了!"));
} else {
e.onNext(i + "");
}
Thread.sleep(1000);
}
e.onComplete();
}
})
.retry(new BiPredicate<Integer, Throwable>() {
@Override
public boolean test(@NonNull Integer integer, @NonNull Throwable throwable) throws Exception {
Log.d(TAG, "retry错误: " + integer + ", " + throwable.toString());
//false 不让重新发射数据了,调用观察者的onError就终止了
//true 被观察者重新发射请求(一直发射知道没有错误)
return flag;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(@NonNull Disposable disposable) throws Exception {
Log.d(TAG, "subscribe time: " + disposable.isDisposed());
}
})
.subscribe(getObserver());
}
项目:rxjava2-extras
文件:BiPredicates.java
public static <T, R> BiPredicate<T, R> alwaysTrue() {
// TODO make holder
return new BiPredicate<T, R>() {
@Override
public boolean test(T t1, R t2) throws Exception {
return true;
}
};
}
项目:rxjava2-extras
文件:BiPredicates.java
public static <T, R> BiPredicate<T, R> alwaysFalse() {
// TODO make holder
return new BiPredicate<T, R>() {
@Override
public boolean test(T t1, R t2) throws Exception {
return false;
}
};
}
项目:rxjava2-extras
文件:BiPredicates.java
public static <T, R> BiPredicate<T, R> throwing() {
// TODO make holder
return new BiPredicate<T, R>() {
@Override
public boolean test(T t1, R t2) throws Exception {
throw new ThrowingException();
}
};
}
项目:rxjava2-extras
文件:TransformerStateMachine.java
private TransformerStateMachine(Callable<? extends State> initialState,
Function3<? super State, ? super In, ? super FlowableEmitter<Out>, ? extends State> transition,
BiPredicate<? super State, ? super FlowableEmitter<Out>> completion,
BackpressureStrategy backpressureStrategy, int requestBatchSize) {
Preconditions.checkNotNull(initialState);
Preconditions.checkNotNull(transition);
Preconditions.checkNotNull(completion);
Preconditions.checkNotNull(backpressureStrategy);
Preconditions.checkArgument(requestBatchSize > 0, "initialRequest must be greater than zero");
this.initialState = initialState;
this.transition = transition;
this.completion = completion;
this.backpressureStrategy = backpressureStrategy;
this.requestBatchSize = requestBatchSize;
}
项目:rxjava2-extras
文件:TransformerStateMachine.java
public static <State, In, Out> FlowableTransformer<In, Out> create(Callable<? extends State> initialState,
Function3<? super State, ? super In, ? super FlowableEmitter<Out>, ? extends State> transition,
BiPredicate<? super State, ? super FlowableEmitter<Out>> completion,
BackpressureStrategy backpressureStrategy, int requestBatchSize) {
return new TransformerStateMachine<State, In, Out>(initialState, transition, completion, backpressureStrategy,
requestBatchSize);
}
项目:rxjava2-extras
文件:TransformerStateMachine.java
private static <State, Out, In> Function<Notification<In>, Flowable<Notification<Out>>> execute(
final Function3<? super State, ? super In, ? super FlowableEmitter<Out>, ? extends State> transition,
final BiPredicate<? super State, ? super FlowableEmitter<Out>> completion, final Mutable<State> state,
final BackpressureStrategy backpressureStrategy) {
return new Function<Notification<In>, Flowable<Notification<Out>>>() {
@Override
public Flowable<Notification<Out>> apply(final Notification<In> in) {
return Flowable.create(new FlowableOnSubscribe<Notification<Out>>() {
@Override
public void subscribe(FlowableEmitter<Notification<Out>> emitter) throws Exception {
FlowableEmitter<Out> w = wrap(emitter);
if (in.isOnNext()) {
state.value = transition.apply(state.value, in.getValue(), w);
if (!emitter.isCancelled())
emitter.onComplete();
else {
// this is a special emission to indicate that
// the transition called unsubscribe. It will be
// filtered later.
emitter.onNext(UnsubscribedNotificationHolder.<Out>unsubscribedNotification());
}
} else if (in.isOnComplete()) {
if (completion.test(state.value, w) && !emitter.isCancelled()) {
w.onComplete();
}
} else if (!emitter.isCancelled()) {
w.onError(in.getError());
}
}
}, backpressureStrategy);
}
};
}
项目:rxjava2-extras
文件:FlowableCollectWhile.java
public FlowableCollectWhile(Flowable<T> source, Callable<R> collectionFactory,
BiFunction<? super R, ? super T, ? extends R> add,
BiPredicate<? super R, ? super T> condition, boolean emitRemainder) {
super();
this.source = source;
this.collectionFactory = collectionFactory;
this.add = add;
this.condition = condition;
this.emitRemainder = emitRemainder;
}
项目:rxjava2-extras
文件:FlowableCollectWhile.java
CollectWhileSubscriber(Callable<R> collectionFactory,
BiFunction<? super R, ? super T, ? extends R> add,
BiPredicate<? super R, ? super T> condition, Subscriber<? super R> child,
boolean emitRemainder) {
this.collectionFactory = collectionFactory;
this.add = add;
this.condition = condition;
this.child = child;
this.emitRemainder = emitRemainder;
}
项目:rxjava2-extras
文件:Transformers.java
public static <State, In, Out> FlowableTransformer<In, Out> stateMachine(Callable<? extends State> initialState,
Function3<? super State, ? super In, ? super FlowableEmitter<Out>, ? extends State> transition,
BiPredicate<? super State, ? super FlowableEmitter<Out>> completion,
BackpressureStrategy backpressureStrategy, int requestBatchSize) {
return TransformerStateMachine.create(initialState, transition, completion, backpressureStrategy,
requestBatchSize);
}
项目:rxjava2-extras
文件:Transformers.java
public static <T, R> FlowableTransformer<T, R> collectWhile(final Callable<R> collectionFactory,
final BiFunction<? super R, ? super T, ? extends R> add, final BiPredicate<? super R, ? super T> condition,
final boolean emitRemainder) {
return new FlowableTransformer<T, R>() {
@Override
public Publisher<R> apply(Flowable<T> source) {
return new FlowableCollectWhile<T, R>(source, collectionFactory, add, condition, emitRemainder);
}
};
}
项目:coordinators
文件:TicTacToeBoard.java
/**
* Returns an observable of the tic tac toe board. First value is provided immediately,
* succeeding values are guaranteed to be distinct from previous values. Values are
* always provided on the main thread.
*/
public Observable<Value[][]> grid() {
return grid.distinctUntilChanged(new BiPredicate<Value[][], Value[][]>() {
@Override public boolean test(Value[][] a, Value[][] b) throws Exception {
return Arrays.equals(a, b);
}
});
}
项目:coordinators
文件:TicTacToeBoard.java
/**
* Returns an observable of the tic tac toe board. First value is provided immediately,
* succeeding values are guaranteed to be distinct from previous values. Values are
* always provided on the main thread.
*/
Observable<Value[][]> grid() {
return grid.distinctUntilChanged(new BiPredicate<Value[][], Value[][]>() {
@Override public boolean test(Value[][] a, Value[][] b) throws Exception {
return Arrays.equals(a, b);
}
});
}
项目:rxjava2-extras
文件:Transformers.java
public static <T, R> FlowableTransformer<T, R> collectWhile(final Callable<R> collectionFactory,
final BiFunction<? super R, ? super T, ? extends R> add,
final BiPredicate<? super R, ? super T> condition) {
return collectWhile(collectionFactory, add, condition, true);
}
项目:rxjava2-extras
文件:Transformers.java
public static <T> FlowableTransformer<T, List<T>> toListWhile(
final BiPredicate<? super List<T>, ? super T> condition, boolean emitRemainder) {
return collectWhile(ListFactoryHolder.<T>factory(), ListFactoryHolder.<T>add(), condition, emitRemainder);
}
项目:rxjava2-extras
文件:Transformers.java
public static <T> FlowableTransformer<T, List<T>> toListWhile(
final BiPredicate<? super List<T>, ? super T> condition) {
return toListWhile(condition, true);
}
项目:rxjava2-extras
文件:Transformers.java
public static <T> FlowableTransformer<T, List<T>> bufferWhile(
final BiPredicate<? super List<T>, ? super T> condition, boolean emitRemainder) {
return toListWhile(condition, emitRemainder);
}
项目:rxjava2-extras
文件:Transformers.java
public static <T> FlowableTransformer<T, List<T>> bufferWhile(
final BiPredicate<? super List<T>, ? super T> condition) {
return toListWhile(condition);
}
项目:cyclops
文件:SingleKind.java
@CheckReturnValue
@SchedulerSupport("none")
public Single<Boolean> contains(Object value, BiPredicate<Object, Object> comparer) {
return boxed.contains(value, comparer);
}
项目:cyclops
文件:SingleKind.java
@CheckReturnValue
@SchedulerSupport("none")
public Single<T> retry(BiPredicate<? super Integer, ? super Throwable> predicate) {
return boxed.retry(predicate);
}
项目:cyclops
文件:FlowableKind.java
@CheckReturnValue
@BackpressureSupport(BackpressureKind.FULL)
@SchedulerSupport("none")
public Flowable<T> distinctUntilChanged(BiPredicate<? super T, ? super T> comparer) {
return boxed.distinctUntilChanged(comparer);
}
项目:cyclops
文件:FlowableKind.java
@CheckReturnValue
@BackpressureSupport(BackpressureKind.FULL)
@SchedulerSupport("none")
public Flowable<T> retry(BiPredicate<? super Integer, ? super Throwable> predicate) {
return boxed.retry(predicate);
}
项目:J-Chain
文件:Optional.java
/**
* check if the current Object in the {@link Optional} is available in the passed {@link Collection}
*
* @param collection the {@link Collection} that holds the items
* @param comparator the {@link BiPredicate} that will be invoked over every item, the stored
* Object will be passed as it's first parameter, and the item in the
* {@link Collection} will be passed as the second parameter, if the returned
* value is {@code true}, this means that both items are equal, if
* the returned item is {@code false}, they do not match
* @return a {@link Condition} that will execute it's {@link Condition#then(Consumer)} or
* similar methods if the item is available in the passed {@link Collection}
*/
public Condition<Optional<T>, T> whenIn(Collection<T> collection, BiPredicate<T, T> comparator) {
return Condition.createNormal(this,
new InOperator<>(collection, comparator, chain.configuration));
}
项目:J-Chain
文件:Optional.java
/**
* check if the current Object in the {@link Optional} is NOT available in the
* passed {@link Collection}
*
* @param collection the {@link Collection} that holds the items
* @param comparator the {@link BiPredicate} that will be invoked over every item, the stored
* Object will be passed as it's first parameter, and the item in the
* {@link Collection} will be passed as the second parameter, if the returned
* value is {@code true}, this means that both items are equal, if
* the returned item is {@code false}, they do not match
* @return a {@link Condition} that will execute it's {@link Condition#then(Consumer)} or
* similar methods if the item is NOT available in the passed {@link Collection}
*/
public Condition<Optional<T>, T> whenNotIn(Collection<T> collection, BiPredicate<T, T> comparator) {
return Condition.createNegated(this,
new InOperator<>(collection, comparator, chain.configuration));
}
项目:J-Chain
文件:Chain.java
/**
* check if the current Object in the chain is available in the passed {@link Collection}
*
* @param collection the {@link Collection} that holds the items
* @param comparator the {@link BiPredicate} that will be invoked over every item, the stored
* Object will be passed as it's first parameter, and the item in the
* {@link Collection} will be passed as the second parameter, if the returned
* value is {@code true}, this means that both items are equal, if
* the returned item is {@code false}, they do not match
* @return a new {@link Chain} holding a {@link Pair}, where {@link Pair#getValue0()} will
* return the original Object, and {@link Pair#getValue1()} will return a boolean indicating
* weather the the Object was found in the passed {@link Collection} or not
* @deprecated use {@link #whenIn(Collection, BiPredicate)} instead
*/
@Deprecated
public Chain<Pair<T, Boolean>> in(Collection<T> collection, BiPredicate<T, T> comparator) {
boolean inCollection = new InOperator<>(collection, comparator, configuration).test(item);
return new Chain<>(Pair.with(item, inCollection), configuration);
}
项目:J-Chain
文件:Chain.java
/**
* check if the current Object in the {@link Chain} is available in the passed
* {@link Collection}
*
* @param collection the {@link Collection} that holds the items
* @param comparator the {@link BiPredicate} that will be invoked over every item, the stored
* Object will be passed as it's first parameter, and the item in the
* {@link Collection} will be passed as the second parameter, if the returned
* value is {@code true}, this means that both items are equal, if
* the returned item is {@code false}, they do not match
* @return a {@link Condition} that will execute it's {@link Condition#then(Consumer)} or
* similar methods if the item is available in the passed {@link Collection}
*/
public Condition<Chain<T>, T> whenIn(Collection<T> collection, BiPredicate<T, T> comparator) {
return Condition.createNormal(this,
new InOperator<>(collection, comparator, configuration));
}
项目:J-Chain
文件:Chain.java
/**
* check if the current Object in the {@link Chain} is NOT available in the passed
* {@link Collection}
*
* @param collection the {@link Collection} that holds the items
* @param comparator the {@link BiPredicate} that will be invoked over every item, the stored
* Object will be passed as it's first parameter, and the item in the
* {@link Collection} will be passed as the second parameter, if the returned
* value is {@code true}, this means that both items are equal, if
* the returned item is {@code false}, they do not match
* @return a {@link Condition} that will execute it's {@link Condition#then(Consumer)} or
* similar methods if the item is NOT available in the passed {@link Collection}
*/
public Condition<Chain<T>, T> whenNotIn(Collection<T> collection, BiPredicate<T, T> comparator) {
return Condition.createNegated(this,
new InOperator<>(collection, comparator, configuration));
}