|
|
Re: multiple generators - Xtext2, xtend2 [message #759958 is a reply to message #759954] |
Wed, 30 November 2011 17:34   |
|
Here a complete sample von B
class MyDslGeneratorA implements IGenerator {
override void doGenerate(Resource resource, IFileSystemAccess fsa) {
fsa.generateFile("a.txt","A")
}
}
class MyDslGeneratorB implements IGenerator {
override void doGenerate(Resource resource, IFileSystemAccess fsa) {
fsa.generateFile("b.txt","B")
}
}
public class MyDslStandaloneSetupGenA extends MyDslStandaloneSetup {
public Injector createInjector() {
return Guice.createInjector(new org.xtext.example.mydsl.MyDslRuntimeModule() {
@Override
public Class<? extends IGenerator> bindIGenerator() {
return MyDslGeneratorA.class;
}
});
}
}
public class MyDslStandaloneSetupGenB extends MyDslStandaloneSetup {
public Injector createInjector() {
return Guice.createInjector(new org.xtext.example.mydsl.MyDslRuntimeModule() {
@Override
public Class<? extends IGenerator> bindIGenerator() {
return MyDslGeneratorB.class;
}
});
}
}
component = org.eclipse.xtext.generator.GeneratorComponent {
register = org.xtext.example.mydsl.MyDslStandaloneSetupGenA {}
slot = 'model'
outlet = {
path = targetDir
}
}
component = org.eclipse.xtext.generator.GeneratorComponent {
register = org.xtext.example.mydsl.MyDslStandaloneSetupGenB {}
slot = 'model'
outlet = {
path = targetDir
}
}
so the keypoint is that the generated binding for IGenerator points to MydslGenerator
thus this one is used in Main / Workflow (and Builder)
~Christian
Need professional support for Xtext, Xpand, EMF?
Go to: https://www.itemis.com/en/it-services/methods-and-tools/xtext
Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
|
|
|
|
Powered by
FUDForum. Page generated in 0.01709 seconds