2012-02-09 1 views
0

편의상 모든 종류의 쿼리를 설명하는 Xtext DSL이 여러 개 있다고 가정 해 보겠습니다. 그 중 하나는 내 "기본"DSL입니다. 이제는 내 DSL 중 하나를 내 "기본"DSL로 변환하고 모델의 문자열 표현을 검색하려고합니다. EObject 트리 (모델)에서 XtextResource 가져 오기

나는 그런 다음 수동으로 소스 DSL의 XtextResource을 통과

MyDslFactory factory = new MyDslFactoryImpl(); 

를 통해 EFactory을 생성 (내가 가진 그 EmbeddedEditor에서) 내 모델 (EObject를 트리)를 구축하기 위해 목표 DSL 공장을 사용합니다. 이제 해당 모델의 텍스트 표현을 얻고 싶습니다. 그러나 이것이 제가 고생하는 곳입니다. 나는 XtextResource의 문자열 표현을 얻는 방법을 알고 있으므로 그렇게하는 것이 좋겠지 만, EObject 트리에서 XtextResource를 만드는 방법을 모르겠습니다. org.eclipse.xtext.junit.AbstractXtextTests에서

이 방법

doGetResource(InputStream in, URI uri) 

하지만 지금은 내 모델로부터 InputStream를 얻을 수있는 방법을 찾을 수 없습니다.

개체 트리에서 XtextResource를 만드는 방법이 있습니까? 아니면 내가하고 싶은 일을하는 더 간단한 방법이 있습니까?

답변

2

텍스트 직렬화를 원하면 injection을 사용하여 org.eclipse.xtext.serializer.ISerializer의 인스턴스를 얻어야합니다.

Formatter에서 일부 포맷 규칙을 정의했는지 확인하십시오. 그렇지 않으면 출력물의 가독성이 약간 제한됩니다 ;-)