<?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'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Freddy Allilaire
	# Date:			2005-12-05
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "ATL Basic Examples and Patterns";
	$pageKeywords	= "";
	$pageAuthor		= "Freddy Allilaire";
	
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

<div id="primaryLinks">
	<h3>Primary Links</h3>
	<ul>
		<li>
			<a id="buttonDownload" href="../../downloads" title="Download">
				<strong>Download</strong> Eclipse Distribution, Update Site, Dropins
			</a>
		</li>
		<li>
			<a id="buttonDocumentation" href="../../documentation" title="Documentation">
				<strong>Documentation</strong> Tutorials, Examples, Videos, Reference Documentation
			</a>
		</li>
		<li>
			<a id="buttonSupport" href="../../support" title="Support">
				<strong>Support</strong> Bug Tracker, Newsgroup, Support
			</a>
		</li>
		<li>
			<a id="buttonInvolved" href="../../developers" title="Getting Involved">
				<strong>Getting Involved</strong> Git, Workspace Setup, Wiki, Committers
			</a>
		</li>
	</ul>
</div>

	<div id="midcolumn">
    	<p align="justify">
    		This section provides a set of basic examples and patterns.
    	</p>
    	
		<hr class="clearer" />

	    <div class="homeitem3col" >
	    	<ul>	
				<li style="list-style:none">
					<table width="100%" cellspacing="0">
						<tr>
							<td width="80%">
								<h2><a href="../old/ATLUseCase_Families2Persons.pdf">Families to Persons</a></h2>
							</td>
							<td width="20%" align="right">
								<b>February 2007</b>
							</td>
						</tr>
						<tr>
							<td colspan="2">
								<table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8">
									<tr>
										<td valign="top">
											This presentation describes a very simple model transformation example, some kind of ATL "hello world".
											<p>
												<i>ATL concepts encountered:</i>
												Header section,
												Helper functions,
												Matched rules 
											</p>
											<p>
												<i>Additional concepts encountered:</i>
												Metamodel and conformance relation,
												ATL IDE (ADT)
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="../old/ATLUseCase_Families2Persons.pdf">
													<img style="vertical-align:text-top;" src="/resources/images/presentation.png"/> Presentation Families to Persons
												</a>
												<br/>
												February 2007
												<br/>
												by Freddy Allilaire, Frédéric Jouault (INRIA)
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="http://www.eclipse.org/atl/atlTransformations/Families2Persons/Families2Persons.zip">
													<img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code Families to Persons
												</a>
												<br/>
												February 2007
												<br/>
												by Freddy Allilaire, Frédéric Jouault (INRIA)
											</p>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</table>				
				</li>
				<li style="list-style:none">
					<table width="100%" cellspacing="0">
						<tr>
							<td width="80%">
								<h2><a href="article.php?file=Tree2List/index.html">Tree to List</a></h2>
							</td>
							<td width="20%" align="right">
								<b>July 2007</b>
							</td>
						</tr>
						<tr>
							<td colspan="2">
								<table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8">
									<tr>
										<td valign="top">
      		  								This transformation presents a basic example where a tree is transformed into a list. This kind of transformation is usually made by an 
      		  								imperative Depth First Traversal algorithm.
											<p>
												<i>ATL concepts encountered:</i>
												Matched rules (one with a guard), 
      		  									Helper functions (one being recursive),
   												Collection related functions,
   												Enumeration, and
   												ATL resolve algorithm. 
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="article.php?file=Tree2List/index.html">
													<img style="vertical-align:text-top;" src="/resources/images/html.png"/> Article Tree to List
												</a>
												<br/>
												July 2007
												<br/>
												by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA)
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="http://www.eclipse.org/atl/atlTransformations/Tree2List/Tree2List.zip">
													<img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code Tree to List
												</a>
												<br/>
												July 2007
												<br/>
												by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA)
											</p>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</li>
				<li style="list-style:none">
					<table width="100%" cellspacing="0">
						<tr>
							<td width="80%">
								<h2><a href="article.php?file=ListMetamodelRefactoring/index.html">List Metamodel Refactoring</a></h2>
							</td>
							<td width="20%" align="right">
								<b>December 2007</b>
							</td>
						</tr>
						<tr>
							<td colspan="2">
								<table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8">
									<tr>
										<td valign="top">
											In this example, we present some basic concepts of ATL through a simple use case. Our working context is the creation of a bridge between 
											two different versions of a List metamodel (A and B). This bridge consists on an ATL transformation from the version A to the version B. 
											<p>
												<i>ATL concepts encountered:</i>
												Automatic traceability support in ATL, Handling collection, and	String operation.
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="article.php?file=ListMetamodelRefactoring/index.html">
													<img style="vertical-align:text-top;" src="/resources/images/html.png"/> Article List Metamodel Refactoring
												</a>
												<br/>
												December 2007
												<br/>
												by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA)
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="http://www.eclipse.org/atl/atlTransformations/ListMetamodelRefactoring/ListMetamodelRefactoring.zip">
													<img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code List Metamodel Refactoring
												</a>
												<br/>
												December 2007
												<br/>
												by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA)
											</p>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</li>
				<li style="list-style:none">
					<table width="100%" cellspacing="0">
						<tr>
							<td width="80%">
								<h2><a href="article.php?file=Port/index.html">Port</a></h2>
							</td>
							<td width="20%" align="right">
								<b>January 2008</b>
							</td>
						</tr>
						<tr>
							<td colspan="2">
								<table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8">
									<tr>
										<td valign="top">
											In this example, we present some basic concepts of ATL through a simple use case.
											This use case deals with situations where the source element meta type could not be simply matched with the target meta type.
											The only way to resolve the target meta type is to browse source model.
											<p>
												<i>ATL concepts encountered:</i>
												Matched rules and lazy (matched) rules, Avoiding some imperative constructs, and Code optimization.
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="article.php?file=Port/index.html">
													<img style="vertical-align:text-top;" src="/resources/images/html.png"/> Article Port
												</a>
												<br/>
												January 2008
												<br/>
												by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA)
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="http://www.eclipse.org/atl/atlTransformations/Port/Port.zip">
													<img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code Port
												</a>
												<br/>
												January 2008
												<br/>
												by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA)
											</p>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</li>
				<li style="list-style:none">
					<table width="100%" cellspacing="0">
						<tr>
							<td width="80%">
								<h2><a href="article.php?file=SideEffect/index.html">Side Effect</a></h2>
							</td>
							<td width="20%" align="right">
								<b>January 2008</b>
							</td>
						</tr>
						<tr>
							<td colspan="2">
								<table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8">
									<tr>
										<td valign="top">
											This case deals with the way to handle side effects induced while transforming an element. We will start from an imperative algorithm to create a 
											transformation between two metamodels. This algorithm will introduce a side effect problem. After several iteration a solution will be provided
											following ATL philosophy.
											<p>
												<i>ATL concepts encountered:</i>
												ATL imperative parts for dealing with complex situation, and
												Chain of ATL transformations to divide transformation complexity and to avoid imperative parts.												 
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="article.php?file=SideEffect/index.html">
													<img style="vertical-align:text-top;" src="/resources/images/html.png"/> Article Side Effect
												</a>
												<br/>
												January 2008
												<br/>
												by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA)
											</p>
											<p style="margin-left:3em;text-indent:-2em;">
												<a href="http://www.eclipse.org/atl/atlTransformations/SideEffect/SideEffect.zip">
													<img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code Side Effect
												</a>
												<br/>
												January 2008
												<br/>
												by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA)
											</p>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</li>
	    	</ul>
	    </div>
		<hr class="clearer" />
	</div>
	
EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
