<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>
