Java 虽然加载了模型和模块,但不会生成任何内容,也不会出现错误
我尝试使用Acceleo在Eclipse插件中将模型转换为文本。模型很好,加载的Acceleo模块看起来也很好。不过,acceleo并没有产生任何效果 这是我的密码:Java 虽然加载了模型和模块,但不会生成任何内容,也不会出现错误,java,eclipse,acceleo,Java,Eclipse,Acceleo,我尝试使用Acceleo在Eclipse插件中将模型转换为文本。模型很好,加载的Acceleo模块看起来也很好。不过,acceleo并没有产生任何效果 这是我的密码: AcceleoService as = new AcceleoService(new PreviewStrategy()); URI alfToSpecSharpTemplate; try { alfToSpecSharpTemplate = getTemplateURI("my-valid
AcceleoService as = new AcceleoService(new PreviewStrategy());
URI alfToSpecSharpTemplate;
try {
alfToSpecSharpTemplate = getTemplateURI("my-valid-uri", new Path("/path/to/generate.emtl"));
} catch (IOException e) {
e.printStackTrace();
return null;
}
as.addListener(new IAcceleoTextGenerationListener() {/* print every method name on call */});
ResourceSet mtlSet = new ResourceSetImpl();
final Resource mtlRessource = mtlSet.getResource(alfToSpecSharpTemplate, true);
final Module module = (Module) mtlRessource.getContents().get(0);
List<Object> arguments = new ArrayList<Object>();
Map<String, String> result = as.doGenerate(module, "generateElement", myModel, arguments, null, new BasicMonitor());
System.out.println("Generation: " + as.hasGenerationOccurred());
我的问题是没有生成任何内容,即结果是一个空映射。此外,生成:false打印到控制台。尤其是没有打印错误
有人知道出了什么问题吗?我曾经让它工作过一次,但我无法让它再工作。通过Acceleo进行调试,我终于发现了我的错误。Acceleo只查看标有[comment@main/]的模板。因为我没有这样的模板,Acceleo什么也不做。因此,修复方法是只添加@main:
[comment encoding = UTF-8 /]
[module generate('http://www.eclipse.org/papyrus/alf/Alf')]
[template public generateElement(test : Test) post (trim())]
[file('expr.specs', true)]
[test.block.generateElement() /]
[/file]
[/template]
[template public generateElement(test : Test) post (trim())]
[comment @main /]
[file('expr.specs', true)]
[test.block.generateElement() /]
[/file]
[/template]