2013-01-14 68 views
0

我正在使用@Check註釋來驗證我的dsl。我的dsl是針對json的。xtext check註釋問題

在第一方法被調用特定對象的每變化一次 ,但它突然不以同樣的方式工作了(我不知道我做到了這一點影響吧) 方法簽名是:

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

現在它進入了GUI中的每一個節點這種方法雖然我編輯只有一個節點

回答

0

驗證器正常工作在這種情況下。當Xtext重新解析模型時,它不能總是避免重新創建在Check表達式中驗證的EMF模型 - 換句話說,模型實際上每次都會重新創建,因此需要進行完整驗證。

但是,在某些情況下,可能只需要對模型進行部分重新創建 - 在這些情況下,可能並非所有元素都經過重新驗證(但是,我不確定此優化被包括在內)。

+0

謝謝,你知道我該如何控制它?我希望它儘可能優化 –

+0

我只知道控制執行的一種方法:註釋具有可選屬性,無論它是快速,正常還是昂貴。如果我沒有記錯,昂貴的規則只能手動驗證,每次保存時都是正常的,而且快速即時。當然,我知道這不是你想要的,但聲明性驗證器不支持其他任何東西。 (據我所知)。 –

+0

謝謝,但之前怎麼樣呢?什麼會導致這種變化? –