2013-01-14 1 views
0

내 dsl의 유효성을 검사하기 위해 @Check 주석을 사용하고 있습니다. 내 DSL은 json을위한 것입니다.xtext 주석 문제 확인

처음에는 방법은 방법 특정 개체에 대해 호출과 변화 한 번씩하지만 갑자기 더 이상 같은 방식으로 작동하지 않습니다 (그리고 난 내가 그것을 영향이 무슨 짓을했는지 확실하지 않다)했다 서명은 다음과 같습니다

@Check 
public void validateJson(ObjectValue object) {...} 

는 이제는 GUI의 각 노드에 대해이 방법을 입력 내가 하나 개의 노드 검증이 경우 정상적으로 동작

답변

0

편집하고있어 있지만. Xtext가 모델을 다시 파싱 할 때 항상 Check 식에서 유효성이 확인 된 EMF 모델을 다시 만들지는 못합니다. 즉, 모델이 실제로 재 작성되기 때문에 전체 유효성 검사가 필요합니다.

그러나 경우에 따라 모델을 부분적으로 만 다시 작성해야 할 수도 있습니다. 이러한 경우 모든 요소가 다시 검증되지는 않을 수도 있습니다 (단,이 최적화 포함됨).

+0

감사합니다. 어떻게 제어 할 수 있습니까? 가능한 한 최적화되도록하고 싶습니다. –

+0

실행을 제어하는 ​​방법은 하나 밖에 없습니다 : 주석은 빠르고, 일반이든 비싸 든 선택적 속성을 가지고 있습니다. 정확한 기억이라면 비싼 규칙은 수작업으로 만 유효성이 검사됩니다. 당연히 나는 그것이 당신이 원하는 것이 아니라는 것을 알고 있습니다. 그러나 선언적 유효성 검사기는 다른 것을 지원하지 않습니다. (AFAIK). –

+0

감사합니다.하지만 어떻게 이전에 괜찮 았습니까? 이런 종류의 변화를 일으킬 수있는 것은 무엇입니까? –