Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.
This is a working draft of a pre-release book. It is available before the published date as part of the Rough Cuts service.
EMF: Eclipse Modeling Framework
Dave Steinberg
Frank Budinsky
Marcelo Paternostro
Ed Merks
Series Editors: Erich Gamma • Lee Nackman • John Wiegand
The Authoritative Guide to EMF Modeling and Code Generation
The Eclipse Modeling Framework enables developers to rapidly construct robust applications based on surprisingly simple models. Now, in this thoroughly revised Second Edition, the project’s developers offer expert guidance, insight, and examples for solving real-world problems with EMF, accelerating development processes, and improving software quality.
This edition contains more than 40% new material, plus updates throughout to make it even more useful and practical. The authors illuminate the key concepts and techniques of EMF modeling, analyze EMF’s most important framework classes and generator patterns, guide you through choosing optimal designs, and introduce powerful framework customizations and programming techniques. Coverage includes
• Defining models with Java, UML, XML Schema, and Ecore
• NEW: Using extended Ecore modeling to fully unify XML with UML and Java
• Generating high-quality code to implement models and editors
• Understanding and customizing generated code
• Complete documentation of @model Javadoc tags, generator model properties, and resource save and load options
• NEW: Leveraging the latest EMF features, including extended metadata, feature maps, EStore, cross-reference adapters, copiers, and content types
• NEW: Chapters on change recording, validation, and utilizing EMF in stand-alone and Eclipse RCP applications
• NEW: Modeling generics with Ecore and generating Java 5 code
About the Authors
Dave Steinberg is a software developer in IBM Software Group. He has worked with Eclipse and modeling technologies since joining the company, and has been a committer on the EMF project since its debut in 2002.
Frank Budinsky, a senior architect in IBM Software Group, is an original coinventor
Foreword by Richard C. Gronback xix
Foreword by Mike Milinkovich xxi
Preface xxiii
Acknowledgments xxvii
References xxix
Part I EMF Overview 1
Chapter 1 Eclipse 3
1.1 The Projects 4
1.1.1 The Eclipse Project 4
1.1.2 The Modeling Project 5
1.1.3 The Tools Project 5
1.1.4 The Technology Project 5
1.1.5 Other Projects 5
1.2 The Eclipse Platform 6
1.2.1 Plug-In Architecture 6
1.2.2 Workspace Resources 7
1.2.3 Platform UI 7
1.2.4 Rich Client Platform 9
1.3 More Information 9
Chapter 2 Introducing EMF 11
2.1 Unifying Java, XML, and UML 12
2.2 Modeling vs. Programming 15
2.3 Defining the Model 16
2.3.1 The Ecore (Meta) Model 17
2.3.2 Creating and Editing the Model 19
2.3.3 XMI Serialization 20
2.3.4 Java Annotations 21
2.3.5 The Ecore “Big Picture” 23
2.4 Generating Code 23
2.4.1 Generated Model Classes 24
2.4.2 Other Generated “Stuff” 26
2.4.3 Regeneration and Merge 27
2.4.4 The Generator Model 28
2.5 The Runtime Framework 29
2.5.1 Notification and Adapters 29
2.5.2 Object Persistence 31
2.5.3 The Reflective EObject API 35
2.5.4 Dynamic EMF 36
2.5.5 Foundation for Data Integration 38
2.6 EMF and Modeling Standards 39
2.6.1 Unified Modeling Language 39
2.6.2 Meta-Object Facility