Spring Statemachine:关于选择状态转换的行动是不可能的?

时间:2015-09-09 14:22:30

标签: state-machine spring-statemachine

似乎忽略了添加到选择伪状态的操作。这样做:

Builder builder = StateMachineBuilder.builder();
StateConfigurer states = builder.configureStates().withStates();
StateMachineTransitionConfigurer transitions = builder.configureTransitions();
StateConfigurer statesConfig = states.initial(INITIAL).states(EnumSet.allOf(StateType.class));
statesConfig.choice(StateType.CHOICE_STATE);

transitions.withChoice().source(StateType.CHOICE_STATE). //
    first(StateType.S1, someGuard). //
    last(StateType.S2);

states.state(StateType.CHOICE_STATE, someAction, null);

在输入CHOICE_STATE时,someAction中的结果从未执行。

框架根本不允许向CHOICE_STATE之外的转换添加操作(例如,上面的S1或S2)。

为了解决这个问题,我们实施了一个在CHOICE_STATE之前的状态。然后,我们可以像往常一样自由地向此状态添加操作。我只是想知道这种限制的原因是什么,或者是否有某种方法可以对我可能错过的伪状态采取行动。

0 个答案:

没有答案