2011-09-20 4 views
0

저는 Commands으로 구성된 EMF 모델로 작업하고 있습니다.내용에 따라 EObject를 다른 리소스에 저장합니다.

각 명령의 응용 프로그램에서 처리하는 submitted이라는 부울 속성이 있습니다. 이 속성의 값에 따르면, "submitted"파일이나 "toSubmit"파일에 Command를 저장하려고합니다. 어떻게해야합니까?

제출할 요소가 제출 된 요소를 참조 할 수 있으므로 동일한 resourceSet의 두 자원에 넣을 계획이었습니다 ... 상호 참조가 충분합니까? 위해 상호 참조에 추가 :

또한, 나는 또한

답변

1

한 가지 더있다 ... 제출 두 요소를 이해하고 그 이미 제출 한 "완전한"파일을 가지고 싶습니다 동일한 리소스 세트에 저장되기 위해서는 참조 된 요소가 이미 리소스에 저장되어야합니다.

즉, 종속성과 관련된 자원의 저장을 주문해야합니다. 먼저 자원을 저장하고 다른 자원을 참조하지 않고 참조자를 저장해야합니다.

+0

지침에 따라 모델을 저장하려고했지만 몇 가지 문제가 있습니다. 구성에 의해'submit' 엘리먼트는'queued' 엘리먼트를 참조 할 수 없습니다. 따라서 제출 된 요소의 모델을 다른 모델보다 먼저 저장합니다. 그러나 첫 번째 모델은 성공적으로 저장되지만 두 번째 모델은 다음 예외를 throw하여 실패합니다. org.eclipse.xtext.parsetree.reconstr.XtextSerializationException : Model.commands [1] -> FunctionSingle.inputs에서 상호 참조를 직렬화 할 수 없습니다. Model.commands [1] -> VariableContinuous'Var2 ' ' – Matteo

+0

그래서 Xtext를 사용하고 있습니다. 새로운 정보입니다. : D 글쎄, 거기에 몇 가지 차이 제약이 있습니다 - 나는 그 참조를 저장할 수 있는지 여부를 문법을 보게됩니다. 그렇지 않으면 Xtext 자원으로 직렬화 할 수 없습니다. –

+0

예, 미안 해요 ... 그런 교차 참조를 허용하기 위해 내 문법 (또는 내 모델)을 수정해야한다는 것을 잊어 버렸습니까? 인터넷 검색, xtext가 이러한 교차 참조 (http://www.eclipse.org/forums/index.php/mv/tree/174945/#page_top)를 관리 할 수 ​​있어야한다는 내용의 게시물을 발견했습니다.하지만 분명히 뭔가 잘못된 일을하고 있어요 :) – Matteo

관련 문제