类io.reactivex.ObservableOperator源码实例Demo

下面列出了怎么用io.reactivex.ObservableOperator的API类实例代码及写法,或者点击链接到github查看源代码。

public static <T> ObservableOperator<T,T> doOnEmpty(Action action){
    return observer -> new DisposableObserver<T>() {
        boolean isEmpty = true;
        @Override
        public void	onNext(T value) {
            isEmpty = false;
            observer.onNext(value);
        }
        @Override
        public void onError(Throwable t) {
            observer.onError(t);
        }
        @Override
        public void onComplete() {
            if (isEmpty) {
                try {
                    action.run();
                } catch (Exception e) {
                    onError(e);
                    return;
                }
            }
            observer.onComplete();
        }
    };
}
 
源代码2 项目: sqlbrite   文件: SqlBrite.java
/**
 * Creates an {@linkplain ObservableOperator operator} which transforms a query returning a
 * single row to a {@code T} using {@code mapper}. Use with {@link Observable#lift}.
 * <p>
 * It is an error for a query to pass through this operator with more than 1 row in its result
 * set. Use {@code LIMIT 1} on the underlying SQL query to prevent this. Result sets with 0 rows
 * emit {@code defaultValue}.
 * <p>
 * This operator emits {@code defaultValue} if {@code null} is returned from {@link #run()}.
 *
 * @param mapper Maps the current {@link Cursor} row to {@code T}. May not return null.
 * @param defaultValue Value returned if result set is empty
 */
@SuppressWarnings("ConstantConditions") // Public API contract.
@CheckResult @NonNull
public static <T> ObservableOperator<T, Query> mapToOneOrDefault(
    @NonNull Function<Cursor, T> mapper, @NonNull T defaultValue) {
  if (defaultValue == null) throw new NullPointerException("defaultValue == null");
  return new QueryToOneOperator<>(mapper, defaultValue);
}
 
源代码3 项目: sqlbrite   文件: SqlBrite.java
/**
 * Creates an {@linkplain ObservableOperator operator} which transforms a query returning a
 * single row to a {@code Optional<T>} using {@code mapper}. Use with {@link Observable#lift}.
 * <p>
 * It is an error for a query to pass through this operator with more than 1 row in its result
 * set. Use {@code LIMIT 1} on the underlying SQL query to prevent this. Result sets with 0 rows
 * emit {@link Optional#empty() Optional.empty()}.
 * <p>
 * This operator ignores {@code null} cursors returned from {@link #run()}.
 *
 * @param mapper Maps the current {@link Cursor} row to {@code T}. May not return null.
 */
@RequiresApi(Build.VERSION_CODES.N) //
@CheckResult @NonNull //
public static <T> ObservableOperator<Optional<T>, Query> mapToOptional(
    @NonNull Function<Cursor, T> mapper) {
  return new QueryToOptionalOperator<>(mapper);
}
 
源代码4 项目: sqlbrite   文件: SqlBrite.java
/**
 * Creates an {@linkplain ObservableOperator operator} which transforms a query returning a
 * single row to a {@code T} using {@code mapper}. Use with {@link Observable#lift}.
 * <p>
 * It is an error for a query to pass through this operator with more than 1 row in its result
 * set. Use {@code LIMIT 1} on the underlying SQL query to prevent this. Result sets with 0 rows
 * do not emit an item.
 * <p>
 * This operator ignores {@code null} cursors returned from {@link #run()}.
 *
 * @param mapper Maps the current {@link Cursor} row to {@code T}. May not return null.
 */
@CheckResult @NonNull //
public static <T> ObservableOperator<T, Query> mapToOne(@NonNull Function<Cursor, T> mapper) {
  return new QueryToOneOperator<>(mapper, null);
}
 
源代码5 项目: sqlbrite   文件: SqlBrite.java
/**
 * Creates an {@linkplain ObservableOperator operator} which transforms a query to a
 * {@code List<T>} using {@code mapper}. Use with {@link Observable#lift}.
 * <p>
 * Be careful using this operator as it will always consume the entire cursor and create objects
 * for each row, every time this observable emits a new query. On tables whose queries update
 * frequently or very large result sets this can result in the creation of many objects.
 * <p>
 * This operator ignores {@code null} cursors returned from {@link #run()}.
 *
 * @param mapper Maps the current {@link Cursor} row to {@code T}. May not return null.
 */
@CheckResult @NonNull
public static <T> ObservableOperator<List<T>, Query> mapToList(
    @NonNull Function<Cursor, T> mapper) {
  return new QueryToListOperator<>(mapper);
}
 
 类所在包
 同包方法