基本的に以下の2点をViewSpecificaionに設定するだけでよい。
- ViewSpecification のDiagram にValidationを追加
- Validation のSemanticsを設定
- ManクラスにParentのreferenceがない場合、エラー
- QuickFixとして、Womanクラスを紐づける。
すごい適当な設定ですが、サンプルということで。
ViewSpecification のDiagram にValidationを追加
Diagram を選択 > New Validation
Validation を選択 > Semantic Validation Rule
Semantic Validation を選択して、以下を設定
設定項目 | 設定内容 | 説明 |
Level | ERROR | ValidationでNGの時の警告レベル |
TargetClass | basicfamily.Man | Validationを実施する対象クラス |
message | Parent is not set | Validation NGのメッセージ |
Validation のSemanticsを設定
Semantic Rule を選択 > Audit
Auditを選択して、以下を設定
設定項目 | 設定内容 | 説明 |
Audit | [self.parents->size() > 0 /] | Parentが1つ以上の条件 |
Semantic Rule を選択 > Fix
Fix を選択 > Begin > New Operaion > Set
Seを選択して、以下を設定
設定項目 | 設定内容 | 説明 |
Feature | mother | QuickFixで設定するFeature |
Value Expression | [self.eContainer().eAllContents()->filter(Woman)->first()/] | featureに設定する内容 Womanクラスの最初のクラス |
Diagramを開いて
- Manノードを作成
- DiagramのContext Menu > Validation Diagram
Problem Viewにエラー内容が表示される。
エラー内容を選択し、右クリックでQuickFixを選択
Quick Fix画面が出て、Quick Fixを選択して、Finishを押下
上記Value Expressionで指定した値が設定される。
■参考