uml - Xpand中UML PrimitiveType的Property的Type字段未填写

标签 uml code-generation xtend acceleo xpand

我有一个从 UML 模型生成文本的 XPT 模板。这是我在类的属性上使用的摘录

«FOREACH attribute AS a»
    Id: «a.name»
    Type: «a.type.name»
«ENDFOREACH»

只要 type 一切正常是模型本身的一个类。但如果是原始类型,那么所有字段,包括 name , 设置为 null .如果我改变 «a.type.name»«a.type» ,那么响应是这样的:
org.eclipse.uml2.uml.internal.impl.PrimitiveTypeImpl@6e315086 (eProxyURI:
     pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String)

调试器显示只有 eStorage在对象上设置了私有(private)字段,这就是 toString() 的原因产生上面的输出。

有趣的是,Acceleo 中的相同表达式被正确评估:
[query public getType(t : Type) : String = t.name /]

问:我怎样才能得到type在 Xtend 中为原始 uml 类型填写属性字段?

编辑:问题缩小到这个问题:EProxy URI does not resolve in ecore model

最佳答案

Acceleo生成的代码可以解决异常pathmap:// eProxyURI。默认情况下,简单的 Xpand 模板或 Xtend 代码无法解析它们。见 this question有关更多详细信息和解决方案。

关于uml - Xpand中UML PrimitiveType的Property的Type字段未填写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17088161/

相关文章:

gradle - 使用gradle定义生成器代码位置以构建xtext和xtend

uml - 子系统和组件之间的区别

java - 基于 UML 图的结果?

c++ - 是否可以使用 Qt(没有 XSD 工具)从 xsd 生成 C++ 类?

java - 是否有类似 .NET 的 Java T4 之类的东西?

java - Guice:在默认构造函数中使用注入(inject)的类作为局部变量

java - "is unique"Eclipse UML 代表什么?

UML 事件图结合了连接和 fork 节点

scala - 在 Scala 中构建配置 DSL

xtend - 如何从 Xpand 调用 Java 代码?