blob: 7f2382d57d0d499dc5340a27ebaa7ec4c1f46e7b [file] [log] [blame]
<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>