Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.github.edgar615.util.vertx.task.Tuple6Task Maven / Gradle / Ivy
package com.github.edgar615.util.vertx.task;
import com.github.edgar615.util.vertx.function.Consumer6;
import com.github.edgar615.util.vertx.function.Consumer7;
import com.github.edgar615.util.vertx.function.Function6;
import com.github.edgar615.util.vertx.function.Function7;
import com.github.edgar615.util.vertx.function.Tuple6;
import io.vertx.core.Future;
/**
* Created by Edgar on 2016/7/26.
*
* @author Edgar Date 2016/7/26
*/
public interface Tuple6Task extends Task> {
/**
* 将Task> 转换为Tuple6Task
*
* @param task
* @param
* @param * @param
* @return Tuple6Task
*/
default Tuple6Task cast(
final Task> task) {
return new Tuple6TaskDelegate<>(task);
}
/**
* 任务完成之后,将结果转换为其他对象.
*
* @param function function类
* @param 转换后的类型
* @return task
*/
default Task map(Function6 function) {
return mapWithFallback(function, null);
}
/**
* 任务完成之后,将结果转换为其他对象.
*
* @param function function类
* @param fallback 如果function出现异常,回退的操作
* @param 转换后的类型
* @return task
*/
default Task mapWithFallback(Function6 function,
Function7 fallback) {
return mapWithFallback("map: " + function.getClass().getName(), function, fallback);
}
/**
* 任务完成之后,将结果转换为其他对象.
*
* @param desc 任务描述
* @param function function类
* @param 转换后的类型
* @return task
*/
default Task map(String desc, Function6 function) {
return mapWithFallback(desc, function, null);
}
/**
* 任务完成之后,将结果转换为其他对象.
*
* @param desc 任务描述
* @param function function类
* @param fallback 如果function出现异常,回退的操作
* @param 转换后的类型
* @return task
*/
default Task mapWithFallback(String desc, Function6 function,
Function7 fallback) {
if (fallback == null) {
return map(desc, t -> function.apply(t.getT1(), t.getT2(),
t.getT3(), t.getT4(), t.getT5(), t.getT6()));
}
return mapWithFallback(desc, t -> function.apply(t.getT1(), t.getT2(),
t.getT3(), t.getT4(), t.getT5(), t.getT6()),
(r, t) -> fallback.apply(r, t.getT1(), t.getT2(),
t.getT3(), t.getT4(), t.getT5(), t.getT6()));
}
/**
* 任务完成后,根据结果做一些额外操作.
*
* @param consumer consumer类
* @return task
*/
default Tuple6Task andThen(Consumer6 consumer) {
return andThenWithFallback(consumer, null);
}
/**
* 任务完成后,根据结果做一些额外操作.
*
* @param consumer consumer类
* @param fallback 如果consumer出现异常,回退的操作
* @return task
*/
default Tuple6Task andThenWithFallback(
Consumer6 consumer,
Consumer7 fallback) {
return andThenWithFallback("andThen: " + consumer.getClass().getName(), consumer, fallback);
}
/**
* 任务完成后,根据结果做一些额外操作.
*
* @param desc 任务描述
* @param consumer consumer类
* @return task
*/
default Tuple6Task andThen(String desc,
Consumer6 consumer) {
return andThenWithFallback(desc, consumer, null);
}
/**
* 任务完成后,根据结果做一些额外操作.
*
* @param desc 任务描述
* @param consumer consumer类
* @param fallback 如果consumer出现异常,回退的操作
* @return task
*/
default Tuple6Task andThenWithFallback(
String desc,
Consumer6 consumer,
Consumer7 fallback) {
if (fallback == null) {
return cast(andThen(desc, t -> consumer.accept(t.getT1(), t.getT2(),
t.getT3(), t.getT4(), t.getT5(), t.getT6())));
}
return cast(andThenWithFallback(desc, t -> consumer.accept(t.getT1(), t.getT2(),
t.getT3(), t.getT4(), t.getT5(),
t.getT6()),
(r, t) -> fallback.accept(r, t.getT1(), t.getT2(),
t.getT3(), t.getT4(), t.getT5(),
t.getT6())));
}
/**
* 任务完成之后,让结果传递给另外一个任务执行,futureFunction用来使用结果创建一个新的任务.
*
* @param function function类,将结果转换为一个新的future
* @param
* @return
*/
default Task flatMap(Function6> function) {
return flatMapWithFallback(function, null);
}
/**
* 任务完成之后,让结果传递给另外一个任务执行,futureFunction用来使用结果创建一个新的任务.
*
* @param function function类,将结果转换为一个新的future
* @param
* @return
*/
default Task flatMapWithFallback(Function6> function,
Function7
fallback) {
return flatMapWithFallback("flatMap: " + function.getClass().getName(),
function,
fallback);
}
/**
* 任务完成之后,让结果传递给另外一个任务执行,futureFunction用来使用结果创建一个新的任务.
*
* @param desc 任务描述
* @param function function类,将结果转换为一个新的future
* @param
* @return
*/
default Task flatMap(String desc, Function6> function) {
return flatMap(desc, t -> function.apply(t.getT1(), t.getT2(),
t.getT3(), t.getT4(), t.getT5(), t.getT6()));
}
/**
* 任务完成之后,让结果传递给另外一个任务执行,futureFunction用来使用结果创建一个新的任务.
*
* @param desc 任务描述
* @param function function类,将结果转换为一个新的future
* @param fallback 如果function出现异常,回退的操作. 这个回退操作,不再返回一个Future,而是直接返回一个特定的值
* @param
* @return
*/
default Task flatMapWithFallback(String desc,
Function6> function,
Function7
fallback) {
if (fallback == null) {
return flatMap(desc, t -> function
.apply(t.getT1(), t.getT2(), t.getT3(), t.getT4(), t.getT5(), t.getT6()));
}
return flatMapWithFallback(desc,
t -> function.apply(t.getT1(), t.getT2(),
t.getT3(), t.getT4(), t.getT5(), t.getT6()),
(r, t) -> fallback.apply(r, t.getT1(), t.getT2(), t.getT3(),
t.getT4(), t.getT5(), t.getT6()));
}
}