使用stateless4j我正在尝试执行操作以响应具有某个特定状态的参数的事件。处理完事件后,我不想改变状态。
由于stateless4j不支持对事件的操作(虽然我看到有一个待处理的补丁)我反而滥用了permitDynamic()并使用选择器来执行我的操作。然后我在选择器中返回相同的状态。因此,在下面的代码中,action_activated_serviceRegistered
会返回FsmState.ACTIVATED
。
activationFsmConfig
.configure(FsmState.ACTIVATED)
.onEntry(fsmFunctions::action_activated_entry)
.onExit(fsmFunctions::action_activated_exit)
.permitDynamic(new TriggerWithParameters1<>(Trigger.SERVICE_REGISTERED, ServiceReference.class), fsmFunctions::action_activated_serviceRegistered);
我遇到的问题是,即使我没有改变状态,我州的退出和进入操作也会被解雇。
有更好的方法吗?
答案 0 :(得分:1)
也许你可以在.ignoreIf(触发器,后卫)的防护条件下执行你的动作。