无法在Acceleo中获得要求

时间:2017-07-25 16:36:09

标签: acceleo papyrus sysml

无法从模型中获取要求。我尝试过getAppliedStereotypes()但它仍然不起作用。代码如下:

context.set_alpn_protocols(['h2'])

另外,从这个页面http://techqa.info/programming/question/35093700/cannot-access-sysml-stereotypes-and-their-properties-in-acceleo,我可以通过generate(re:Requirements :: Requirement)得到Requirement但是它不能满足需要,因为我必须将一些节点值放在模型中,但是这个模板无法获取模型信息。或者也许任何关于在模型中获取节点信息的解决方案只能得到要求?

1 个答案:

答案 0 :(得分:0)

我有一个非常类似的问题,为了解决这个问题,我在这里提出了这个问题,我现在相信已经找到了答案。我运行我的SysML模型的类并确定它们是块还是要求。根据我调用不同的导入模板:

[comment encoding = UTF-8 /]
[module main('http://www.eclipse.org/papyrus/sysml/1.4/SysML', 'http://www.eclipse.org/uml2/5.0.0/UML')]

[import MULTIC_TOOLING_GenSystemC::files::modRequirement /]
[import MULTIC_TOOLING_GenSystemC::files::modBlock /]

[template public mainTemplate(aClass : Class)]

    [comment @main/]
    [if (aClass.getAppliedStereotype('SysML::Blocks::Block')->notEmpty())]
        [let aBlock : Block = aClass.getStereotypeApplication(aClass.getAppliedStereotype('SysML::Blocks::Block'))]
        [tempBlock(aBlock)/]
        [/let]
    [/if]
    [if (aClass.getAppliedStereotype('SysML::Requirements::Requirement')->notEmpty())]
        [let aRequirement : Requirement = aClass.getStereotypeApplication(aClass.getAppliedStereotype('SysML::Requirements::Requirement'))]
            [tempRequirement(aRequirement)/]
        [/let]
    [/if]

[/template]