Skip to main content
Jump to: navigation, search

Difference between revisions of "ATL/Model Handlers"

< ATL
m (added link to M2M CVS for AtlEMFModelHandler)
(added table with links to GMT and M2M CVS)
Line 23: Line 23:
 
ATL Development Tools strongly depend on [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/org.atl.engine.repositories.emf4atl/ emf4atl], which is consequently built into it.
 
ATL Development Tools strongly depend on [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/org.atl.engine.repositories.emf4atl/ emf4atl], which is consequently built into it.
 
[http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/org.atl.engine.repositories.mdr4atl/ mdr4atl] should rather be used as an example for properly placing Java classes and plugin.xml elements.
 
[http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/org.atl.engine.repositories.mdr4atl/ mdr4atl] should rather be used as an example for properly placing Java classes and plugin.xml elements.
 +
 +
{| border=1
 +
|+ CVS Links
 +
! Entity
 +
! GMT CVS (old location)
 +
! M2M CVS (current location)
 +
|-
 +
! emf4atl plugin
 +
| [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/org.atl.engine.repositories.emf4atl/ emf4atl]
 +
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.drivers.emf4atl/?root=Modeling_Project&view=markup emf4atl]
 +
|-
 +
! ASMEMFModel
 +
| [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/org.atl.engine.repositories.emf4atl/src/org/atl/engine/repositories/emf4atl/ASMEMFModel.java?rev=HEAD&content-type=text/vnd.viewcvs-markup ASMEMFModel]
 +
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.drivers.emf4atl/src/org/eclipse/m2m/atl/drivers/emf4atl/ASMEMFModel.java?root=Modeling_Project ASMEMFModel]
 +
|-
 +
! ASMEMFModelElement
 +
| [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/org.atl.engine.repositories.emf4atl/src/org/atl/engine/repositories/emf4atl/ASMEMFModelElement.java?rev=HEAD&content-type=text/vnd.viewcvs-markup ASMEMFModelElement]
 +
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.drivers.emf4atl/src/org/eclipse/m2m/atl/drivers/emf4atl/ASMEMFModelElement.java?root=Modeling_Project&view=markup ASMEMFModelElement]
 +
|-
 +
! AtlEMFModelHandler
 +
| [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/org.atl.eclipse.engine/src/org/atl/eclipse/engine/AtlEMFModelHandler.java?rev=HEAD&content-type=text/vnd.viewcvs-markup AtlEMFModelHandler]
 +
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine/src/org/eclipse/m2m/atl/engine/AtlEMFModelHandler.java?root=Modeling_Project&view=markup AtlEMFModelHandler]
 +
 +
|}
  
 
==When to Create a New Model Handler Driver==
 
==When to Create a New Model Handler Driver==

Revision as of 16:55, 12 September 2007

In ATL engine terminology, a model handler is a library providing primitives for handling models:

  • Creating new models,
  • Loading and saving models,
  • Adding and deleting elements,
  • Reading and writing element properties.

A model handler driver is a piece of Java code making it possible to use the corresponding model handler with the ATL Virtual Machine.

The current version of ATL Virtual Machine provides two model handler drivers:

Creating New Model Handler Drivers

Here is a brief description of the work to be done:

ATL Development Tools strongly depend on emf4atl, which is consequently built into it. mdr4atl should rather be used as an example for properly placing Java classes and plugin.xml elements.

CVS Links
Entity GMT CVS (old location) M2M CVS (current location)
emf4atl plugin emf4atl emf4atl
ASMEMFModel ASMEMFModel ASMEMFModel
ASMEMFModelElement ASMEMFModelElement ASMEMFModelElement
AtlEMFModelHandler AtlEMFModelHandler AtlEMFModelHandler

When to Create a New Model Handler Driver

In theory, there should be a distinct model handler driver for each model handler, independently of the metamodel that is used. For instance, there is one for Eclipse/EMF and one for Netbeans/MDR.

In practice, there are exceptions. For instance, the Eclipse/UML2 plugin implements the UML 2.0 metamodel by using EMF. However, it seems that UML2 models created with this plugin cannot be handled by EMF without the additional Java code available in the Eclipse/UML2 plugin (see ATL_Language_Troubleshooter#UML2_Profiles and this thread). This means that the UML2 metamodel that is implemented does not strictly follow EMF rules but adds its own rules. One example is profile and stereotype application: the profile must be applied before the stereotype. Such an ordering constraint is beyond EMF semantics. For this reason, full support for the Eclipse/UML2 plugin can only be properly achieved by adding code specific to this plugin in the model handler driver. Instead of doing this in emf4atl, which is metamodel-independant, a uml24atl model handler driver could be developed.

Back to the top