在xtext的自动代码生成期间创建访问文件

时间:2017-01-06 19:46:50

标签: eclipse xtext ecore

我将一个dsl(A)转换为另一个dsl(B)在xtext中创建。

A的代码生成类似于

override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
    fsa.generateFile('transformed.wp', resource.allContents.filter(typeof(ActionSystem)).map [
        compile
    ].join(', '))

    val rs = new ResourceSetImpl();
    val r = rs.getResource(URI.createPlatformResourceURI('transformed.wp'), true);
    val List<EObject> contentOfYourFile = r.getContents();
    }

错误是我调用URI.createPlatformResourceURI('transformed.wp')无法找到该文件。

如何访问'transformed.wp'文件。

这个想法是在生成代码后将A的emf模型的一部分复制到B的模型中。

1 个答案:

答案 0 :(得分:0)

解决方案在IFileSystemAccess2

//create the file name
var fileuri = fsa.getURI('transformed.wp');
//get the name of the resource
var resource_name = fileuri.toString();
//get eh name of the resource
var file = fileuri.lastSegment;