如何使用jvmmodelInferrer在xtext的生成的Java文件中添加自定义导入语句?

时间:2019-03-28 10:25:55

标签: dsl xtext xtend xbase

我已经用xtext为我的领域特定语言编写了语法,并且正在使用jvmmodelInferrer生成Java代码。我可以生成字段和自定义方法,但是如何在生成的Java文件中添加自定义导入语句,例如“ import java.util。*”,而无需用户明确编写import语句?

1 个答案:

答案 0 :(得分:3)

您不生成导入字符串。您只需以适当的方式使用丰富的字符串,一切都会自动发生

def dispatch void infer(Model element, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
    for (greeting : element.greetings) {
        acceptor.accept(greeting.toClass("demo." + greeting.name)) [
            members += greeting.toMethod("demo", Void.TYPE.typeRef) [
                body = '''
                «JFrame» f = null;
                «"java.util.List".typeRef("java.lang.String".typeRef)» l = null;
                return;
                '''
            ]
        ]
    }
}