[英]Parameters for parsing OCL Parsing in JAVA
我正在使用一个Java应用程序,该应用程序将一组有效模型和一组无效模型作为输入,会自动生成OCL约束,我的目标是检查模型是否违反约束或否。
我在这个主题上找到了答案,但是参数不是很清楚。
有人知道我应该做什么,而不是“ EXTLibraryPackage.Literals.LIBRARY”
//创建一个OCL帮助器对象OCLHelper helper = ocl.createOCLHelper();
// set the OCL context classifier
helper.setContext(EXTLibraryPackage.Literals.LIBRARY);
Constraint invariant = helper.createInvariant(
"books->forAll(b1, b2 | b1 <> b2 implies b1.title <> b2.title)");
OCLExpression<EClassifier> query = helper.createQuery(
"books->collect(b : Book | b.category)->asSet()");
OCL在必须为其提供元模型的模型上定义表达式,以便OCL理解您的类型系统。 EXTLibraryPackage.Literals.LIBRARY是对EXTLibrary示例根目录中的genmodeled Package的引用。
要重用相同的样式,应该对模型进行建模并引用相应的EPackage。
但是,以这种方式以编程方式使用OCL并非唯一或最佳方式。 如果您有模型,则可以在Sample Ecore Editor中加载模型并在那里进行验证。 请参阅Eclipse OCL文档的Validation方面。 您甚至可以将OCL转换为Java,以避免在解释器中执行OCL的开销。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.