【问题标题】:how to call OCL constraints( generated java source code of model ) from the main code of java如何从java的主代码调用OCL约束(生成模型的java源代码)
【发布时间】:2012-11-07 20:35:47
【问题描述】:

我在 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         
  }     
} 

【问题讨论】:

  • 只是为了让您知道您已使用引号 (") 而不是代码 ({ }) 来格式化代码。

标签: java eclipse-emf-ecore ocl


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2011-08-23
    • 2011-06-29
    • 2012-10-18
    • 1970-01-01
    • 2011-05-01
    • 2013-06-23
    相关资源
    最近更新 更多