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

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

Use these Eclipse RCP Testing tools before your code goes to LIVE

Use these Eclipse RCP Testing tools before your code goes to LIVE Testing is most important part of any software development lifecycle. There are different type of testing required before Eclipse RCP tool is released to productions. Eclipse RCP is very easy to test with the these testing tools: UI Testing: RCP Testing Tool RCP Testing Tool is a project for GUI testing automation of Eclipse-based applications. RCPTT is fully aware about Eclipse Platform's internals, hiding this complexity from end users and allowing QA engineers to create highly reliable UI tests at great pace. SWT Bot SWTBot is an open-source Java based UI/functional testing tool for testing SWT, Eclipse and GEF based applications.  SWTBot provides APIs that are simple to read and write. The APIs also hide the complexities involved with SWT and Eclipse. This makes it suitable for UI/functional testing by everyone, not just developers. SWTBot also provides its own set of ass