ecoreモデルでOCL制約を使用し、コードを生成しています。だから、これと同じくらい簡単です。私は属性を持つクラスTaskを持ってstartDate
いendDate
て、それはocl制約を持っています:-状態を示す不変条件startDate < endDate
。
このプロジェクトのJavaコードを生成しましたが、Javaクラスがあります。
public class TmsValidator extends EObjectValidator {
//what is diagnosticChain and context in the below method
public boolean validateTask_C2(Task task, DiagnosticChain diagnostics, Map<Object, Object context) {
return validate(TmsPackage.Literals.TASK,
task,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
"C2",
TASK__C2__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
}
それで、私のメインクラスから、ここで自分のタスクを検証するにはどうすればよいですか。startDate
OCL制約を呼び出して、がより小さいかどうかを確認したいendDate
public class {
public static void main(String []a){
Task t = new
Task ();
// How do I validate my task here . I want to call the
//OCL constraint to check if startDate is less than endDate
}
}