| // Copied from org.eclipse.ocl.ecore.tests.DocumentationExamples.java | |
| EOperation oper = null; | |
| for (EOperation next : EcorePackage.Literals.EMODEL_ELEMENT.getEOperations()) { | |
| if ("getEAnnotation".equals(next.getName())) { | |
| oper = next; | |
| break; | |
| } | |
| } | |
| // define a post-condition specifying the value of EModelElement::getEAnnotation(EString). | |
| // This operation environment includes variables representing the operation | |
| // parameters (in this case, only "source : String") and the operation result | |
| helper.setOperationContext(EcorePackage.Literals.ECLASS, oper); | |
| Constraint body = helper.createPostcondition( | |
| "result = self.eAnnotations->any(ann | ann.source = source)"); | |
| // define a derivation constraint for the EReference::eReferenceType property | |
| helper.setAttributeContext( | |
| EcorePackage.Literals.EREFERENCE, | |
| EcorePackage.Literals.EREFERENCE__EREFERENCE_TYPE); | |
| Constraint derive = helper.createDerivedValueExpression( | |
| "self.eType->any(true).oclAsType(EClass)"); |