package com.tuoheng.machine.instruction; /** * 抽象指令基类,提供默认实现和下游节点管理 */ public abstract class AbstractInstruction implements Instruction { /** * 成功后执行的下一个指令 */ private Instruction onSuccessInstruction; /** * 失败后执行的下一个指令 */ private Instruction onFailureInstruction; /** * 无论成功失败都执行的下一个指令 */ private Instruction alwaysNextInstruction; @Override public Instruction getOnSuccessInstruction() { return onSuccessInstruction; } @Override public Instruction getOnFailureInstruction() { return onFailureInstruction; } @Override public Instruction getAlwaysNextInstruction() { return alwaysNextInstruction; } /** * 设置成功后执行的指令(支持链式调用) */ public T onSuccess(Instruction instruction) { this.onSuccessInstruction = instruction; return (T) this; } /** * 设置失败后执行的指令(支持链式调用) */ public T onFailure(Instruction instruction) { this.onFailureInstruction = instruction; return (T) this; } /** * 设置无论成功失败都执行的指令(支持链式调用) */ public T then(Instruction instruction) { this.alwaysNextInstruction = instruction; return (T) this; } }