Spring Statemachine:如何获得选择状态的转换?

马克

我因此配置了一个状态机:

    StateMachineTransitionConfigurer transitions = builder.configureTransitions();
    transitions.withChoice().source(CHOICE). //
    first(A, aGuard). //
    then(B, bGuard). //
    last(C);

然后,在另一个地方,我想从此配置中进行选择过渡。而我可以通过以下操作轻松地获得选择状态:

    for (final State smState : stateMachine.getStates()) {
        if (smState.getPseudoState() != null && smState.getPseudoState().getKind() == PseudoStateKind.CHOICE) {
// smState is a choice state
        }
    }

我不知道如何从这些选择状态(上面的“第一个”,“然后”和“最后一个”)获取转换列表。

似乎无法访问此信息。我对吗?

马克

我们最终通过对ChoicePseudoState的“ choices”属性进行内省来解决了这个问题,由于某些原因,该属性没有访问器:

    final Field choicesField = ChoicePseudoState.class.getDeclaredField("choices");
    choicesField.setAccessible(true);

    for (final State<SessionStateType, SessionEvent> smState : stateMachine.getStates()) {
        if (smState.getPseudoState() != null && smState.getPseudoState().getKind() == PseudoStateKind.CHOICE) {
            final ChoicePseudoState<SessionStateType, SessionEvent> choice = ((ChoicePseudoState<SessionStateType, SessionEvent>) smState
                .getPseudoState());
            final List<ChoiceStateData<SessionStateType, SessionEvent>> choices = (List<ChoiceStateData<SessionStateType, SessionEvent>>) choicesField
                .get(choice);

...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Statemachine:无法对选择状态转换进行操作?

来自分类Dev

Spring Statemachine-来自UML的构建分层状态机

来自分类Dev

如何将Spring Integration XML转换为Java DSL以获得errorChannel

来自分类Dev

Spring Mock MVC保证测试无法获得状态

来自分类Dev

用于实现游戏逻辑的 Spring Statemachine

来自分类Dev

Spring Converter如何获得交易范围?

来自分类Dev

如何在 Spring Query 中使用内部连接查询转换选择

来自分类Dev

Spring RestTemplete获得GeoJson

来自分类Dev

Spring Batch未知状态

来自分类Dev

spring RequestMapping 404状态

来自分类Dev

如何为Spring Boot Webapp选择URL?

来自分类Dev

如何选择正确的JDK JavaEE Spring版本

来自分类Dev

Spring MVC如何转换@RequestParam值?

来自分类Dev

Spring 对象转换

来自分类Dev

JpaStateMachineRepository 在 Spring StateMachine 2.0.0 中不可用

来自分类Dev

Spring MVC。HTTP状态404

来自分类Dev

Spring Security Http状态406

来自分类Dev

Spring MVC验证状态400

来自分类Dev

Spring MVC。HTTP状态404

来自分类Dev

如何获得Spring的form:option以不忽略我的数据属性?

来自分类Dev

如何使用JavaScript在Spring MVC中获得对JSP的Unicode响应

来自分类Dev

如何在Spring中通过JNDI名称获得DataSource连接?

来自分类Dev

如何在使用Spring Social中获得Facebook朋友列表

来自分类Dev

如何在 Maven 上获得 4.0 版本的 spring jar?

来自分类Dev

如何在@WebMvcTest 中获得 Spring Boot 默认验证响应?

来自分类Dev

如何为Spring XD配置Spring InboundChannelAdapter?

来自分类Dev

Spring MVC:Spring Bean如何工作?

来自分类Dev

如何通过 Spring 获取给定 URL 的 HTTP 状态代码?

来自分类Dev

Spring Security身份验证后获得HTTP状态404错误

Related 相关文章

热门标签

归档