- Architects
- Designers
- Developers
Eclipse Modeling Framework EMF Training Course
Duration: 3 Days
Course code: SS-ECL-003
Audience
Prerequisites
- Know Java
- Know how to use Eclipse IDE as a Java development tool
- Have some experience writing Eclipse plug-ins
Description
Objectives
- The fundamentals of model driven development and MDA
- The role of meta modeling
- The EMF framework essentials
- How to use EMF to create Eclipse plug-ins
- The fundamentals of Java Emitter Template (JET)
Outline for Eclipse Modeling Framework EMF Training Course
Overview
- Model Driven Architecture
- Meta Modeling
- Meta Object Facility (MOF)
- Eclipse
- EMF
Using Ecore
- The ecore editor
- A quick look at XMI and the XML foundations
- Limitations of ecore
A First Case Study
Introduction to the case study
- A music library
- The UML Model
- The goals for the application
The Model - A First Look
- Creating a model using ecore
- Defining the types
- Defining the attributes
- Defining the associations
Creating a Generator Model
- Purpose of the generator model
- Creating the generator model
- Optimization of the generator model
Using the EMF generator
- Generating an application
- What is generated?
- The generated model implementation
- The generated EMF.edit implementation
- The generated EMF.editor implementation
Running the Application
- How to run the application
- How to use the application
- What is missing?
Defining EMF Models
Overview of EMF Models
- The role of the EMF models
- The language for EMF models
- Limitations of ecore
The EMF Meta model
- What is a meta model?
- Eclipse Meta Object Framework ( emof )
Modeling with Java Interfaces
- Defining a model based on Java interfaces
- The @model attribute
- Extensions to the @model
- The @generated attribute
- Other Java annotations
- Creating ecore models from annotated Java
Using Rational Software Architect (RSA)
- Why Rational Software Architect?
- The stereotypes
- Creating ecore models from mdl files
Modeling using XML Schema
- XML Schema mappings
- Limitations in mapping
- Creating an XML schema
- From XSD to ecore
Running the Default Generator
EMF Model Generator Patterns
- Generating the model
- A class becomes...
- Generated code and inheritance
- An enumeration becomes...
- An attribute becomes...
- A reference becomes...
- An operation becomes...
- Factories
- Packages
- Switch classes
- Adapter factories
EMF edit generator patterns
- Commands
- Label providers
- Factories
EMF Editor Generator Pattern
- Tree editor
- Table tree editor
- Table editor
- Action bar contributor
- Wizards
Java Emitter Templates (JET)
- Purpose of JET
- A simple example
JET Concepts
- The JET model
- JET directives
- Scriptlets
- Expressions
JET Case Study - Extending the generated code
- Extending options
- Changing JET?
- Changing the generated code?
- Heuristics
- Patterns
- Extending the model
- Extending the edit code
- Extending the editor
Advanced EMF
- Chaining meta models
- Using emof
- Chaining generators
EMF used to define domain specific languages
- Graphical Modeling Framework (GMF)
- EMFText
- XText