在Xtext语法中指定JvmTypeReference的超类型

时间:2015-06-20 15:07:02

标签: java eclipse-plugin xtext

是否可以在Xtext语法中为JvmTypeReference指定所需类型(例如界面)?

示例

Instantiation:
    ('new' type=JvmTypeReference (params=Params)?)
;

type=JvmTypeReference必须是instanceof某个指定的类。

2 个答案:

答案 0 :(得分:1)

这在语法中是不可能的,但您可以通过自定义范围提供程序或提案提供程序实现所需的行为,请参阅此博客文章:https://kthoms.wordpress.com/2012/03/14/how-to-limit-proposed-java-types-to-implementors-of-an-interface/

答案 1 :(得分:0)

您可以实现对JvmConstructor的引用!

Instantiation:
    'new' type=[JvmConstructor|QualifiedName] params=Params?;

你应该在你的语法中使用一个XimportSection然后你可以编写一个范围提供者,你可以直接将范围扩展到任何构造函数。