Как добавить пользовательские операторы импорта в сгенерированный файл Java в xtext с помощью jvmmodelInferrer?

Я написал грамматику для своего предметного языка в xtext и использую jvmmodelInferrer для генерации кода Java. Я могу создавать поля и пользовательские методы, но как я могу добавить пользовательские операторы импорта, такие как «import java.util.*», в сгенерированный файл Java без необходимости явного написания пользователем оператора импорта?


person Kartik Raut    schedule 28.03.2019    source источник
comment
в этом не должно быть необходимости. можете ли вы дать больше контекста о том, что вы делаете в inferrer   -  person Christian Dietrich    schedule 28.03.2019
comment
Мне нужно выполнить SQL-запросы. Итак, я сгенерировал код для выполнения SQL-запросов, но мне нужно сгенерировать оператор импорта «import java.sql.*». Итак, как я могу создать оператор импорта?   -  person Kartik Raut    schedule 28.03.2019


Ответы (1)


вы не генерируете строки импорта. вы просто правильно используете расширенные строки, и все происходит автоматически

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;
                '''
            ]
        ]
    }
}
person Christian Dietrich    schedule 28.03.2019
comment
Спасибо, я никогда не думал об этом. - person Kartik Raut; 28.03.2019