当前位置: 首页 > 知识库问答 >
问题:

Spring Statemachine--从UML构建分层状态机

施选
2023-03-14

Short:有没有可能在纸莎草中创建层次结构(嵌套的)statemachine UML图,然后用它来构建工作的statemachine实例

  1. 在我的主计算机中创建状态并将另一个子计算机链接到它(属性->submachine)
  2. 在单个状态机中创建所有内容,用子状态创建状态

在这两种情况下,创建的Spring statemachine都不能识别子机状态。

当我用以下代码列出应用程序中的所有状态时:

public List<String> getAllStates() {
    List<String> list = new ArrayList<>();
    Collection<State<String, String>> states = machine.getStates();
    for (State state : states) {
        Collection<State<String, String>> substates = state.getStates();
        for (State<String, String> substate : substates) {
            list.add(substate.getIds().toString());
        }
    }
    return list;
}

共有1个答案

沈树
2023-03-14

链接子机还不起作用,但对UML子状态机#121的支持正在起作用。

子状态需要像您尝试的那样在一台机器中配置。用于此的Uml测试源代码位于simple-submachine.Uml。如果你发布了你的uml xml,我可以看看是否有明显的缺失(或者把所有3个纸莎草文件,di,notation,uml)放在某个地方(也许是github gist)这样我就可以用纸莎草打开它了。

 类似资料:
  • 我试图收集信息,以便为UML状态机编写正确的转换选择算法。 UML上层结构规范(15.3.12 StateMachine)规定 只有在相互正交的区域中发生的转换才能同时触发。 “相互正交”是否意味着这些区域处于相同的嵌套级别? 对于给定级别的每个状态,将评估所有原始转换,以确定它们是否已启用。 在我看来,它们必须在同一个嵌套层上。正当因为如果在某个嵌套级别上找到一个转换,搜索就会结束。。。 第二个

  • 当库配置机器时,我已经浏览了它,但我仍然看不到注释函数是在哪里/如何添加的。谷歌帮不上什么忙,通常会直接把我送到Spring文档,这些文档似乎没有覆盖我的用例。

  • 我已经使用Spring状态机一年多了,现在根据我的需求尝试了不同的实现方法,当我使用UML时,我遇到了一个严重的问题。 我使用纸莎草来绘制UML,我有许多UML存储在某个位置。我需要使用的是动态选择的。这已经做得很成功了。现在我遇到了一个严重的问题。下面是我如何调用UML的代码。 您可以看到,我使用了新的UmlStateMachineModelFactory(资源); UmlStateMachin

  • 问题内容: 我们已经在内部安装了Jenkins v2.7.3和Bitbucket Server v4.9.1,并希望将构建状态作为通知从Jenkins发送到Bitbucket Server。 到目前为止,我只找到了针对Bitbucket Cloud的解决方案(1和2),但没有找到针对Bitbucket Server的解决方案。关于如何实现这一目标的任何提示? https://wiki.jenkin

  • 有什么办法可以做到吗? 我在考虑调用一些Azure REST API作为Jenkins中的构建后操作,但是似乎没有API允许设置提交的状态,也没有API允许为从未由Azure DevOps本身启动的构建插入数据。

  • 我有一个父子关系数据库。数据如下所示,但可以以任何方式呈现(字典、列表列表、JSON等)。 我需要的输出是一个层次化的JSON树,它将用d3呈现。数据中有离散的子树,我将附加到根节点。所以我需要递归地遍历链接,并建立树结构。我最多只能遍历所有人并附加他们的孩子,但我不知道如何进行高阶链接(例如,如何将有孩子的人附加到其他人的孩子)。这类似于这里的另一个问题,但我无法提前知道根节点,因此无法实现公认