1

我在 ecore 模型上使用 OCL 约束并生成代码。所以事情就这么简单,我有一个具有属性的任务类startDateendDate 它有一个 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);    
  }
}

因此,从我的主要课程中,我如何在这里验证我的任务。我想调用 OCL 约束来检查是否startDate小于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         
  }     
} 
4

1 回答 1

1

使用 eclipse.modeling.mdt.ocl 或 eclipse.tools.emf 论坛,您更有可能获得快速的答案。当然,您可以使用 TmsFactory.eINSTANCE 创建模型的实例,并且可以使用 Diagnostician.INSTANCE 来验证建模对象上的所有约束。

于 2012-11-08T13:24:47.750 回答