<!DOCTYPE html> | |
<html lang="en"> | |
<!-- | |
/******************************************************************************** | |
** Copyright (c) 2012 Obeo. | |
** All rights reserved. This program and the accompanying materials | |
** are made available under the terms of the Eclipse Public License v1.0 | |
** which accompanies this distribution, and is available at | |
** http://www.eclipse.org/legal/epl-v10.html | |
** | |
** Contributors: | |
** Stephane Begaudeau (Obeo) - initial API and implementation | |
*********************************************************************************/ | |
--> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<meta name="description" content=""> | |
<meta name="author" content="Stéphane Bégaudeau"> | |
<!-- IE6-8 support of HTML elements --> | |
<!--[if lt IE 9]> | |
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> | |
<![endif]--> | |
<link href="../../assets/css/bootstrap.css" rel="stylesheet"> | |
<link href="../../assets/css/docs.css" rel="stylesheet"> | |
<title>Acceleo</title> | |
</head> | |
<body> | |
<div class="container"> | |
<section id="introduction"> | |
<div class="page-header"> | |
<h1>Migration <small>From Acceleo 2.x to Acceleo 3.x</small></h1> | |
</div> | |
<p> | |
This document lists equivalences between Acceleo 2 and Acceleo 3 expressions. | |
</p> | |
</section> | |
<section id="miscellaneous"> | |
<div class="page-header"> | |
<h1>Miscellaneous</h1> | |
</div> | |
<p> | |
Equilavence guide for miscellaneous expressions. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%metamodel http://www.eclipse.org/uml2/2.0.0/UML%></td> | |
<td>[module module_name('http://www.eclipse.org/uml2/2.0.0/UML')/]</td> | |
</tr> | |
<tr> | |
<td><%import module.mt%></td> | |
<td>[import module/]</td> | |
</tr> | |
<tr> | |
<td><%import service.java%></td> | |
<td>Services no longer need to be imported</td> | |
</tr> | |
<tr> | |
<td><%list + object%></td> | |
<td>[list->including(object)/]</td> | |
</tr> | |
<tr> | |
<td><%object + list%></td> | |
<td>[object->union(list)/]</td> | |
</tr> | |
<tr> | |
<td><%list1 + list2%></td> | |
<td>[list1->union(list2)/]</td> | |
</tr> | |
<tr> | |
<td><%string + object%></td> | |
<td>[string + object/]</td> | |
</tr> | |
<tr> | |
<td><%list - object%></td> | |
<td>[list->excluding(object)/]</td> | |
</tr> | |
<tr> | |
<td><%list1 - list2%></td> | |
<td>[list1->asSet() - list2->asSet()/] (Note that this no longer keeps duplicates, | |
which is not strictly equivalent to Acceleo 2)</td> | |
</tr> | |
<tr> | |
<td><%list1 || list2%></td> | |
<td>[list1->union(list2)/]</td> | |
</tr> | |
<tr> | |
<td><%list && object%></td> | |
<td>[list->select(element | element = object)/]</td> | |
</tr> | |
<tr> | |
<td><%list1 && list2%></td> | |
<td>[list1->iterate(element; result : Sequence(T) = Sequence{} | if | |
list2->includes(element) then result->including(element) else result endif)/]</td> | |
</tr> | |
<tr> | |
<td><%list1 == list2%></td> | |
<td>[list1 = list2/]</td> | |
</tr> | |
<tr> | |
<td><%list1 != list2%></td> | |
<td>[list1 <> list2/]</td> | |
</tr> | |
<tr> | |
<td><%object != object%></td> | |
<td>[object <> object/]</td> | |
</tr> | |
<tr> | |
<td><%! boolean%></td> | |
<td>[not boolean/]</td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="eobject"> | |
<div class="page-header"> | |
<h1>EObject Services</h1> | |
</div> | |
<p> | |
Equilavence guide for EObject services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%x.eAllContents%></td> | |
<td>[x.eAllContents()/]</td> | |
</tr> | |
<tr> | |
<td><%x.eAllContents("EClass")%></td> | |
<td>[x.eAllContents(EClass)/]</td> | |
</tr> | |
<tr> | |
<td><%x.eClass%></td> | |
<td>[x.eClass()/]</td> | |
</tr> | |
<tr> | |
<td><%x.eContainer%></td> | |
<td>[x.eContainer()/]</td> | |
</tr> | |
<tr> | |
<td><%x.eContainer("EPackage")%></td> | |
<td>[x.eContainer(EPackage)/]</td> | |
</tr> | |
<tr> | |
<td><%x.eContainingFeature%></td> | |
<td>[x.eContainingFeature()/]</td> | |
</tr> | |
<tr> | |
<td><%x.eContainmentFeature%></td> | |
<td>[x.eContainmnentFeature()/]</td> | |
</tr> | |
<tr> | |
<td><%x.eContents%></td> | |
<td>[x.eContents()/]</td> | |
</tr> | |
<tr> | |
<td><%x.eCrossReferences%></td> | |
<td>[x.eCrossReferences()/]</td> | |
</tr> | |
<tr> | |
<td><%x.eResource%></td> | |
<td>[x.eResource()/]</td> | |
</tr> | |
<tr> | |
<td><%x.eResourceName%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%x.getRootContainer%></td> | |
<td>[x.ancestors()->last()/]</td> | |
</tr> | |
<tr> | |
<td><%load("//UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2")%></td> | |
<td>No direct equivalent : Acceleo 3 accepts more than one model | |
element as arguments of a generation. An alternative would be | |
to use a custom Java service for this need.</td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="request"> | |
<div class="page-header"> | |
<h1>Request Services</h1> | |
</div> | |
<p> | |
Equilavence guide for Request services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%list.select("eAttributes.nSize() > 0")%></td> | |
<td>[list->select(eAttributes->size() > 0)/]</td> | |
</tr> | |
<tr> | |
<td><%list.select("eAttributes.nSize()", "0")%></td> | |
<td>[list->select(eAttributes->size() = 0)/]</td> | |
</tr> | |
<tr> | |
<td><%list.delete("eAttributes.nSize() > 0")%></td> | |
<td>[list->reject(eAttributes->size() > 0)/]</td> | |
</tr> | |
<tr> | |
<td><%list.delete("eAttributes.nSize()", "0")%></td> | |
<td>[list->reject(eAttributes->size() = 0)/]</td> | |
</tr> | |
<tr><td><%evaluate("2 + 4")%></td> | |
<td> </td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="resources"> | |
<div class="page-header"> | |
<h1>Resources Services</h1> | |
</div> | |
<p> | |
Equilavence guide for Resources services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%getFileContent("C:/Obeo/models/MyModel.xmi")%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%getChainPath%></td> | |
<td> </td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="string"> | |
<div class="page-header"> | |
<h1>String Services</h1> | |
</div> | |
<p> | |
Equilavence guide for String services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%x.length%></td> | |
<td>[x.size()/]</td> | |
</tr> | |
<tr> | |
<td><%x.toUpperCase%></td> | |
<td>[x.toUpper()/]</td> | |
</tr> | |
<tr> | |
<td><%x.toLowerCase%></td> | |
<td>[x.toLower()/]</td> | |
</tr> | |
<tr> | |
<td><%x.toU1Case%></td> | |
<td>[x.toUpperFirst()/]</td> | |
</tr> | |
<tr> | |
<td><%x.toL1Case%></td> | |
<td>[x.toLowerFirst()/]</td> | |
</tr> | |
<tr> | |
<td><%x.substring(1, 3)%></td> | |
<td>[x.substring(2, 3)/]</td> | |
</tr> | |
<tr> | |
<td><%x.substring(1)%></td> | |
<td>[x.substring(2)/]</td> | |
</tr> | |
<tr> | |
<td><%x.replaceAll("test", "replaced")%></td> | |
<td>[x.replaceAll('test', 'replaced')/]</td> | |
</tr> | |
<tr> | |
<td><%x.replaceAll("\w", "$0")%></td> | |
<td>[x.replaceAll('\\w', '$0')/]</td> | |
</tr> | |
<tr> | |
<td><%x.replaceFirst("test", "replaced")%></td> | |
<td>[x.replace('test', 'replaced')/]</td> | |
</tr> | |
<tr> | |
<td><%x.replaceFirst("\w", "$0")%></td> | |
<td>[x.replace('\\w', '$0')/]</td> | |
</tr> | |
<tr> | |
<td><%x.trim%></td> | |
<td>[x.trim()/]</td> | |
</tr> | |
<tr> | |
<td><%x.startsWith(y)%></td> | |
<td>[x.startsWith(y)/]</td> | |
</tr> | |
<tr> | |
<td><%x.endsWith(y)%></td> | |
<td>[x.endsWith(y)/]</td> | |
</tr> | |
<tr> | |
<td><%x.equalsIgnoreCase(y)%></td> | |
<td>[x.equalsIgnoreCase(y)/]</td> | |
</tr> | |
<tr> | |
<td><%x.matches(y)%></td> | |
<td>[x.matches(y)/]</td> | |
</tr> | |
<tr> | |
<td><%x.charAt(4)%></td> | |
<td>[x.substring(5, 5)/]</td> | |
</tr> | |
<tr> | |
<td><%x.indexOf(y)%></td> | |
<td>[x.index(y)/]</td> | |
</tr> | |
<tr> | |
<td><%x.indexOf(y, 4)%></td> | |
<td>[x.substring(5, x.size()).index(y) + 4/]</td> | |
</tr> | |
<tr> | |
<td><%x.lastIndexOf(y)%></td> | |
<td>[x.lastIndex(y)/]</td> | |
</tr> | |
<tr> | |
<td><%x.lastIndexOf(y, 4)%></td> | |
<td>[x.substring(5, x.size()).lastIndex(y) + 4/]</td> | |
</tr> | |
<tr> | |
<td><%x.split(y)%></td> | |
<td>No direct equivalent, use String::tokenize(String)</td> | |
</tr> | |
<tr> | |
<td><%x.indentSpace%></td> | |
<td>[x.replaceAll('\r\n|\r|\n', '$0 ')/]</td> | |
</tr> | |
<tr> | |
<td><%x.indentTab%></td> | |
<td>[x.replaceAll('\r\n|\r|\n', '$0t')/]</td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="system"> | |
<div class="page-header"> | |
<h1>System Services</h1> | |
</div> | |
<p> | |
Equilavence guide for System services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%i()%></td> | |
<td>[i/]</td> | |
</tr> | |
<tr> | |
<td><%args(0)%></td> | |
<td>arguments are explicit and named in Acceleo 3</td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="xpath"> | |
<div class="page-header"> | |
<h1>XPath Services</h1> | |
</div> | |
<p> | |
Equilavence guide for XPath services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%x.ancestor%></td> | |
<td>[x.ancestors()/]</td> | |
</tr> | |
<tr> | |
<td><%x.parent%></td> | |
<td>[x.eContainer()/]</td> | |
</tr> | |
<tr> | |
<td><%self%></td> | |
<td>[self/]</td> | |
</tr> | |
<tr> | |
<td><%x.child%></td> | |
<td>[x.eContents()/]</td> | |
</tr> | |
<tr> | |
<td><%x.descendant%></td> | |
<td>[x.eAllContents()/]</td> | |
</tr> | |
<tr> | |
<td><%x.precedingSibling%></td> | |
<td>[x.precedingSiblings()/]</td> | |
</tr> | |
<tr> | |
<td><%x.preceding%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%x.followingSibling%></td> | |
<td>[x.followingSiblings()/]</td> | |
</tr> | |
<tr> | |
<td><%x.following%></td> | |
<td> </td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="enode"> | |
<div class="page-header"> | |
<h1>ENode Services</h1> | |
</div> | |
<p> | |
Equilavence guide for ENode services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%eObject.adapt("EObject")%></td> | |
<td>[eObject/]</td> | |
</tr> | |
<tr> | |
<td><%eObject.adapt("ENodeList")%></td> | |
<td>[if (eObject.oclIsUndefined())][Sequence{}/][else][Sequence{eObject}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%eObject.adapt("String")%></td> | |
<td>[if (eObject.oclIsUndefined())][''/][else][eObject.toString()/][/if]</td> | |
</tr> | |
<tr> | |
<td><%eObject.adapt("Boolean")%></td> | |
<td>[not eObject.oclIsUndefined()/]</td> | |
</tr> | |
<tr> | |
<td><%eObject.adapt("int")%></td> | |
<td>[eObject->size()/]</td> | |
</tr> | |
<tr> | |
<td><%eObject.adapt("double")%></td> | |
<td>[eObject->size().toString().toReal()/]</td> | |
</tr> | |
<tr> | |
<td><%eObject.adapt("List")%></td> | |
<td>[if (eObject.oclIsUndefined())][Sequence{}/][else][Sequence{eObject}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%eObject.adapt("ENode")%></td> | |
<td>[eObject/]</td> | |
</tr> | |
<tr> | |
<td><%list.adapt("EObject")%></td> | |
<td>[if (list.oclIsUndefined())][null/][elseif (list->size() == 0)][else][list.at(0)/][/if]</td> | |
</tr> | |
<tr> | |
<td><%list.adapt("ENodeList")%></td> | |
<td>[if (list.oclIsUndefined())][Sequence{}/][else][list/][/if]</td> | |
</tr> | |
<tr> | |
<td><%list.adapt("String")%></td> | |
<td>[if (list.oclIsUndefined())][''/][else][list.toString()/][/if]</td> | |
</tr> | |
<tr> | |
<td><%list.adapt("Boolean")%</td> | |
<td>[list->size() > 0/]</td> | |
</tr> | |
<tr> | |
<td><%list.adapt("int")%></td> | |
<td>[list->size()/]</td> | |
</tr> | |
<tr> | |
<td><%list.adapt("double")%></td> | |
<td>[list->size().toString().toReal()/]</td> | |
</tr> | |
<tr> | |
<td><%list.adapt("List")%></td> | |
<td>[if (list.oclIsUndefined())][Sequence{}/][else][list/][/if]</td> | |
</tr> | |
<tr> | |
<td><%list.adapt("ENode")%></td> | |
<td>[list/]</td> | |
</tr> | |
<tr> | |
<td><%string.adapt("EObject")%></td> | |
<td>can only return empty enodes in Acceleo 2, so migration is simply "nothing"</td> | |
</tr> | |
<tr> | |
<td><%string.adapt("ENodeList")%></td> | |
<td>[if (string.oclIsUndefined())][Sequence{}/][else][Sequence{string}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%string.adapt("String")%></td> | |
<td>[string/]</td> | |
</tr> | |
<tr> | |
<td><%string.adapt("Boolean")%></td> | |
<td>[string.equalsIgnoreCase('true')/]</td> | |
</tr> | |
<tr> | |
<td><%string.adapt("int")%></td> | |
<td>[string.toInt()/]</td> | |
</tr> | |
<tr> | |
<td><%string.adapt("double")%></td> | |
<td>[string.toReal()/]</td> | |
</tr> | |
<tr> | |
<td><%string.adapt("List")%></td> | |
<td>[if (string.oclIsUndefined())][Sequence{}/][else][Sequence{string}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%string.adapt("ENode")%></td> | |
<td>[string/]</td> | |
</tr> | |
<tr> | |
<td><%boolean.adapt("EObject")%></td> | |
<td>can only return empty enodes in Acceleo 2, so migration is simply "nothing"</td> | |
</tr> | |
<tr> | |
<td><%boolean.adapt("ENodeList")%></td> | |
<td>[if (boolean.oclIsUndefined())][Sequence{}/][else][Sequence{boolean}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%boolean.adapt("String")%></td> | |
<td>[if (boolean.oclIsUndefined())][''/][else][boolean.toString()/][/if]</td> | |
</tr> | |
<tr> | |
<td><%boolean.adapt("Boolean")%></td> | |
<td>[not boolean.oclIsUndefined() and boolean/]</td> | |
</tr> | |
<tr> | |
<td><%boolean.adapt("int")%></td> | |
<td>[if (not boolean.oclIsUndefined() and boolean)][1/][else][0/][/if]</td> | |
</tr> | |
<tr> | |
<td><%boolean.adapt("double")%></td> | |
<td>[if (not boolean.oclIsUndefined() and boolean)][1.0/][else][0.0/][/if]</td> | |
</tr> | |
<tr> | |
<td><%boolean.adapt("List")%></td> | |
<td>[if (boolean.oclIsUndefined())][Sequence{}/][else][Sequence{boolean}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%boolean.adapt("ENode")%></td> | |
<td>[boolean/]</td> | |
</tr> | |
<tr> | |
<td><%int.adapt("EObject")%></td> | |
<td>can only return empty enodes in Acceleo 2, so migration is simply "nothing"</td> | |
</tr> | |
<tr> | |
<td><%int.adapt("ENodeList")%></td> | |
<td>[if (int.oclIsUndefined())][Sequence{}/][else][Sequence{int}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%int.adapt("String")%></td> | |
<td>[if (int.oclIsUndefined())][''/][else][int.toString()/][/if]</td> | |
</tr> | |
<tr> | |
<td><%int.adapt("Boolean")%></td> | |
<td>[not int.oclIsUndefined() and int > 0/]</td> | |
</tr> | |
<tr> | |
<td><%int.adapt("int")%></td> | |
<td>[if (int.oclIsUndefined())][0/][else][int/][/if]</td> | |
</tr> | |
<tr> | |
<td><%int.adapt("double")%></td> | |
<td>[if (int.oclIsUndefined())][0.0/][else][int.toString().toReal()/][/if]</td> | |
</tr> | |
<tr> | |
<td><%int.adapt("List")%></td> | |
<td>[if (int.oclIsUndefined())][Sequence{}/][else][Sequence{int}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%int.adapt("ENode")%></td> | |
<td>[int/]</td> | |
</tr> | |
<tr> | |
<td><%double.adapt("EObject")%></td> | |
<td>can only return empty enodes in Acceleo 2, so migration is simply "nothing"</td> | |
</tr> | |
<tr> | |
<td><%double.adapt("ENodeList")%></td> | |
<td>[if (double.oclIsUndefined())][Sequence{}/][else][Sequence{double}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%double.adapt("String")%></td> | |
<td>[if (double.oclIsUndefined())][''/][else][double.toString()/][/if]</td> | |
</tr> | |
<tr> | |
<td><%double.adapt("Boolean")%></td> | |
<td>[not double.oclIsUndefined() and double > 0/]</td> | |
</tr> | |
<tr> | |
<td><%double.adapt("int")%></td> | |
<td>[if (double.oclIsUndefined())][0/][else][double.toString().toInt()/][/if]</td> | |
</tr> | |
<tr> | |
<td><%double.adapt("double")%></td> | |
<td>[if (double.oclIsUndefined())][0.0/][else][double/][/if]</td> | |
</tr> | |
<tr> | |
<td><%double.adapt("List")%></td> | |
<td>[if (double.oclIsUndefined())][Sequence{}/][else][Sequence{double}/][/if]</td> | |
</tr> | |
<tr> | |
<td><%double.adapt("ENode")%></td> | |
<td>[double/]</td> | |
</tr> | |
<tr> | |
<td><%list.cast("EClass")%></td> | |
<td>[list->select(not oclIsKindOf(EObject) or oclIsKindOf(EClass))/]</td> | |
</tr> | |
<tr> | |
<td><%list.filter("EClass")%></td> | |
<td>[list->select(not oclIsKindOf(EObject) or oclIsKindOf(EClass))/]</td> | |
</tr> | |
<tr> | |
<td><%current()%></td> | |
<td>[self/]</td> | |
</tr> | |
<tr> | |
<td><%current(1)%></td> | |
<td>iterator variables are named in Acceleo 3</td> | |
</tr> | |
<tr> | |
<td><%node.debug%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%node.trace%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%node.trace("name")%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%nPut("key", object)%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%nGet("key")%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%nPeek%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%nPop%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%nPush%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%list.nMinimize%></td> | |
<td>[list->asOrderedSet()->asSequence()/]</td> | |
</tr> | |
<tr> | |
<td><%list.minimize%></td> | |
<td>[list->asOrderedSet()->asSequence()/]</td> | |
</tr> | |
<tr> | |
<td><%list.nContains(item)%></td> | |
<td>[list->includes(item)/]</td> | |
</tr> | |
<tr> | |
<td><%list.nFirst%></td> | |
<td>[list->first()/]</td> | |
</tr> | |
<tr> | |
<td><%list.nLast%></td> | |
<td>[list->last()/]</td> | |
</tr> | |
<tr> | |
<td><%list.nGet(0)%></td> | |
<td>[list->at(0)/]</td> | |
</tr> | |
<tr> | |
<td><%list.nGet(0, 1)%></td> | |
<td>[list->subSequence(1, 2)/]</td> | |
</tr> | |
<tr> | |
<td><%list.nReverse%></td> | |
<td>[list->reverse()/]</td> | |
</tr> | |
<tr> | |
<td><%list.reverse%></td> | |
<td>[list->reverse()/]</td> | |
</tr> | |
<tr> | |
<td><%list.nSize%></td> | |
<td>[list->size()/]</td> | |
</tr> | |
<tr> | |
<td><%list.nSort%></td> | |
<td>[list->sortedBy(toString())/]</td> | |
</tr> | |
<tr> | |
<td><%list.nSort(name)%></td> | |
<td>[list->sortedBy(name)/]</td> | |
</tr> | |
<tr> | |
<td><%list.sort%></td> | |
<td>[list->sortedBy(toString())->asOrderedSet()->asSequence()/]</td> | |
</tr> | |
<tr> | |
<td><%list.sort(name)%></td> | |
<td>[list->sortedBy(name)->asOrderedSet()->asSequence()/]</td> | |
</tr> | |
<tr> | |
<td><%list.sep(",")%></td> | |
<td>[list->sep(',')/]</td> | |
</tr> | |
<tr> | |
<td><%list.sepStr(",")%></td> | |
<td>[list->sep(',')/]</td> | |
</tr> | |
<tr> | |
<td><%node.toString%></td> | |
<td>[node.toString()/]</td> | |
</tr> | |
<tr> | |
<td><%eObject.until("eContainer", "EClass")%></td> | |
<td> </td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="context"> | |
<div class="page-header"> | |
<h1>Context Services</h1> | |
</div> | |
<p> | |
Equilavence guide for Context services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%get("key")%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%peek%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%pop%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%push%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%put("key", object)</td> | |
<td> </td> | |
</tr> | |
</tbody> | |
</table> | |
</section> | |
<section id="properties"> | |
<div class="page-header"> | |
<h1>Properties Services</h1> | |
</div> | |
<p> | |
Equilavence guide for Properties services. | |
</p> | |
<table class="table table-striped table-bordered table-condensed"> | |
<colgroup> | |
<col width="43%" /> | |
<col width="57%" /> | |
</colgroup> | |
<thead valign="bottom"> | |
<tr> | |
<th class="head">Acceleo 2 Expression</th> | |
<th class="head">Acceleo 3 Expression (OCL)</th> | |
</tr> | |
</thead> | |
<tbody valign="top"> | |
<tr> | |
<td><%getBestProperty("partial.key")%></td> | |
<td> </td> | |
</tr> | |
<tr> | |
<td><%getProperty("key")%></td> | |
<td>[getProperty('key')/]</td> | |
</tr> | |
<tr> | |
<td><%getProperty("propertiesFile", "key")%></td> | |
<td>[getProperty('propertiesFile', 'key')/]</td> | |
</tr> | |
</tbody> | |
</table> | |
<br /> | |
<br /> | |
</section> | |
<footer class="footer"> | |
<p> | |
The material in these guides are Copyright (c) 2008, 2012 Obeo. This material is available under the Eclipse Public License v1.0 | |
</p> | |
</footer> | |
</footer> | |
</div> | |
</body> | |
</html> |