我将一个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的模型中。
答案 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;