2012-11-14 57 views
0

我有一個的Xtext DSL,我想重複使用的規則,終端等在我.xtext文件中定義生成對參與項目的其他一些工具的配置文件。配置文件使用類似於BNF的語法,所以它與實際的Xtext內容非常相似,並且它只需要最少的轉換。從理論上講,我可以很容易地編寫一個腳本,將解析的Xtext吐出我的配置...的Xtext/EMF怎麼辦模型到模型轉換?

的問題是,我怎麼去,使之與整個生態系統配合實現它?換句話說 - 如何在Xtext/EMF中進行模型到模型的轉換?

回答

1

如果我理解你糾正你想從XTEXT模型的EMF模型中去。下面是一個代碼示例,可以在必要時替換您的模型。

public static BeachScript loadScript(String file) throws BeachScriptLoaderException { 
    try { 
     Injector injector = new BeachStandaloneSetup().createInjectorAndDoEMFRegistration(); 
     XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); 
     resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE); 
     Resource resource = resourceSet.createResource(URI.createURI("test.beach")); 
     InputStream in = new ByteArrayInputStream(file.getBytes()); 
     resource.load(in, resourceSet.getLoadOptions()); 
     BeachScript model = (BeachScript) resource.getContents().get(0); 
     return model; 

    } catch (Exception e) { 
     throw new BeachScriptLoaderException("Exception Loading Beach Script " + e.toString(),e); 
    }