java.lang.Object
cn.wjybxx.btree.Task<T>
cn.wjybxx.btree.LeafTask<T>
cn.wjybxx.btree.leaf.ConditionTask<T>
- 所有已实现的接口:
ICancelTokenListener
条件节点
注意:并非条件节点必须继承该类。
开销问题
Task类是比较大的,如果项目中有大量的条件,需要考虑开销问题。 一种解决方案是:使用Task类做壳,作为条件测试的入口,内部使用自定义类型。
public class ConditionEntry<T> extends LeafTask<T> {
private int type;
private List<ICondition> children = new ArrayList<ICondition>(4);
}
ps:该类其实可以直接继承Task类,以减少继承层次。
- 作者:
- wjybxx date - 2023/11/25
-
字段概要
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明booleancanHandleEvent(Object event) 条件节点正常情况下不会触发事件protected final voidexecute()Task的心跳方法,在Task进入完成状态之前会反复执行。protected voidonEventImpl(Object event) 条件节点正常情况下不会触发事件protected abstract inttest()检查条件 -- 同步返回从类继承的方法 cn.wjybxx.btree.LeafTask
addChildImpl, getChild, getChildCount, indexChild, onChildCompleted, onChildRunning, removeChildImpl, setChildImpl, visitChildren从类继承的方法 cn.wjybxx.btree.Task
addChild, beforeEnter, checkCancel, enter, exit, exportControlFlowOptions, getBlackboard, getCancelToken, getControl, getControlData, getControlFlowOptions, getEnterFrame, getEntity, getExitFrame, getFlags, getGuard, getNormalizedStatus, getPrevStatus, getReentryId, getRunFrames, getSharedProps, getStatus, getTaskEntry, isActiveInHierarchy, isActiveSelf, isAutoListenCancel, isAutoResetChildren, isBreakInline, isCancelled, isCheckingGuard, isCompleted, isExited, isFailed, isFailedOrCancelled, isInlinable, isInvertedGuard, isManualCheckCancel, isRunning, isSlowStart, isStillborn, isSucceeded, onActiveInHierarchyChanged, onCancelRequested, onEvent, refreshActiveInHierarchy, registerCancelListener, removeAllChild, removeChild, removeChild, resetChildrenForRestart, resetForRestart, resetForRestart, setActive, setAutoListenCancel, setAutoResetChildren, setBlackboard, setBreakInline, setCancelled, setCancelToken, setChild, setChildCancelToken, setCompleted, setControl, setControlData, setEnterFrame, setExitFrame, setFailed, setFlags, setGuard, setGuardFailed, setInvertedGuard, setManualCheckCancel, setPrevStatus, setSharedProps, setSlowStart, setSuccess, stop, stop, stop, stopRunningChildren, template_checkGuard, template_execute, template_executeInlined, template_startChild, template_startHook, unsetChildCancelToken, unsetControl
-
构造器详细资料
-
ConditionTask
public ConditionTask()
-
-
方法详细资料
-
execute
protected final void execute()从类复制的说明:TaskTask的心跳方法,在Task进入完成状态之前会反复执行。 1.运行中可通过Task.setSuccess()、Task.setFailed(int)、Task.setCancelled()将自己更新为完成状态。 2.如果不想和Task.enter(int)同步执行,可通过Task.setSlowStart(boolean)实现。 3.不建议直接调用该方法,而是通过模板方法Task.template_execute(boolean)运行。 -
test
protected abstract int test()检查条件 -- 同步返回- 返回:
- 状态码
-
canHandleEvent
条件节点正常情况下不会触发事件- 覆盖:
canHandleEvent在类中Task<T>
-
onEventImpl
条件节点正常情况下不会触发事件- 指定者:
onEventImpl在类中Task<T>
-