public class GroupEvent extends Object
文件名:GroupEvent.java
用途: 提供对单一事件进行组合,形成一个事件组(可看成对多条事件进行提取,形成一个方法), 并根据特定的条件,对相应的事件组进行回放,可根据返回值来获取回放是否成功。
编码时间:2020年12月28日上午8:23:55
修改时间:2020年12月28日上午8:23:55
Modifier and Type | Class and Description |
---|---|
class |
GroupEvent.EvenetAction
文件名:GroupEvent.java
|
static interface |
GroupEvent.GroupEventFunction
文件名:GroupEvent.java
|
static interface |
GroupEvent.HasParamGroupEventFunction
文件名:GroupEvent.java
|
static interface |
GroupEvent.NoParamGroupEventFunction
文件名:GroupEvent.java
|
class |
GroupEvent.ParamException
文件名:GroupEvent.java
|
Constructor and Description |
---|
GroupEvent() |
Modifier and Type | Method and Description |
---|---|
Optional<Object> |
action(String eventName)
用于根据组合名称执行事件组合
|
void |
addEvent(String eventName,
GroupEvent.NoParamGroupEventFunction event)
用于添加无参数的事件组合
|
void |
addEvent(String eventName,
Object arg,
GroupEvent.HasParamGroupEventFunction event)
用于添加有参数的事件组合。
|
Optional<Object> |
exceptionAction(String mustActionEventName,
Class<? extends Exception> exceptionClass,
String exceptionActionEventName)
执行相应的事件组,当事件组抛出指定的异常时,则执行相应的事件组。
|
Optional<Object> |
exceptionAction(String mustActionEventName,
HashMap<Class<? extends Exception>,String> exceptionActionEventNameMap)
执行相应的事件组,当事件组抛出指定的异常时,则执行相应的事件组。使用该方法,可指定多个异常,并针对 不同的异常执行不同的事件组。
|
List<Optional<Object>> |
failAction(String mustActionEventName,
String aftreActionEventName)
用于执行指定的事件组失败后,再执行另一个指定的事件组,若另一事件组名称为空 或为null时,则不执行方法也不存储结果
|
List<Optional<Object>> |
ifSuccessOrElseAction(String mustActionEventName,
String successActionEventName,
String failActionEventName)
用于执行指定的事件组,并根据执行是否成功(是否报错),再执行其相应事件组,并将两者的返回结果进行存储1,以集合形式返回
|
Optional<Object> |
mapAction(Function<Object,Object> mapper,
String... eventNames)
用于执行事件组,并将事件组的执行结果,经过预设的处理后,传入到下一个事件组中作为执行参数, 直到执行完毕,返回最后一个事件组处理的结果
|
Optional<Object> |
mapAction(String... eventNames)
用于执行事件组,并将事件组的执行结果传入到下一个事件组中作为执行参数, 直到执行完毕,返回最后一个事件组处理的结果
|
List<Optional<Object>> |
orderlyAction(Predicate<Optional<Object>> predicate,
String... eventNames)
用于按照顺序执行事件,并将每条事件的结果进行判断,若判断不通过,则终止运行。
|
List<Optional<Object>> |
orderlyAction(String... eventNames)
用于按照顺序执行事件。
|
void |
setExceptionBreak(boolean isExceptionBreak)
设置在连续执行事件时,是否由于某一方法执行失败而终止运行
|
List<Optional<Object>> |
successAction(String mustActionEventName,
String aftreActionEventName)
用于执行指定的事件组成功后,再执行另一个指定的事件组,若另一事件组名称为空 或为null时,则不执行方法也不存储结果
|
List<Optional<Object>> |
whileAction(Predicate<List<Optional<Object>>> predicate,
String... eventNames)
用于循环执行一组事件组,并将每个结果进行判断,若判断不通过,则终止循环,并返回最后一次事件组的执行结果
|
public void setExceptionBreak(boolean isExceptionBreak)
isExceptionBreak
- 失败是否继续执行public void addEvent(String eventName, GroupEvent.NoParamGroupEventFunction event)
eventName
- 事件组合名称event
- 相应的一组操作public void addEvent(String eventName, Object arg, GroupEvent.HasParamGroupEventFunction event)
其中,执行方法中的参数为Object的封装类型,其可获取后强转为所需要的类型进行使用,而形参arg为
需要传入到执行方法中的参数,无需使用Optional
类进行封装。例如,假设类的对象为test,则调用方法 时可以写为:
test.addEvent("测试", 1,
text -> Optional.ofNullable("当前参数:" + text.map(t -> (Integer) t).orElse(-1)));
System.out.println(test.actionEvent("测试").orElse("错误"));//输出:当前参数:1
eventName
- 事件组合名称arg
- 需要传入到事件组中的传参event
- 相应的一组操作GroupEvent.ParamException
- 事件组名称为null或为空串时或事件组执行方法为null时抛出的异常public Optional<Object> action(String eventName)
eventName
- 事件名称GroupEvent.ParamException
- 事件组名称不存在时抛出的异常public List<Optional<Object>> ifSuccessOrElseAction(String mustActionEventName, String successActionEventName, String failActionEventName)
注意:
List
的形式存储,
其第一个元素为原方法返回值,第二个元素为成功或失败方法返回值mustActionEventName
- 原执行的事件组名称successActionEventName
- 原事件组执行成功后执行的事件组名称failActionEventName
- 原事件组执行失败后执行的事件组名称GroupEvent.ParamException
- 事件组名称不存在时抛出的异常public List<Optional<Object>> successAction(String mustActionEventName, String aftreActionEventName)
mustActionEventName
- 原执行的事件组名称aftreActionEventName
- 原事件组执行成功后执行的事件组名称GroupEvent.ParamException
- 原事件组名称未指定或事件组名称不存在时抛出的异常public List<Optional<Object>> failAction(String mustActionEventName, String aftreActionEventName)
mustActionEventName
- 原执行的事件组名称aftreActionEventName
- 原事件组执行失败后执行的事件组名称GroupEvent.ParamException
- 原事件组名称未指定或事件组名称不存在时抛出的异常public List<Optional<Object>> orderlyAction(String... eventNames)
注意:
setExceptionBreak(boolean)
方法中设置false时,则当事件运行失败后,其相应的执行结果存储为Optional.empty()
,并继续运行下一个事件组eventNames
- 执行方法名称组GroupEvent.ParamException
- 原事件组名称未指定或事件组名称不存在时抛出的异常public List<Optional<Object>> orderlyAction(Predicate<Optional<Object>> predicate, String... eventNames)
predicate
- 继续执行条件,其参数为上一个事件组执行的结果eventNames
- 执行方法名称组GroupEvent.ParamException
- 原事件组名称未指定或事件组名称不存在时抛出的异常orderlyAction(String...)
public List<Optional<Object>> whileAction(Predicate<List<Optional<Object>>> predicate, String... eventNames)
注意:无论条件如何设置,其事件组都会执行一次
predicate
- 继续执行条件,其参数为上一次事件组执行的一组结果eventNames
- 执行方法名称组GroupEvent.ParamException
- 原事件组名称未指定或事件组名称不存在时抛出的异常orderlyAction(String...)
public Optional<Object> exceptionAction(String mustActionEventName, Class<? extends Exception> exceptionClass, String exceptionActionEventName)
mustActionEventName
- 事件组名称exceptionClass
- 异常类对象exceptionActionEventName
- 产生异常时执行的事件组名称public Optional<Object> exceptionAction(String mustActionEventName, HashMap<Class<? extends Exception>,String> exceptionActionEventNameMap)
注意:若执行事件组抛出的异常不在所传入的捕捉列表中,则抛出该异常
mustActionEventName
- 事件组名称exceptionActionEventNameMap
- 异常类与产生相应异常时执行的事件组名称键值对public Optional<Object> mapAction(String... eventNames)
eventNames
- 一组事件组名称public Optional<Object> mapAction(Function<Object,Object> mapper, String... eventNames)
注意:设置的处理方式对第一个事件组的方法传参不生效,对最后一个事件组执行结果也不生效(即不处理 第一个传入事件组的参数和最后一个事件组返回的结果)
mapper
- 参数处理方式eventNames
- 一组事件组名称Copyright © 2024. All rights reserved.