Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Sirius/Tutorials/DomainModelTutorial"
(→Overview) |
(→How to create our Metamodel) |
||
Line 29: | Line 29: | ||
* an ''extend'' from '''Person''' for '''Man''' and '''Woman''' | * an ''extend'' from '''Person''' for '''Man''' and '''Woman''' | ||
− | = | + | =Create the Metamodel= |
− | + | The easiest way to define a metamodel is to use Ecore Tools (based on EMF and Sirius), a graphical editor for Ecore models. | |
− | + | ||
− | To install it, | + | ==Install Ecore Tools== |
+ | Ecore Tools is already installed if you are using the packages Obeo Designer or Eclipse Modeling. | ||
+ | |||
+ | Otherwise, you can find it here: [https://www.eclipse.org/ecoretools/ EcoreTools site] | ||
+ | |||
+ | To install it, click on ''Help/Install New Software...'' | ||
[[File:Sirius_tuto4_02.png]] | [[File:Sirius_tuto4_02.png]] | ||
− | Click on | + | Click on ''Add...'' button and fill the fields |
* '''Name''': Ecore Tools Modeler | * '''Name''': Ecore Tools Modeler | ||
− | * '''Location''': One of update | + | * '''Location''': One of the update sites listed here [https://www.eclipse.org/ecoretools/download.html EcoreTools UpdateSite] |
[[File:Sirius_tuto4_03.png]] | [[File:Sirius_tuto4_03.png]] | ||
− | Click on | + | Click on ''Ok'' button |
[[File:Sirius_tuto4_04.png]] | [[File:Sirius_tuto4_04.png]] | ||
− | Ckick on | + | Ckick on ''Next >'' and follow the instructions. |
+ | |||
+ | ==Create an Ecore Modeling Project== | ||
− | + | In the Model Explorer View, right click on ''New->Other...'' | |
[[File:Sirius_tuto4_05.png]] | [[File:Sirius_tuto4_05.png]] | ||
− | In Ecore Modeling Framework select Ecore Modeling Project | + | In Ecore Modeling Framework select ''Ecore Modeling Project'' |
[[File:Sirius_tuto4_06.png]] | [[File:Sirius_tuto4_06.png]] | ||
Line 60: | Line 67: | ||
[[File:Sirius_tuto4_07.png]] | [[File:Sirius_tuto4_07.png]] | ||
− | Click on | + | Click on ''Finish'', then select the ''Design viewpoint''. |
[[File:Sirius_tuto4_08.png]] | [[File:Sirius_tuto4_08.png]] |
Revision as of 10:40, 3 August 2016
Contents
Overview
This tutorial explains how to create your first EMF Metamodel. It can be seen as the early step before the Starter Tutorial.
These instructions describe the creation of the BasicFamily metamodel. This metamodel defines 4 concepts that can be use to describe a family:
- The first concept is Family. A family has a name of type Estring.
- A family contains members of type Person. A person has a name of type EString.
- A person has 2 parents and many or no children.
- Two concepts herited from Person are Man and Woman.
- A person can have one father of type Man and/or one mother of type Woman.
To sum up, our metamodel have 4 concepts
- Family
- Person
- Man
- Woman
and 6 relations
- members from Family to Person
- children from Person to Person, with cardinality 0..*
- parents from Person to Person with cardinality 0..2
- father from Person to Man with cardinality 0..1
- mother from Person to Woman with cardinality 0..1
- an extend from Person for Man and Woman
Create the Metamodel
The easiest way to define a metamodel is to use Ecore Tools (based on EMF and Sirius), a graphical editor for Ecore models.
Install Ecore Tools
Ecore Tools is already installed if you are using the packages Obeo Designer or Eclipse Modeling.
Otherwise, you can find it here: EcoreTools site
To install it, click on Help/Install New Software...
Click on Add... button and fill the fields
- Name: Ecore Tools Modeler
- Location: One of the update sites listed here EcoreTools UpdateSite
Click on Ok button
Ckick on Next > and follow the instructions.
Create an Ecore Modeling Project
In the Model Explorer View, right click on New->Other...
In Ecore Modeling Framework select Ecore Modeling Project
Name it org.eclipse.sirius.sample.basicfamily
Click on Finish, then select the Design viewpoint.
Now you can use the palette to create the elements of the metamodel described previously. Click on Class in palette to create Family, Person, Man and Woman. The element Person is abstract.
Click on Relation Composition in palette to create compostion named members between Family and Person.
Click on Relation Bi-directional Reference in palette to create the bi directional reference named children and parents on Person
Click on Relation SuperType in palette to create the inheritence between Mand and Person and Woman and Person
You should obtain this metamodele
For more informations about Ecore Tools modeler Links to blog post on best practices to create a metamodel:
How to generate the source code of the Metamodel
You should retrieve the basicfamily.ecore Ns URI. Open the basicfamily.ecore and select tab Model in properties view.
Change the Ns URI to http://www.eclipse.org/sirius/sample/basicfamily
Open the basicfamily.genmodel. This model allows EMF to generate the Java code corresponding to the metamodel.
Right click on first model element and select Generate All
The "Generate All" produces these elements :
- The code src in org.eclipse.sirisus.sample.basicfamily
- The MANIFEST.MF in the META-INF directory
- The directory org.eclipse.sirisus.sample.basicfamily.edit
- The directory org.eclipse.sirisus.sample.basicfamily.editor
- The directory org.eclipse.sirisus.sample.basicfamily.tests
How to test the metamodel
Launch a runtime to use the basic family concept.
In Model Explorer View, right click New->Other...
In Eclipse Modeling Framework Example EMF Model Creation Wizards, select BasicFamily Model
As you can see the BasicFamily Model have the default EMF icons.
To change this icon, modifiy BasicfamilyModelFile.gif
in /org.eclipse.sirisus.sample.basicfamily.editor/icons/full/obj16/
To obtain
Warning For every icons changes, you must restart the sirius runtime to see change.
Click on Next> button to create a basicfamily model.
Select Model Object Family
and click on Finish Button.
To add element to model right click on Family element and select Man or Woman element.
In properties view you can retrive element name and choose Parents or Children if elements are already present in model.
You can also change the icon for Man, Woman and Family defined in /org.eclipse.sirisus.sample.basicfamily.edit/icons/full/obj16