2

I have written a grammar for my domain specific language in xtext and I am using jvmmodelInferrer to generate java code. I can generate fields and custom methods but how can I add custom import statements like 'import java.util.*' in the generated java file without the user having to explicitly write the import statement?

  • there should be no need for that. can you give more context about what you do in the inferrer – Christian Dietrich Mar 28 '19 at 17:34
  • I have to execute SQL queries. So I have generated code for execution of SQL queries but I need to generate an import statement 'import java.sql.*'. So how can i generate the import statement? – Kartik Raut Mar 28 '19 at 18:06

1 Answers1

3

you dont generate import strings. you just use rich strings in a proper way and everything happens automatically

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;
                '''
            ]
        ]
    }
}
Christian Dietrich
  • 11,778
  • 4
  • 24
  • 32