Skip to main content

Add Method Body Using EMF ( Add code inside EOperaion)

Add Method Body Using EMF ( Add code inside EOperaion )


Steps : 
  1. Create Ecore model with Code
  2. Create GenModel
  3. Verify generated Code



1. Create Ecore model with CodeIn RCP project create new Ecore model :


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. 





Comments

  1. Hi, I used this solution to generate code, but I have problem to use this method implementation in ocl validation. I got this stacktrace:

    org.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)

    ReplyDelete

Post a Comment

Popular posts from this blog

Could not launch the product because the associated workspace is currently in use by another Eclipse application

If you are seeing following error at the beginning of the Eclipse or any RCP based product then here is the solution: Error Message: "Could not launch the product because the associated workspace is currently in use by another Eclipse application." or “Workspace in use or cannot be created chose a different one.” Solution :  go to workspace location remove file <workspace location>/.metadata/.lock Reason: Through eclipse, user can create multiple Workspace locations. One Workspace location can be edited by one user at a time. A workspace contains the data related to various project configuration and local file storage. To avoid multiple users to access the same workspace, eclipse is maintaining a ".lock" file inside the Workspace. Eclipse will remove this ".lock" file when you will close the Eclipse. But in some cases, the Eclipse will crash due to some error, due to which it could not able to remove ".lock" file from

Cannot complete the install because one or more required items could not be found.

Error While installing Maven in Eclipse Cannot complete the install because one or more required items could not be found.   Software being installed: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature. feature.group 1.4.0.20130601-0317)   Missing requirement: Maven POM XML Editor 1.4.0.20130601-0317 (org.eclipse.m2e.editor.xml 1.4.0.20130601-0317) requires 'bundle org.slf4j.api 1.6.2' but it could not be found   Cannot satisfy dependency:     From: Maven Integration for Eclipse (Editors) 1.4.0.20130601-0317 (org.eclipse.m2e.editor 1.4.0.20130601-0317)     To: bundle org.eclipse.m2e.editor.xml [1.4.0,1.5.0)   Cannot satisfy dependency:     From: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature. feature.group 1.4.0.20130601-0317)     To: org.eclipse.m2e.editor [1.4.0.20130601-0317] Solution : 1. Goto : Help -> Install New Software 2. Add following URL in "Work with:" http:

HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException

HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException If you get following error while connecting to your Database with Spring boot, try the suggested solution below: 2018 - 11 - 25 15 : 28 : 50.078 INFO 5335 --- [ main] o. h . e . j . e . i . LobCreatorBuilderImpl : HHH000424: Disabling contextual LOB creation as createClob() method threw error : java. lang . reflect . InvocationTargetException java. lang . reflect . InvocationTargetException : null at sun. reflect . NativeMethodAccessorImpl . invoke0 (Native Method) ~[na: 1.8 . 0 _161] at sun. reflect . NativeMethodAccessorImpl . invoke (NativeMethodAccessorImpl. java : 62 ) ~[na: 1.8 . 0 _161] at sun. reflect . DelegatingMethodAccessorImpl . invoke (DelegatingMethodAccessorImpl. java : 43 ) ~[na: 1.8 . 0 _161] at java. lang . reflect . Method . invoke (Method. java : 498 ) ~[na: 1.8 . 0 _161] at org. hibernate . engin