Package pers.neige.neigeitems.action
Class Action
-
- All Implemented Interfaces:
public abstract class Action
-
-
Constructor Summary
Constructors Constructor Description Action(BaseActionManager manager)
-
Method Summary
Modifier and Type Method Description ActionType
getType()
CompletableFuture<ActionResult>
evalAsyncSafe(@NonNull() BaseActionManager manager, @NonNull() ActionContext context)
boolean
canRunInOtherThread()
当前动作是否可以在非主线程运行. CompletableFuture<ActionResult>
evalAsyncSafe(@NonNull() ActionContext context)
CompletableFuture<ActionResult>
eval(@NonNull() ActionContext context)
Action
insertBefore(@Nullable() Object action)
向当前动作前插入一个动作, 并返回合并后的新动作. Action
insertAfter(@Nullable() Object action)
向当前动作后插入一个动作, 并返回合并后的新动作. -
-
Constructor Detail
-
Action
Action(BaseActionManager manager)
-
-
Method Detail
-
getType
@NonNull() ActionType getType()
-
evalAsyncSafe
@NonNull() CompletableFuture<ActionResult> evalAsyncSafe(@NonNull() BaseActionManager manager, @NonNull() ActionContext context)
-
canRunInOtherThread
boolean canRunInOtherThread()
当前动作是否可以在非主线程运行. 假设当前动作是单一动作, 比如 String 类型动作. 那么此方法应反映当前动作的运行逻辑. 假设当前动作是多个动作的组合, 比如 List 类型动作. 那么, 只有组合内所有动作均需要在主线程运行时, 当前动作组合才需要在主线程运行. 或者说, 只要组合内存在不需要在主线程运行的动作, 就认定该动作组合不需要在主线程运行. 具体原因与线程切换判断有关, 是为了防止混合动作执行过程中频繁地反复横跳.
-
evalAsyncSafe
@NonNull() CompletableFuture<ActionResult> evalAsyncSafe(@NonNull() ActionContext context)
-
eval
@NonNull() CompletableFuture<ActionResult> eval(@NonNull() ActionContext context)
-
insertBefore
@NonNull() Action insertBefore(@Nullable() Object action)
向当前动作前插入一个动作, 并返回合并后的新动作.
- Parameters:
action
- 插入的动作- Returns:
新动作
-
insertAfter
@NonNull() Action insertAfter(@Nullable() Object action)
向当前动作后插入一个动作, 并返回合并后的新动作.
- Parameters:
action
- 插入的动作- Returns:
新动作
-
-
-
-