类 RetOps<T>

java.lang.Object
com.sie.mbm.mom.framework.common.util.RetOps<T>

public class RetOps<T> extends Object
简化R<T> 的访问操作,例子
 R result = R.ok(0);
 // 使用场景1: 链式操作: 断言然后消费
 RetOps.of(result)
                .assertCode(-1,r -> new RuntimeException("error "+r.getCode()))
                .assertDataNotEmpty(r -> new IllegalStateException("oops!"))
                .useData(System.out::println);

 // 使用场景2: 读取原始值(data),这里返回的是Optional
 RetOps.of(result).getData().orElse(null);

 // 使用场景3: 类型转换
 R s = RetOps.of(result)
        .assertDataNotNull(r -> new IllegalStateException("nani??"))
        .map(i -> Integer.toHexString(i))
        .peek();
 
  • 字段详细资料

    • CODE_SUCCESS

      public static final Predicate<R<?>> CODE_SUCCESS
      状态码为成功
    • HAS_DATA

      public static final Predicate<R<?>> HAS_DATA
      数据有值
    • HAS_ELEMENT

      public static final Predicate<R<?>> HAS_ELEMENT
      数据有值,并且包含元素
    • DATA_AVAILABLE

      public static final Predicate<R<?>> DATA_AVAILABLE
      状态码为成功并且有值
    • original

      private final R<T> original
  • 构造器详细资料

    • RetOps

      RetOps(R<T> original)
  • 方法详细资料

    • of

      public static <T> RetOps<T> of(R<T> original)
    • peek

      public R<T> peek()
      观察原始值
      返回:
      R
    • getCode

      public int getCode()
      读取code的值
      返回:
      返回code的值
    • getData

      public Optional<T> getData()
      读取data的值
      返回:
      返回 Optional 包装的data
    • getDataIf

      public Optional<T> getDataIf(Predicate<? super R<?>> predicate)
      有条件地读取data的值
      参数:
      predicate - 断言函数
      返回:
      返回 Optional 包装的data,如果断言失败返回empty
    • getMsg

      public Optional<String> getMsg()
      读取msg的值
      返回:
      返回Optional包装的 msg
    • codeEquals

      public boolean codeEquals(int value)
      code的值进行相等性测试
      参数:
      value - 基准值
      返回:
      返回ture表示相等
    • codeNotEquals

      public boolean codeNotEquals(int value)
      code的值进行相等性测试
      参数:
      value - 基准值
      返回:
      返回ture表示不相等
    • isSuccess

      public boolean isSuccess()
      是否成功
      返回:
      返回ture表示成功
      另请参阅:
    • notSuccess

      public boolean notSuccess()
      是否失败
      返回:
      返回ture表示失败
    • assertCode

      public <Ex extends Exception> RetOps<T> assertCode(int expect, Function<? super R<T>,? extends Ex> func) throws Ex
      断言code的值
      类型参数:
      Ex - 异常类型
      参数:
      expect - 预期的值
      func - 用户函数,负责创建异常对象
      返回:
      返回实例,以便于继续进行链式操作
      抛出:
      Ex - 断言失败时抛出
    • assertSuccess

      public <Ex extends Exception> RetOps<T> assertSuccess(Function<? super R<T>,? extends Ex> func) throws Ex
      断言成功
      类型参数:
      Ex - 异常类型
      参数:
      func - 用户函数,负责创建异常对象
      返回:
      返回实例,以便于继续进行链式操作
      抛出:
      Ex - 断言失败时抛出
    • assertDataNotNull

      public <Ex extends Exception> RetOps<T> assertDataNotNull(Function<? super R<T>,? extends Ex> func) throws Ex
      断言业务数据有值
      类型参数:
      Ex - 异常类型
      参数:
      func - 用户函数,负责创建异常对象
      返回:
      返回实例,以便于继续进行链式操作
      抛出:
      Ex - 断言失败时抛出
    • assertDataNotEmpty

      public <Ex extends Exception> RetOps<T> assertDataNotEmpty(Function<? super R<T>,? extends Ex> func) throws Ex
      断言业务数据有值,并且包含元素
      类型参数:
      Ex - 异常类型
      参数:
      func - 用户函数,负责创建异常对象
      返回:
      返回实例,以便于继续进行链式操作
      抛出:
      Ex - 断言失败时抛出
    • map

      public <U> RetOps<U> map(Function<? super T,? extends U> mapper)
      对业务数据(data)转换
      类型参数:
      U - 数据类型
      参数:
      mapper - 业务数据转换函数
      返回:
      返回新实例,以便于继续进行链式操作
    • mapIf

      public <U> RetOps<U> mapIf(Predicate<? super R<T>> predicate, Function<? super T,? extends U> mapper)
      对业务数据(data)转换
      类型参数:
      U - 数据类型
      参数:
      predicate - 断言函数
      mapper - 业务数据转换函数
      返回:
      返回新实例,以便于继续进行链式操作
      另请参阅:
    • useData

      public void useData(Consumer<? super T> consumer)
      消费数据,注意此方法保证数据可用
      参数:
      consumer - 消费函数
    • useDataOnCode

      public void useDataOnCode(Consumer<? super T> consumer, int... codes)
      条件消费(错误代码匹配某个值)
      参数:
      consumer - 消费函数
      codes - 错误代码集合,匹配任意一个则调用消费函数
    • useDataIfSuccess

      public void useDataIfSuccess(Consumer<? super T> consumer)
      条件消费(错误代码表示成功)
      参数:
      consumer - 消费函数
    • useDataIf

      public void useDataIf(Predicate<? super R<T>> predicate, Consumer<? super T> consumer)
      条件消费
      参数:
      predicate - 断言函数
      consumer - 消费函数,断言函数返回true时被调用
      另请参阅: