Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EMF/ExtendingCodeGeneration"

< EMF
(GeneratorAdapter Class)
(GeneratorAdapter Class)
Line 30: Line 30:
  
 
The prefix "GenClass" says this adapter works with the GenClass class of the genmodel.   
 
The prefix "GenClass" says this adapter works with the GenClass class of the genmodel.   
In accordance to his you have to configure the related extension point or you write a GeneratorAdapterFactory.  
+
 
 +
In accordance to this you have to configure the extension point or you write a GeneratorAdapterFactory.  
 
All  adapters types are:
 
All  adapters types are:
 
* GenPackage Adapter
 
* GenPackage Adapter

Revision as of 08:24, 5 January 2011

Summary

The intension of this page to collect experiences of implementing a Generation Adapter.

The a reference implementation is the project org.eclipse.emf.examples.generator.validator (see :pserver:anonymous@dev.eclipse.org:/cvsroot/modeling under org.eclipse.emf/org.eclipse.emf/examples)


GeneratorAdapter Class

The definition links like this

public class GenClassValidatorGeneratorAdapter extends GenBaseGeneratorAdapter
{

The GenBaseGeneratorAdapter base class provide you the basic implementation you have to override:

  • canGenerate
  • generateXXXX

It's depend of the project type what generate method's you override. The following types you know from the menu in the Gen Model.

  • MODEL_PROJECT_TYPE
  • EDIT_PROJECT_TYPE
  • EDITOR_PROJECT_TYPE
  • TESTS_PROJECT_TYPE

In the method canGenerated you have to return true for your project types.

The prefix "GenClass" says this adapter works with the GenClass class of the genmodel.

In accordance to this you have to configure the extension point or you write a GeneratorAdapterFactory. All adapters types are:

  • GenPackage Adapter
  • GenEnum Adapter
  • GenModel Adapter
  • GenClass Adapter

Take care not all combinations and of project type and adapter type produce output. (e.g. I had no luck in the combination GenClass and EDITOR project)

Links

Back to the top