我需要检查模型是否触发了一个或多个 OCL 约束。模型存储在 XMI 中,加载了 EMF。OCL 约束是自动生成的(字符串等)。
我找到了一种检查 EObject 约束的方法
helper.setContext(ecClass);
query = helper.createQuery(expression);
Object o = ocl.check(eo, invariant);
o 然后包含结果:真或假。
我是否必须“手动”检查模型的每个对象,或者是否有方法、方法或类可以直接(并且可能更有效)?
请注意: - 没有建模信息是硬编码的:元模型、模型和 OCL 以最通用的方式进行操作, - 我在一个独立的软件上工作:所有 jar 都是专门添加的。我尝试过使用 DresdenOCL,但我不知道为什么包的注册很麻烦。