| <p>EMF consists of three fundamental pieces:</p> |
| |
| <ul> |
| <li><b>EMF</b> - The core EMF framework includes a <a href="http://download.eclipse.org/modeling/emf/emf/javadoc?org/eclipse/emf/ecore/package-summary.html#details">meta |
| model (Ecore)</a> for describing models and runtime support for the |
| models including change notification, persistence support with |
| default XMI serialization, and a very efficient reflective API for |
| manipulating EMF objects generically.</li> |
| |
| <li class="outerli"><b>EMF.Edit -</b> The EMF.Edit framework includes generic |
| reusable classes for building editors for EMF models. It |
| provides |
| <ul> |
| <li>Content and label provider classes, property source support, |
| and other convenience classes that allow EMF models to be displayed |
| using standard desktop (JFace) viewers and property sheets.</li> |
| |
| <li>A command framework, including a set of generic command |
| implementation classes for building editors that support fully |
| automatic undo and redo.</li> |
| </ul> |
| </li> |
| |
| <li><b>EMF.Codegen</b> - The EMF code generation facility is |
| capable of generating everything needed to build a complete editor |
| for an EMF model. It includes a GUI from which generation options |
| can be specified, and generators can be invoked. The generation |
| facility leverages the JDT (Java Development Tooling) component of |
| Eclipse.</li> |
| </ul> |
| |
| <p>Three levels of code generation are supported:</p> |
| |
| <ul> |
| <li><b>Model</b> - provides Java interfaces and implementation |
| classes for all the classes in the model, plus a factory and |
| package (meta data) implementation class.</li> |
| |
| <li><b>Adapters</b> - generates implementation classes (called |
| ItemProviders) that adapt the model classes for editing and |
| display.</li> |
| |
| <li><b>Editor</b> - produces a properly structured editor that |
| conforms to the recommended style for Eclipse EMF model editors and |
| serves as a starting point from which to start customizing.</li> |
| </ul> |
| |
| <p>All generators support regeneration of code while preserving user |
| modifications. The generators can be invoked either through the GUI |
| or headless from a command line.</p> |
| |
| <p>Want to learn more about how easy it is to use this exciting new |
| technology to help you boost your Java programming productivity, |
| application compatibility and integration? Start by reading the <a |
| href="http://www.eclipse.org/modeling/emf/docs/">overview documents and the tutorial</a>, |
| followed by <a href="http://www.eclipse.org/modeling/emf/downloads/">downloading the driver</a>, |
| and then sit back and watch your applications write themselves! |
| Well, not completely, but this wouldn't be a sales pitch if there |
| weren't a little bit of exaggeration.</p> |