| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' |
| |
| #***************************************************************************** |
| # |
| # AMW_Match_SF_doc.php |
| # |
| # Author: Marcos Didonet Del Fabro |
| # Date: 2005-07-24 |
| # |
| # Description: Type your page comments here - these are not sent to the browser |
| # |
| # |
| #**************************************************************************** |
| |
| # |
| # Begin: page-specific settings. Change these. |
| $pageTitle = "Developing matching heuristics and integrating with AMW"; |
| $pageKeywords = ""; |
| $pageAuthor = "Marcos Didonet Del Fabro"; |
| |
| # Paste your HTML content between the EOHTML markers! |
| $html = <<<EOHTML |
| |
| <!-- Main part --> |
| <div id="midcolumn"> |
| <table width="100%"> |
| <tr> |
| <td width="50%"> |
| <h1>$pageTitle</h1> |
| </td> |
| </tr> |
| </table> |
| |
| <p> |
| |
| The AMW plug-in provides a set of matching transformations that automatically create weaving models. |
| However, it may be necessary to |
| develop new transformations, due to several reasons: to develop new heuristic methods; to better tune the existing |
| heuristics; or to execute several transformations at the same time and with different weights. <p/> |
| |
| The AMW plug-in provides an extension point that enables to easily plug new matching transformations. This |
| page explains how to contribute to this extension point. |
| This is a technical document that requires previous knowledge about development of Eclipse plug-ins. |
| |
| <p/> |
| |
| <H3>Extension point to plug transformations</H3> |
| <p></p> |
| <h4>Identifier: </h4>org.eclipse.weaver.transformationID<p></p> |
| <h4>Since: </h4>AMW 2006 |
| <p></p> |
| |
| <p> |
| <h4>Description: </h4> |
| This extension point enables defining matching transformations and higher order transformations that are executed |
| using the context menus of the weaving panel. |
| The transformations must follow a specific signature. |
| <p/> |
| There is two types of transformations that can be executed: |
| <p/> |
| - <b>matching</b>: the matching transformations are added in the menu "Match". The matching transformations produce a new weaving model |
| with a suffix added to the file name. |
| <pre> |
| create OUT : AMW from IN : AMW, left : MOF, right : MOF; |
| </pre><p/> |
| - <b>HOT</b>; the higher-order transformations are added in the menu "Transform". |
| The higher-order transformations produce an ATL transformation model. This model is used to transform |
| the models conforming to the left metamodel into models conforming to the right metamodel. |
| <p/> |
| <pre> |
| create OUT : ATL from IN : AMW, left: MOF, right: MOF; |
| </pre> |
| |
| <p/> |
| The developer must indicate the transformation file ('.asm'). |
| The weaving model opened in the weaving panel is the input weaving model. <br/> |
| |
| |
| <p/> |
| The developer must also indicate which references from the weaving model are equivalent to the left and right input models (from |
| the transformation signature). This allows using different metamodel extensions tp define the left and right models.</p> |
| |
| <p><h4>Configuration Markup:</h4></p> |
| |
| <pre> |
| <!ELEMENT extension (matching* , hot*)> |
| |
| <!ATTLIST extension |
| |
| point CDATA #REQUIRED |
| |
| id CDATA #REQUIRED> |
| |
| </pre> |
| |
| <ul class="midlist" > |
| <li><b>point</b> - the extension point ID</li> |
| <li><b>id</b> - the ID of this plug-in (used for identification)</li> |
| </ul> |
| |
| <pre> |
| |
| <!ELEMENT matching (binding+)> |
| |
| <!ATTLIST matching |
| |
| transformation CDATA #REQUIRED |
| |
| description CDATA #REQUIRED |
| |
| file_suffix CDATA #REQUIRED> |
| |
| </pre> |
| |
| <ul class="midlist" > |
| <li><b>transformation</b> - the name of the transformation (must be the .asm)</li> |
| <li><b>description</b> - a description that appears on the menu</li> |
| <li><b>file_suffix</b> - the new weaving model is created with this suffix added to the file name</li> |
| </ul> |
| |
| <pre> |
| |
| <!ELEMENT binding EMPTY> |
| |
| <!ATTLIST binding |
| |
| reference CDATA #REQUIRED |
| |
| header CDATA #REQUIRED> |
| |
| </pre> |
| |
| <ul class="midlist" > |
| <li><b>reference</b> - the name of the reference to WModelRef defined in the weaving metamodel extension</li> |
| <li><b>header</b> - the header of the transformation (must be left or right)</li> |
| </ul> |
| |
| <h4>Examples: </h4> |
| This example defines one matching and one higher order transformation. |
| The "leftM" reference of the weaving model is assigned to the "left" model of the transformation. |
| The "rightM" reference of the weaving model is assigned to the "right" model of the transformation. |
| |
| The other models are assigned automatically. |
| |
| <pre> |
| |
| <plugin> |
| |
| |
| <extension id="TransformationExtension" point="org.eclipse.weaver.transformationID"> |
| |
| <matching transformation="transformations/Assign_NameSimbyType.asm" description="Name equality" file_suffix="eq"> |
| |
| <binding reference="leftM" header="left"/> |
| <binding reference="rightM" header="right"/> |
| |
| </matching> |
| |
| <hot transformation="transformations/AMWtoATL_Match.asm" description="Generate transformation" file_suffix="hot"> |
| |
| <binding reference="leftM" header="left"/> |
| <binding reference="rightM" header="right"/> |
| |
| </hot> |
| |
| </extension> |
| |
| </plugin> |
| |
| </pre> |
| <p/> |
| |
| <h4>Supplied Implementation: </h4> |
| There is a default implementation of this extension point in the Transformation Extension |
| plugin: "org.eclipse.weaver.transformation". |
| <p></p> |
| |
| </div> |
| |
| EOHTML; |
| |
| |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |