如何在xtext中使用类型注释?

时间:2018-01-05 11:58:23

标签: xtext type-annotation

如何使用JvmModelInferrer添加如下字段?

public final @IdInstance long id;

我已经拥有的是:

members += domainId.toField('id', Long.TYPE.typeRef()) [
    visibility = JvmVisibility.PUBLIC
    final = true
]

生成这个java代码:

public final long id;

但我无法弄清楚如何将IdInstance注释添加到类型中。

注意:将注释添加到字段有效,但不是我想要的:

members += domainId.toField('id', Long.TYPE.typeRef()) [
    visibility = JvmVisibility.PUBLIC
    final = true
    annotations += 'com.tmtron.dscontrol2.qual.IdInstance'.annotationRef()
]

产生

@IdInstance
public final long id;

1 个答案:

答案 0 :(得分:0)

xbase尚不支持类型注释:请参阅xtext#218

但是有一种简单的方法可以产生我们想要的东西:

JvmTypeReferenceBuilder.typeRef('@IdInstance long')

这将创建一个JvmUnknownTypeReference,它只是将提供的字符串字面写入输出(因此请确保正确输入或使用完全限定的注释)。