Add Method Body Using EMF ( Add code inside EOperaion )
- Create Ecore model with Code
- Create GenModel
- Verify generated Code
Now, press on Next and give the name of the Ecore model. Here the name of the Ecore model is given as Office.ecore.
Click on "Finish". It will create Ecore model in project.
Now provide the name to the package. Here the name is given as "Office"
Add a EClass to the package "Office"
Give the name of the class as "Employee"
Add attribute to the Employee class and give name.
Add EOperation to the Class Employee. Give name as "calculateSalary" , set type as "EInt" to the EOperation.
Add, EAnnotation to the EOperation "calculateSalary".
In properties view, add source to "http://www.eclipse.org/emf/2002/GenModel"
Now, Add Details Entry by right clicking on EAnnotation and selecting New Child.
In Properties view, enter "body" in Key .
In body part, enter the code you want to define in the method
E.g.
int i=10;i=i*200;return i;
2. Create Gen model
Create Generate Model, by clicking on new and select "EMF Generator Model"
Give name as , "Office.genmodel" to the generator model. ( you can give any name with prefix ".genmodel" to this Generator model file.
Generate the Gen Model from the "Ecore Model" and select the office.ecore model from the directory.
Select Finish and, GenModel is ready now.
Right click on the Gen model and select "Generate Model Code".
3. Verify generated Code
In the class EmployeeImpl, you check the method "calculateSalary()", it will contains the code which you want to enter into the method.
Hi, I used this solution to generate code, but I have problem to use this method implementation in ocl validation. I got this stacktrace:
ReplyDeleteorg.eclipse.ocl.common.internal.delegate.OCLDelegateException: OCL validation result of 'Approval::Test' is invalid for 'Class Approval'
at org.eclipse.ocl.examples.pivot.delegate.OCLValidationDelegate.validateExpressionInOCL(OCLValidationDelegate.java:293)