Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDennis Wagelaar2018-01-08 09:07:52 -0500
committerDennis Wagelaar2018-01-08 09:09:55 -0500
commit3eed509aa69167c06b3c55992fabdcef21db2a84 (patch)
tree2bb716708f8f84b78ff66a78d342021181c929e6 /plugins/org.eclipse.m2m.atl.emftvm
parentd8ba2bbe174181d03c42b440c93afdfca6fa9801 (diff)
downloadorg.eclipse.atl-3eed509aa69167c06b3c55992fabdcef21db2a84.tar.gz
org.eclipse.atl-3eed509aa69167c06b3c55992fabdcef21db2a84.tar.xz
org.eclipse.atl-3eed509aa69167c06b3c55992fabdcef21db2a84.zip
415863: Support (multiple) virtual dispatch for lazy rules
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=415863
Diffstat (limited to 'plugins/org.eclipse.m2m.atl.emftvm')
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore11
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.genmodel6
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/BranchInstruction.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlock.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlockInstruction.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ConstantTag.java6
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ExecEnv.java4
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Feature.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FeatureTag.java6
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Field.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FieldInstruction.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Findtype.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Ifte.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InputRuleElement.java4
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeInstruction.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeOperationInstruction.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LineNumber.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariable.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariableInstruction.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Match.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Model.java4
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclaration.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclarationTag.java6
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Module.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/NamedElement.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/New.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Opcode.java6
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Operation.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/OutputRuleElement.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Parameter.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Push.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Rule.java52
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleElement.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleMode.java6
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/TypedElement.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AddImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstInImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AndImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/BranchInstructionImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockInstructionImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DeleteImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupX1Impl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java11
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EnditerateImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FeatureImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldInstructionImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeSImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetStaticImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetSuperImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetTransImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetcbImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvtypeImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GotoImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfnImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfteImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ImpliesImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InputRuleElementImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InsertImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeAllCbsImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbSImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeInstructionImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeOperationInstructionImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeStaticImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeSuperImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IsnullImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IterateImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LineNumberImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LoadImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableInstructionImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchSImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MetamodelImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelDeclarationImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModuleImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NamedElementImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewSImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NotImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OperationImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OrImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OutputRuleElementImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ParameterImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PopImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushfImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushtImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RemoveImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ReturnImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleElementImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleImpl.java1047
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetStaticImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/StoreImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapX1Impl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/TypedElementImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/XorImpl.java2
112 files changed, 665 insertions, 702 deletions
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore b/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore
index 070b038e..8a5ba91f 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore
+++ b/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore
@@ -593,7 +593,12 @@
</eOperations>
<eOperations name="applyOne" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
<eParameters name="frame" eType="#//StackFrame"/>
- <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
+ <eParameters name="valuesMap">
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
</eOperations>
<eOperations name="applyFor" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
<eParameters name="frame" eType="#//StackFrame"/>
@@ -622,6 +627,10 @@
<eOperations name="findInputElement" eType="#//InputRuleElement">
<eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eOperations>
+ <eOperations name="getUniqueTrace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ <eParameters name="values" eType="#//EJavaObjectArray"/>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="module" eType="#//Module"
eOpposite="#//Module/rules"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" lowerBound="1" eType="#//RuleMode"/>
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.genmodel b/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.genmodel
index f5daac57..e0d3a78a 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.genmodel
+++ b/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.genmodel
@@ -502,7 +502,7 @@
</genOperations>
<genOperations ecoreOperation="emftvm.ecore#//Rule/applyOne">
<genParameters ecoreParameter="emftvm.ecore#//Rule/applyOne/frame"/>
- <genParameters ecoreParameter="emftvm.ecore#//Rule/applyOne/trace"/>
+ <genParameters ecoreParameter="emftvm.ecore#//Rule/applyOne/valuesMap"/>
</genOperations>
<genOperations ecoreOperation="emftvm.ecore#//Rule/applyFor">
<genParameters ecoreParameter="emftvm.ecore#//Rule/applyFor/frame"/>
@@ -527,6 +527,10 @@
<genOperations ecoreOperation="emftvm.ecore#//Rule/findInputElement">
<genParameters ecoreParameter="emftvm.ecore#//Rule/findInputElement/name"/>
</genOperations>
+ <genOperations ecoreOperation="emftvm.ecore#//Rule/getUniqueTrace">
+ <genParameters ecoreParameter="emftvm.ecore#//Rule/getUniqueTrace/frame"/>
+ <genParameters ecoreParameter="emftvm.ecore#//Rule/getUniqueTrace/values"/>
+ </genOperations>
</genClasses>
<genClasses ecoreClass="emftvm.ecore#//RuleElement">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute emftvm.ecore#//RuleElement/models"/>
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/BranchInstruction.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/BranchInstruction.java
index 038f264b..98683969 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/BranchInstruction.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/BranchInstruction.java
@@ -20,11 +20,11 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.BranchInstruction#getOffset <em>Offset</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.BranchInstruction#getTarget <em>Target</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getBranchInstruction()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlock.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlock.java
index 29abf5b8..d1acd5ad 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlock.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlock.java
@@ -26,6 +26,7 @@ import org.eclipse.m2m.atl.emftvm.util.StackFrame;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.CodeBlock#getMaxLocals <em>Max Locals</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.CodeBlock#getMaxStack <em>Max Stack</em>}</li>
@@ -42,7 +43,6 @@ import org.eclipse.m2m.atl.emftvm.util.StackFrame;
* <li>{@link org.eclipse.m2m.atl.emftvm.CodeBlock#getParentFrame <em>Parent Frame</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.CodeBlock#getBindingFor <em>Binding For</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getCodeBlock()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlockInstruction.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlockInstruction.java
index 2bf033be..01717fff 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlockInstruction.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/CodeBlockInstruction.java
@@ -20,11 +20,11 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.CodeBlockInstruction#getCbIndex <em>Cb Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.CodeBlockInstruction#getCodeBlock <em>Code Block</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getCodeBlockInstruction()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ConstantTag.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ConstantTag.java
index 722b2123..8be3daea 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ConstantTag.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ConstantTag.java
@@ -306,6 +306,8 @@ public enum ConstantTag implements Enumerator {
* @param literal the literal string value
* @return the '<em><b>Constant Tag</b></em>' literal with the specified literal value.
* <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static ConstantTag get(String literal) {
@@ -324,6 +326,8 @@ public enum ConstantTag implements Enumerator {
* @param name the literal name
* @return the '<em><b>Constant Tag</b></em>' literal with the specified name.
* <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static ConstantTag getByName(String name) {
@@ -342,6 +346,8 @@ public enum ConstantTag implements Enumerator {
* @param value the literal integer value
* @return the '<em><b>Constant Tag</b></em>' literal with the specified integer value.
* <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static ConstantTag get(int value) {
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ExecEnv.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ExecEnv.java
index c6e44af2..d8979042 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ExecEnv.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ExecEnv.java
@@ -33,6 +33,7 @@ import org.eclipse.m2m.atl.emftvm.util.VMMonitor;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.ExecEnv#getMetaModels <em>Meta Models</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.ExecEnv#getInputModels <em>Input Models</em>}</li>
@@ -45,7 +46,6 @@ import org.eclipse.m2m.atl.emftvm.util.VMMonitor;
* <li>{@link org.eclipse.m2m.atl.emftvm.ExecEnv#isJitDisabled <em>Jit Disabled</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.ExecEnv#getCurrentPhase <em>Current Phase</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getExecEnv()
* @model
@@ -676,7 +676,7 @@ public interface ExecEnv extends EObject {
* Returns all rules registered in this {@link ExecEnv}.
* @return all rules registered in this {@link ExecEnv}.
* <!-- end-user-doc -->
- * @model kind="operation" dataType="org.eclipse.m2m.atl.emftvm.LazyList<org.eclipse.m2m.atl.emftvm.Rule>"
+ * @model kind="operation" dataType="org.eclipse.m2m.atl.emftvm.LazyList&lt;org.eclipse.m2m.atl.emftvm.Rule&gt;"
* @generated
*/
LazyList<Rule> getRules();
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Feature.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Feature.java
index 1844c91a..957a9e47 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Feature.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Feature.java
@@ -21,6 +21,7 @@ import org.eclipse.emf.ecore.EClassifier;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Feature#isStatic <em>Static</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Feature#getEContext <em>EContext</em>}</li>
@@ -28,7 +29,6 @@ import org.eclipse.emf.ecore.EClassifier;
* <li>{@link org.eclipse.m2m.atl.emftvm.Feature#getContext <em>Context</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Feature#getContextModel <em>Context Model</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getFeature()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FeatureTag.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FeatureTag.java
index 9b771216..3617923b 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FeatureTag.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FeatureTag.java
@@ -208,6 +208,8 @@ public enum FeatureTag implements Enumerator {
* @param literal the literal value
* @return the '<em><b>Feature Tag</b></em>' literal with the specified literal value.
* <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static FeatureTag get(String literal) {
@@ -226,6 +228,8 @@ public enum FeatureTag implements Enumerator {
* @param name the literal name
* @return the '<em><b>Feature Tag</b></em>' literal with the specified name.
* <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static FeatureTag getByName(String name) {
@@ -244,6 +248,8 @@ public enum FeatureTag implements Enumerator {
* @param value the literal integer value
* @return the '<em><b>Feature Tag</b></em>' literal with the specified integer value.
* <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static FeatureTag get(int value) {
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Field.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Field.java
index ea449765..09e0f3bf 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Field.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Field.java
@@ -22,12 +22,12 @@ import org.eclipse.m2m.atl.emftvm.util.StackFrame;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Field#getStaticValue <em>Static Value</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Field#getInitialiser <em>Initialiser</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Field#getRule <em>Rule</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getField()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FieldInstruction.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FieldInstruction.java
index b46a2ccb..4539b524 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FieldInstruction.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/FieldInstruction.java
@@ -20,10 +20,10 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.FieldInstruction#getFieldname <em>Fieldname</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getFieldInstruction()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Findtype.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Findtype.java
index b5c3c111..b1bb8d32 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Findtype.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Findtype.java
@@ -20,11 +20,11 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Findtype#getModelname <em>Modelname</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Findtype#getTypename <em>Typename</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getFindtype()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Ifte.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Ifte.java
index e4240543..75711d62 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Ifte.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Ifte.java
@@ -20,13 +20,13 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Ifte#getThenCbIndex <em>Then Cb Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Ifte#getElseCbIndex <em>Else Cb Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Ifte#getThenCb <em>Then Cb</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Ifte#getElseCb <em>Else Cb</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getIfte()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InputRuleElement.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InputRuleElement.java
index 1949db59..c5c880cd 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InputRuleElement.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InputRuleElement.java
@@ -22,12 +22,12 @@ import org.eclipse.emf.ecore.EObject;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.InputRuleElement#getBinding <em>Binding</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.InputRuleElement#getInputFor <em>Input For</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.InputRuleElement#isMapsToSelf <em>Maps To Self</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getInputRuleElement()
* @model
@@ -122,7 +122,7 @@ public interface InputRuleElement extends RuleElement {
* @param env the execution environment context
* @return a new {@link Iterable} of possible match values for this rule element.
* <!-- end-user-doc -->
- * @model dataType="org.eclipse.m2m.atl.emftvm.EJavaIterable<org.eclipse.emf.ecore.EObject>"
+ * @model dataType="org.eclipse.m2m.atl.emftvm.EJavaIterable&lt;org.eclipse.emf.ecore.EObject&gt;"
* @generated
*/
Iterable<EObject> createIterable(ExecEnv env);
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java
index d1e1d55e..f8890e10 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java
@@ -21,6 +21,7 @@ import org.eclipse.emf.ecore.EObject;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Instruction#getOwningBlock <em>Owning Block</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Instruction#getOpcode <em>Opcode</em>}</li>
@@ -29,7 +30,6 @@ import org.eclipse.emf.ecore.EObject;
* <li>{@link org.eclipse.m2m.atl.emftvm.Instruction#getStackLevel <em>Stack Level</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Instruction#getLineNumber <em>Line Number</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getInstruction()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeInstruction.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeInstruction.java
index 9796ae1e..d4c1c553 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeInstruction.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeInstruction.java
@@ -20,10 +20,10 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.InvokeInstruction#getArgcount <em>Argcount</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getInvokeInstruction()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeOperationInstruction.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeOperationInstruction.java
index ed4af3d8..d50ee27b 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeOperationInstruction.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/InvokeOperationInstruction.java
@@ -22,10 +22,10 @@ import java.lang.reflect.Method;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.InvokeOperationInstruction#getOpname <em>Opname</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getInvokeOperationInstruction()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LineNumber.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LineNumber.java
index f81410b5..ad36a71e 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LineNumber.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LineNumber.java
@@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.EObject;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.LineNumber#getStartLine <em>Start Line</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.LineNumber#getStartColumn <em>Start Column</em>}</li>
@@ -32,7 +33,6 @@ import org.eclipse.emf.ecore.EObject;
* <li>{@link org.eclipse.m2m.atl.emftvm.LineNumber#getOwningBlock <em>Owning Block</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.LineNumber#getInstructions <em>Instructions</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getLineNumber()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariable.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariable.java
index bbf23523..710fa7df 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariable.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariable.java
@@ -20,6 +20,7 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.LocalVariable#getSlot <em>Slot</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.LocalVariable#getOwningBlock <em>Owning Block</em>}</li>
@@ -28,7 +29,6 @@ package org.eclipse.m2m.atl.emftvm;
* <li>{@link org.eclipse.m2m.atl.emftvm.LocalVariable#getStartInstructionIndex <em>Start Instruction Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.LocalVariable#getEndInstructionIndex <em>End Instruction Index</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getLocalVariable()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariableInstruction.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariableInstruction.java
index 4bfe819c..c1d79d24 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariableInstruction.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/LocalVariableInstruction.java
@@ -20,13 +20,13 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.LocalVariableInstruction#getCbOffset <em>Cb Offset</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.LocalVariableInstruction#getSlot <em>Slot</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.LocalVariableInstruction#getLocalVariableIndex <em>Local Variable Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.LocalVariableInstruction#getLocalVariable <em>Local Variable</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getLocalVariableInstruction()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Match.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Match.java
index b7ffe37d..3c55c3e8 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Match.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Match.java
@@ -20,10 +20,10 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Match#getRulename <em>Rulename</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getMatch()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Model.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Model.java
index db496e4b..f9d406f8 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Model.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Model.java
@@ -24,11 +24,11 @@ import org.eclipse.m2m.atl.emftvm.util.LazyList;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Model#getResource <em>Resource</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Model#isAllowInterModelReferences <em>Allow Inter Model References</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getModel()
* @model
@@ -94,7 +94,7 @@ public interface Model extends EObject {
* @param type the metaclass for which to find the instances
* @return all instances of the given <code>type</code>.
* <!-- end-user-doc -->
- * @model dataType="org.eclipse.m2m.atl.emftvm.LazyList<org.eclipse.emf.ecore.EObject>"
+ * @model dataType="org.eclipse.m2m.atl.emftvm.LazyList&lt;org.eclipse.emf.ecore.EObject&gt;"
* @generated
*/
LazyList<EObject> allInstancesOf(EClass type);
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclaration.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclaration.java
index 9bd99708..434a82b1 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclaration.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclaration.java
@@ -21,6 +21,7 @@ import org.eclipse.emf.ecore.EObject;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.ModelDeclaration#getModelName <em>Model Name</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.ModelDeclaration#getMetaModelName <em>Meta Model Name</em>}</li>
@@ -28,7 +29,6 @@ import org.eclipse.emf.ecore.EObject;
* <li>{@link org.eclipse.m2m.atl.emftvm.ModelDeclaration#getInoutModelFor <em>Inout Model For</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.ModelDeclaration#getOutputModelFor <em>Output Model For</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getModelDeclaration()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclarationTag.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclarationTag.java
index a26e2d87..724cdd2e 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclarationTag.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/ModelDeclarationTag.java
@@ -130,6 +130,8 @@ public enum ModelDeclarationTag implements Enumerator {
* @param literal the literal string value
* @return the '<em><b>Model Declaration Tag</b></em>' literal with the specified literal value.
* <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static ModelDeclarationTag get(String literal) {
@@ -148,6 +150,8 @@ public enum ModelDeclarationTag implements Enumerator {
* @param name the literal name
* @return the '<em><b>Model Declaration Tag</b></em>' literal with the specified name.
* <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static ModelDeclarationTag getByName(String name) {
@@ -166,6 +170,8 @@ public enum ModelDeclarationTag implements Enumerator {
* @param value the literal integer value
* @return the '<em><b>Model Declaration Tag</b></em>' literal with the specified integer value.
* <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static ModelDeclarationTag get(int value) {
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Module.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Module.java
index a80d140d..1cdf5295 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Module.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Module.java
@@ -21,6 +21,7 @@ import org.eclipse.emf.common.util.EList;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Module#getSourceName <em>Source Name</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Module#getFeatures <em>Features</em>}</li>
@@ -31,7 +32,6 @@ import org.eclipse.emf.common.util.EList;
* <li>{@link org.eclipse.m2m.atl.emftvm.Module#getInoutModels <em>Inout Models</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Module#getOutputModels <em>Output Models</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getModule()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/NamedElement.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/NamedElement.java
index 3c5713c7..d3294e22 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/NamedElement.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/NamedElement.java
@@ -21,10 +21,10 @@ import org.eclipse.emf.ecore.EObject;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.NamedElement#getName <em>Name</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getNamedElement()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/New.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/New.java
index 72295401..e8cd1a18 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/New.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/New.java
@@ -20,10 +20,10 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.New#getModelname <em>Modelname</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getNew()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Opcode.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Opcode.java
index 145401b1..c99735b1 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Opcode.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Opcode.java
@@ -1310,6 +1310,8 @@ public enum Opcode implements Enumerator {
* @param literal the literal string value
* @return the '<em><b>Opcode</b></em>' literal with the specified literal value.
* <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static Opcode get(String literal) {
@@ -1328,6 +1330,8 @@ public enum Opcode implements Enumerator {
* @param name the literal name
* @return the '<em><b>Opcode</b></em>' literal with the specified name.
* <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static Opcode getByName(String name) {
@@ -1346,6 +1350,8 @@ public enum Opcode implements Enumerator {
* @param value the literal integer value
* @return the '<em><b>Opcode</b></em>' literal with the specified integer value.
* <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static Opcode get(int value) {
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Operation.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Operation.java
index 0acfe0dc..7f61c200 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Operation.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Operation.java
@@ -21,12 +21,12 @@ import org.eclipse.emf.common.util.EList;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Operation#getParameters <em>Parameters</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Operation#isQuery <em>Query</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Operation#getBody <em>Body</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getOperation()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/OutputRuleElement.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/OutputRuleElement.java
index a5711a8c..4dbbe350 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/OutputRuleElement.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/OutputRuleElement.java
@@ -22,11 +22,11 @@ import org.eclipse.emf.common.util.EList;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.OutputRuleElement#getMapsTo <em>Maps To</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.OutputRuleElement#getOutputFor <em>Output For</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getOutputRuleElement()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Parameter.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Parameter.java
index 0eddf36a..fde564aa 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Parameter.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Parameter.java
@@ -20,10 +20,10 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Parameter#getOperation <em>Operation</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getParameter()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Push.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Push.java
index 72bd8a82..56d7c09d 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Push.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Push.java
@@ -20,6 +20,7 @@ package org.eclipse.m2m.atl.emftvm;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Push#getValue <em>Value</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Push#getStringValue <em>String Value</em>}</li>
@@ -32,7 +33,6 @@ package org.eclipse.m2m.atl.emftvm;
* <li>{@link org.eclipse.m2m.atl.emftvm.Push#getLongValue <em>Long Value</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Push#getEnumValue <em>Enum Value</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getPush()
* @model
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Rule.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Rule.java
index 4942b3ab..a5f29c22 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Rule.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Rule.java
@@ -27,6 +27,7 @@ import org.eclipse.m2m.atl.emftvm.util.VMException;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.Rule#getModule <em>Module</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Rule#getMode <em>Mode</em>}</li>
@@ -46,7 +47,6 @@ import org.eclipse.m2m.atl.emftvm.util.VMException;
* <li>{@link org.eclipse.m2m.atl.emftvm.Rule#isLeaf <em>Leaf</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.Rule#isWithLeaves <em>With Leaves</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getRule()
* @model
@@ -549,7 +549,7 @@ public interface Rule extends NamedElement {
/**
* <!-- begin-user-doc -->
- * Matches this rule only (without suoer-rules) for <code>valuesMap</code>.
+ * Matches this rule only (without super-rules) for <code>valuesMap</code>.
* Call {@link #compileState()} before calling this method.
* @param frame the stack frame in which to execute the matcher
* @param valuesMap the values to match against
@@ -626,25 +626,23 @@ public interface Rule extends NamedElement {
/**
* <!-- begin-user-doc -->
- * Applies {@link #getRule()} to <code>trace</code>
+ * Applies this rule to <code>trace</code>
* @param frame the stack frame in which to execute the applier and post-apply
- * @param trace the source and target values to which to apply the rule
+ * @param valuesMap the source and target values to which to apply the rule
* @return the rule application result
* <!-- end-user-doc -->
* @model frameDataType="org.eclipse.m2m.atl.emftvm.StackFrame"
* @generated
*/
- Object applyOne(StackFrame frame, TraceLink trace);
+ Object applyOne(StackFrame frame, Map<String, Object> valuesMap);
/**
- * <!-- begin-user-doc -->
- * Applies this rule for the given <code>trace</code>. Call {@link #compileState()} before calling this method.
- *
- * @param frame
- * the stack frame context
- * @param trace
- * the trace link to apply the rule for
- * @return the application result
+ * <!-- begin-user-doc -->
+ * Applies this rule for the given <code>trace</code>.
+ * Call {@link #compileState()} before calling this method.
+ * @param frame the stack frame context
+ * @param trace the trace link to apply the rule for
+ * @return the application result
* <!-- end-user-doc -->
* @model frameDataType="org.eclipse.m2m.atl.emftvm.StackFrame"
* @generated
@@ -652,15 +650,15 @@ public interface Rule extends NamedElement {
Object applyFor(StackFrame frame, TraceLink trace);
/**
- * <!-- begin-user-doc -->
+ * <!-- begin-user-doc -->
* Post-applies this rule for the given <code>trace</code>. Call {@link #compileState()} before calling this
* method.
- *
+ *
* @param frame
* the stack frame context
* @param trace
* the trace link to post-apply the rule for
- * @return the post-application result
+ * @return the post-application result
* <!-- end-user-doc -->
* @model frameDataType="org.eclipse.m2m.atl.emftvm.StackFrame"
* @generated
@@ -674,7 +672,7 @@ public interface Rule extends NamedElement {
* Call {@link #compileState()} before calling this method.
* @return the transitive closure of super-rules.
* <!-- end-user-doc -->
- * @model kind="operation" dataType="org.eclipse.m2m.atl.emftvm.LazySet<org.eclipse.m2m.atl.emftvm.Rule>"
+ * @model kind="operation" dataType="org.eclipse.m2m.atl.emftvm.LazySet&lt;org.eclipse.m2m.atl.emftvm.Rule&gt;"
* @generated
*/
LazySet<Rule> getAllESuperRules();
@@ -734,7 +732,7 @@ public interface Rule extends NamedElement {
/**
* <!-- begin-user-doc -->
* Finds the {@link InputRuleElement} with the given name within the rule inheritance hierarchy depth-first.
- *
+ *
* @param name
* the input element name
* @return the {@link InputRuleElement} with the given name or <code>null</code>
@@ -744,4 +742,22 @@ public interface Rule extends NamedElement {
*/
InputRuleElement findInputElement(String name);
+ /**
+ * <!-- begin-user-doc -->
+ *
+ * Returns the unique rule application trace for <code>values</code>, if
+ * applicable.
+ *
+ * @param frame
+ * the stack frame context
+ * @param values
+ * the source values for the trace
+ * @return the unique rule application trace, or <code>null</code>
+ *
+ * <!-- end-user-doc -->
+ * @model frameDataType="org.eclipse.m2m.atl.emftvm.StackFrame" valuesDataType="org.eclipse.m2m.atl.emftvm.EJavaObjectArray"
+ * @generated
+ */
+ TraceLink getUniqueTrace(StackFrame frame, Object[] values);
+
} // Rule
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleElement.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleElement.java
index 4a91808c..cd9cb7af 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleElement.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleElement.java
@@ -21,11 +21,11 @@ import org.eclipse.emf.common.util.EList;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.RuleElement#getModels <em>Models</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.RuleElement#getEModels <em>EModels</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getRuleElement()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleMode.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleMode.java
index 85e138e2..d71b81ac 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleMode.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/RuleMode.java
@@ -130,6 +130,8 @@ public enum RuleMode implements Enumerator {
* @param literal the literal string value
* @return the '<em><b>Rule Mode</b></em>' literal with the specified literal value.
* <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static RuleMode get(String literal) {
@@ -148,6 +150,8 @@ public enum RuleMode implements Enumerator {
* @param name the literal name
* @return the '<em><b>Rule Mode</b></em>' literal with the specified name.
* <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static RuleMode getByName(String name) {
@@ -166,6 +170,8 @@ public enum RuleMode implements Enumerator {
* @param value the literal integer value
* @return the '<em><b>Rule Mode</b></em>' literal with the specified integer value.
* <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static RuleMode get(int value) {
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/TypedElement.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/TypedElement.java
index 477813f7..4e3ef171 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/TypedElement.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/TypedElement.java
@@ -21,12 +21,12 @@ import org.eclipse.emf.ecore.EClassifier;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.TypedElement#getEType <em>EType</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.TypedElement#getType <em>Type</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.TypedElement#getTypeModel <em>Type Model</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getTypedElement()
* @model abstract="true"
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AddImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AddImpl.java
index 0283cb6f..86f508b0 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AddImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AddImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Add</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstImpl.java
index 65d44ab9..9b7089fe 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Allinst</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstInImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstInImpl.java
index d87a8060..e525a4e0 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstInImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AllinstInImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Allinst in</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AndImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AndImpl.java
index f9b5875e..7acb7430 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AndImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/AndImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>And</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/BranchInstructionImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/BranchInstructionImpl.java
index 5108cfd1..aa17c623 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/BranchInstructionImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/BranchInstructionImpl.java
@@ -28,11 +28,11 @@ import org.eclipse.m2m.atl.emftvm.Instruction;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.BranchInstructionImpl#getOffset <em>Offset</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.BranchInstructionImpl#getTarget <em>Target</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java
index 6c0e41d8..c6e2cb89 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java
@@ -109,6 +109,7 @@ import org.eclipse.m2m.atl.emftvm.util.VMMonitor;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.CodeBlockImpl#getMaxLocals <em>Max Locals</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.CodeBlockImpl#getMaxStack <em>Max Stack</em>}</li>
@@ -125,7 +126,6 @@ import org.eclipse.m2m.atl.emftvm.util.VMMonitor;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.CodeBlockImpl#getParentFrame <em>Parent Frame</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.CodeBlockImpl#getBindingFor <em>Binding For</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockInstructionImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockInstructionImpl.java
index 8a2f1700..7d0d6da4 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockInstructionImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockInstructionImpl.java
@@ -27,11 +27,11 @@ import org.eclipse.m2m.atl.emftvm.EmftvmPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.CodeBlockInstructionImpl#getCbIndex <em>Cb Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.CodeBlockInstructionImpl#getCodeBlock <em>Code Block</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DeleteImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DeleteImpl.java
index 29857d79..4f563452 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DeleteImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DeleteImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Delete</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupImpl.java
index 9abbc2d2..deb74ce6 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Dup</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupX1Impl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupX1Impl.java
index f837d27a..5966763c 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupX1Impl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/DupX1Impl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Dup x1</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java
index fb63727a..6982ac6d 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java
@@ -3772,7 +3772,12 @@ public class EmftvmPackageImpl extends EPackageImpl implements EmftvmPackage {
op = addEOperation(ruleEClass, theEcorePackage.getEJavaObject(), "applyOne", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getStackFrame(), "frame", 0, 1, IS_UNIQUE, IS_ORDERED);
- addEParameter(op, theTracePackage.getTraceLink(), "trace", 0, 1, IS_UNIQUE, IS_ORDERED);
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(theEcorePackage.getEString());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "valuesMap", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(ruleEClass, theEcorePackage.getEJavaObject(), "applyFor", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getStackFrame(), "frame", 0, 1, IS_UNIQUE, IS_ORDERED);
@@ -3804,6 +3809,10 @@ public class EmftvmPackageImpl extends EPackageImpl implements EmftvmPackage {
op = addEOperation(ruleEClass, this.getInputRuleElement(), "findInputElement", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theEcorePackage.getEString(), "name", 0, 1, IS_UNIQUE, IS_ORDERED);
+ op = addEOperation(ruleEClass, theTracePackage.getTraceLink(), "getUniqueTrace", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getStackFrame(), "frame", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getEJavaObjectArray(), "values", 0, 1, IS_UNIQUE, IS_ORDERED);
+
initEClass(ruleElementEClass, RuleElement.class, "RuleElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getRuleElement_Models(), theEcorePackage.getEString(), "models", null, 0, -1, RuleElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getRuleElement_EModels(), this.getModel(), null, "eModels", null, 0, -1, RuleElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EnditerateImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EnditerateImpl.java
index 7d6835b3..8849ce2b 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EnditerateImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EnditerateImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Enditerate</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java
index d0cb408a..745f1be7 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java
@@ -94,6 +94,7 @@ import org.eclipse.m2m.atl.emftvm.util.VMMonitor;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl#getMetaModels <em>Meta Models</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl#getInputModels <em>Input Models</em>}</li>
@@ -106,7 +107,6 @@ import org.eclipse.m2m.atl.emftvm.util.VMMonitor;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl#isJitDisabled <em>Jit Disabled</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl#getCurrentPhase <em>Current Phase</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FeatureImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FeatureImpl.java
index 0bff4f18..7e6d3574 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FeatureImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FeatureImpl.java
@@ -31,6 +31,7 @@ import org.eclipse.m2m.atl.emftvm.util.EMFTVMUtil;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FeatureImpl#isStatic <em>Static</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FeatureImpl#getEContext <em>EContext</em>}</li>
@@ -38,7 +39,6 @@ import org.eclipse.m2m.atl.emftvm.util.EMFTVMUtil;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FeatureImpl#getContext <em>Context</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FeatureImpl#getContextModel <em>Context Model</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldImpl.java
index 5fefa045..6f7e33e4 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldImpl.java
@@ -38,12 +38,12 @@ import org.eclipse.m2m.atl.emftvm.util.VMException;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FieldImpl#getStaticValue <em>Static Value</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FieldImpl#getInitialiser <em>Initialiser</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FieldImpl#getRule <em>Rule</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldInstructionImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldInstructionImpl.java
index 974830b4..de3c7ce0 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldInstructionImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FieldInstructionImpl.java
@@ -25,10 +25,10 @@ import org.eclipse.m2m.atl.emftvm.FieldInstruction;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FieldInstructionImpl#getFieldname <em>Fieldname</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeImpl.java
index c1402ffa..6086fdc2 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeImpl.java
@@ -26,11 +26,11 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FindtypeImpl#getModelname <em>Modelname</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.FindtypeImpl#getTypename <em>Typename</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeSImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeSImpl.java
index 2741c05c..26824689 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeSImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/FindtypeSImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Findtype s</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetImpl.java
index 398fb901..27f08b2b 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Get</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetStaticImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetStaticImpl.java
index 9e1629a2..a47a52e4 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetStaticImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetStaticImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Get static</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetSuperImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetSuperImpl.java
index 9ec27308..a4ac6222 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetSuperImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetSuperImpl.java
@@ -13,8 +13,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Get Super</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetTransImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetTransImpl.java
index 41e2654f..8f3f222c 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetTransImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetTransImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Get trans</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetcbImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetcbImpl.java
index ec5f5954..9503dccc 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetcbImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetcbImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Getcb</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvImpl.java
index 3ad752c8..f64c75fd 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvImpl.java
@@ -21,8 +21,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Getenv</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvtypeImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvtypeImpl.java
index 86e0964e..0830eed3 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvtypeImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GetenvtypeImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Getenvtype</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GotoImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GotoImpl.java
index 1e3ddb92..c36adb12 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GotoImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/GotoImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Goto</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfImpl.java
index 3359dcfb..76687fd4 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>If</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfnImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfnImpl.java
index a16b170a..57679f7e 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfnImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfnImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Ifn</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfteImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfteImpl.java
index 2428bd9b..bf28e4e6 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfteImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IfteImpl.java
@@ -28,13 +28,13 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.IfteImpl#getThenCbIndex <em>Then Cb Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.IfteImpl#getElseCbIndex <em>Else Cb Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.IfteImpl#getThenCb <em>Then Cb</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.IfteImpl#getElseCb <em>Else Cb</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ImpliesImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ImpliesImpl.java
index 2e028c28..8c57e2d9 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ImpliesImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ImpliesImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Implies</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InputRuleElementImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InputRuleElementImpl.java
index b7527090..0104a81a 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InputRuleElementImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InputRuleElementImpl.java
@@ -35,12 +35,12 @@ import org.eclipse.m2m.atl.emftvm.util.LazyList;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InputRuleElementImpl#getBinding <em>Binding</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InputRuleElementImpl#getInputFor <em>Input For</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InputRuleElementImpl#isMapsToSelf <em>Maps To Self</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InsertImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InsertImpl.java
index 1d3d674d..07ed5011 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InsertImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InsertImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Insert</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java
index b5ac0bc6..ae7d0bd9 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java
@@ -34,6 +34,7 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InstructionImpl#getOwningBlock <em>Owning Block</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InstructionImpl#getOpcode <em>Opcode</em>}</li>
@@ -42,7 +43,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InstructionImpl#getStackLevel <em>Stack Level</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InstructionImpl#getLineNumber <em>Line Number</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeAllCbsImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeAllCbsImpl.java
index 7be443f1..7ed598c8 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeAllCbsImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeAllCbsImpl.java
@@ -23,8 +23,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Invoke all cbs</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbImpl.java
index f46c17a6..9ba7201e 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbImpl.java
@@ -28,10 +28,10 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InvokeCbImpl#getArgcount <em>Argcount</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbSImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbSImpl.java
index d75cc3e3..32398647 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbSImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeCbSImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Invoke cb s</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeImpl.java
index 9798be68..5e6e8835 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Invoke</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeInstructionImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeInstructionImpl.java
index 28087e7e..212af60f 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeInstructionImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeInstructionImpl.java
@@ -25,10 +25,10 @@ import org.eclipse.m2m.atl.emftvm.InvokeInstruction;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InvokeInstructionImpl#getArgcount <em>Argcount</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeOperationInstructionImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeOperationInstructionImpl.java
index 57e831fd..2c2f6471 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeOperationInstructionImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeOperationInstructionImpl.java
@@ -27,10 +27,10 @@ import org.eclipse.m2m.atl.emftvm.InvokeOperationInstruction;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.InvokeOperationInstructionImpl#getOpname <em>Opname</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeStaticImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeStaticImpl.java
index db8abb14..82a9dd4a 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeStaticImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeStaticImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Invoke static</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeSuperImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeSuperImpl.java
index 3cdc1be8..a94b6fee 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeSuperImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InvokeSuperImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Invoke super</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IsnullImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IsnullImpl.java
index b2690ed7..e2e992fa 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IsnullImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IsnullImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Isnull</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IterateImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IterateImpl.java
index cc3d0477..4a4f959f 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IterateImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/IterateImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Iterate</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LineNumberImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LineNumberImpl.java
index 7f21ac75..bf90dd27 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LineNumberImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LineNumberImpl.java
@@ -35,6 +35,7 @@ import org.eclipse.m2m.atl.emftvm.LineNumber;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LineNumberImpl#getStartLine <em>Start Line</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LineNumberImpl#getStartColumn <em>Start Column</em>}</li>
@@ -45,7 +46,6 @@ import org.eclipse.m2m.atl.emftvm.LineNumber;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LineNumberImpl#getOwningBlock <em>Owning Block</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LineNumberImpl#getInstructions <em>Instructions</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LoadImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LoadImpl.java
index 2f851662..6e236fe3 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LoadImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LoadImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Load</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableImpl.java
index d291d239..9080b42c 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableImpl.java
@@ -34,6 +34,7 @@ import org.eclipse.m2m.atl.emftvm.LocalVariable;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LocalVariableImpl#getSlot <em>Slot</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LocalVariableImpl#getOwningBlock <em>Owning Block</em>}</li>
@@ -42,7 +43,6 @@ import org.eclipse.m2m.atl.emftvm.LocalVariable;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LocalVariableImpl#getStartInstructionIndex <em>Start Instruction Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LocalVariableImpl#getEndInstructionIndex <em>End Instruction Index</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableInstructionImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableInstructionImpl.java
index 79c5698b..8d0776e2 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableInstructionImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/LocalVariableInstructionImpl.java
@@ -28,13 +28,13 @@ import org.eclipse.m2m.atl.emftvm.LocalVariableInstruction;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LocalVariableInstructionImpl#getCbOffset <em>Cb Offset</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LocalVariableInstructionImpl#getSlot <em>Slot</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LocalVariableInstructionImpl#getLocalVariableIndex <em>Local Variable Index</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.LocalVariableInstructionImpl#getLocalVariable <em>Local Variable</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchImpl.java
index 0562aad7..6d63483e 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchImpl.java
@@ -26,10 +26,10 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.MatchImpl#getRulename <em>Rulename</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchSImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchSImpl.java
index d7385369..8d165794 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchSImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MatchSImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Match s</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MetamodelImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MetamodelImpl.java
index 680e44c9..a01d5827 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MetamodelImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/MetamodelImpl.java
@@ -36,8 +36,6 @@ import org.eclipse.m2m.atl.emftvm.util.EMFTVMUtil;
* An implementation of the model object '<em><b>Metamodel</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelDeclarationImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelDeclarationImpl.java
index ff0b80ba..dee08ad5 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelDeclarationImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelDeclarationImpl.java
@@ -30,6 +30,7 @@ import org.eclipse.m2m.atl.emftvm.Module;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModelDeclarationImpl#getModelName <em>Model Name</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModelDeclarationImpl#getMetaModelName <em>Meta Model Name</em>}</li>
@@ -37,7 +38,6 @@ import org.eclipse.m2m.atl.emftvm.Module;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModelDeclarationImpl#getInoutModelFor <em>Inout Model For</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModelDeclarationImpl#getOutputModelFor <em>Output Model For</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelImpl.java
index a20ee741..00bfac49 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModelImpl.java
@@ -38,11 +38,11 @@ import org.eclipse.m2m.atl.emftvm.util.ResourceIterable;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModelImpl#getResource <em>Resource</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModelImpl#isAllowInterModelReferences <em>Allow Inter Model References</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModuleImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModuleImpl.java
index 78066781..a6b00b59 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModuleImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ModuleImpl.java
@@ -38,6 +38,7 @@ import org.eclipse.m2m.atl.emftvm.Rule;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModuleImpl#getSourceName <em>Source Name</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModuleImpl#getFeatures <em>Features</em>}</li>
@@ -48,7 +49,6 @@ import org.eclipse.m2m.atl.emftvm.Rule;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModuleImpl#getInoutModels <em>Inout Models</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ModuleImpl#getOutputModels <em>Output Models</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NamedElementImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NamedElementImpl.java
index a9b2c5f6..2fb02081 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NamedElementImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NamedElementImpl.java
@@ -26,10 +26,10 @@ import org.eclipse.m2m.atl.emftvm.NamedElement;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.NamedElementImpl#getName <em>Name</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewImpl.java
index a0866faa..5a306018 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewImpl.java
@@ -26,10 +26,10 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.NewImpl#getModelname <em>Modelname</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewSImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewSImpl.java
index 39cf40c8..217d7174 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewSImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NewSImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>New s</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NotImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NotImpl.java
index 72b266c6..47a092ae 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NotImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/NotImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Opcode;
* An implementation of the model object '<em><b>Not</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OperationImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OperationImpl.java
index aa070ae9..15d4e315 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OperationImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OperationImpl.java
@@ -35,12 +35,12 @@ import org.eclipse.m2m.atl.emftvm.util.EMFTVMUtil;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.OperationImpl#getParameters <em>Parameters</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.OperationImpl#isQuery <em>Query</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.OperationImpl#getBody <em>Body</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OrImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OrImpl.java
index 4bd968b0..ec5ba5cb 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OrImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OrImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Or;
* An implementation of the model object '<em><b>Or</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OutputRuleElementImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OutputRuleElementImpl.java
index c65db145..706db739 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OutputRuleElementImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/OutputRuleElementImpl.java
@@ -34,11 +34,11 @@ import org.eclipse.m2m.atl.emftvm.Rule;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.OutputRuleElementImpl#getMapsTo <em>Maps To</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.OutputRuleElementImpl#getOutputFor <em>Output For</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ParameterImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ParameterImpl.java
index 930d88bd..02e64c40 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ParameterImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ParameterImpl.java
@@ -29,10 +29,10 @@ import org.eclipse.m2m.atl.emftvm.Parameter;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.ParameterImpl#getOperation <em>Operation</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PopImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PopImpl.java
index 858945c3..f05d3e85 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PopImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PopImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Pop;
* An implementation of the model object '<em><b>Pop</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushImpl.java
index 162df6e1..fc2d1ad2 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushImpl.java
@@ -27,6 +27,7 @@ import org.eclipse.m2m.atl.emftvm.util.EnumLiteral;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.PushImpl#getValue <em>Value</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.PushImpl#getStringValue <em>String Value</em>}</li>
@@ -39,7 +40,6 @@ import org.eclipse.m2m.atl.emftvm.util.EnumLiteral;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.PushImpl#getLongValue <em>Long Value</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.PushImpl#getEnumValue <em>Enum Value</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushfImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushfImpl.java
index 4b2838b2..18ae92a6 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushfImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushfImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Pushf;
* An implementation of the model object '<em><b>Pushf</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushtImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushtImpl.java
index ee6d6d44..cf930161 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushtImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/PushtImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Pusht;
* An implementation of the model object '<em><b>Pusht</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RemoveImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RemoveImpl.java
index 3995299e..85c1f8cf 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RemoveImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RemoveImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Remove;
* An implementation of the model object '<em><b>Remove</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ReturnImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ReturnImpl.java
index 1de7673a..203220ab 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ReturnImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ReturnImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Return;
* An implementation of the model object '<em><b>Return</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleElementImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleElementImpl.java
index 02afc685..f1ee792d 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleElementImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleElementImpl.java
@@ -29,11 +29,11 @@ import org.eclipse.m2m.atl.emftvm.RuleElement;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.RuleElementImpl#getModels <em>Models</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.RuleElementImpl#getEModels <em>EModels</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleImpl.java
index 6f921d74..c69636ad 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/RuleImpl.java
@@ -1,5 +1,6 @@
/*******************************************************************************
* Copyright (c) 2011 Vrije Universiteit Brussel.
+ * Copyright (c) 2017-2018 Dennis Wagelaar.
* 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
@@ -68,6 +69,7 @@ import org.eclipse.m2m.atl.emftvm.util.VMException;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.RuleImpl#getModule <em>Module</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.RuleImpl#getMode <em>Mode</em>}</li>
@@ -87,7 +89,6 @@ import org.eclipse.m2m.atl.emftvm.util.VMException;
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.RuleImpl#isLeaf <em>Leaf</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.RuleImpl#isWithLeaves <em>With Leaves</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -135,16 +136,60 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @param values the source values to match against
* @return <code>true</code> iff this rule matches against <code>values</code>
*/
- public abstract boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
+ public abstract boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
final Object[] values);
/**
- * Matches
- * @param frame
- * @param values
- * @return
+ * Returns the unique rule application trace for <code>values</code>, if applicable.
+ * @param frame the stack frame context
+ * @param values the source values for the trace
+ * @return the unique rule application trace, or <code>null</code>
*/
- public abstract Object matchManual(final StackFrame frame, final Object[] values);
+ public TraceLink getUniqueTrace(final StackFrame frame, final Object[] values) {
+ for (final Rule subRule : getESubRules()) {
+ final TraceLink subTraceLink = subRule.getUniqueTrace(frame, values);
+ if (subTraceLink != null) {
+ return subTraceLink;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Applies {@link #getRule()} to <code>trace</code>
+ *
+ * @param frame
+ * the stack frame in which to execute the applier and post-apply
+ * @param trace
+ * the trace link with values to which to apply the rule
+ * @return the rule application result
+ */
+ public Object applyOne(final StackFrame frame, final TraceLink trace) {
+ Object result = null;
+ for (final Rule rule : getAllESuperRules()) {
+ if (rule.getApplier() != null) {
+ result = rule.applyFor(frame, trace);
+ } else {
+ rule.applyFor(frame, trace);
+ }
+ if (rule.getPostApply() != null) {
+ result = rule.postApplyFor(frame, trace);
+ } else {
+ rule.postApplyFor(frame, trace);
+ }
+ }
+ if (getApplier() != null) {
+ result = applierCbState.applyFor(frame, trace);
+ } else {
+ applierCbState.applyFor(frame, trace);
+ }
+ if (getPostApply() != null) {
+ result = applierCbState.postApplyFor(frame, trace);
+ } else {
+ applierCbState.postApplyFor(frame, trace);
+ }
+ return result;
+ }
}
/**
@@ -176,54 +221,6 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* {@inheritDoc}
*/
@Override
- public Object matchManual(final StackFrame frame, final Object[] values) {
- assert !isUnique();
- final Map<String, Object> valuesMap = createValuesMap(values);
- if (matchOne(frame, valuesMap)) {
- final Set<Rule> matchedRules = matchManualSubRules(RuleImpl.this, frame, valuesMap);
- final int size = matchedRules.size();
- switch (size) {
- case 0:
- //TODO should not work for abstract rules
- return applyOne(frame, createTrace(frame, valuesMap));
- case 1:
- return matchedRules.iterator().next().applyOne(frame, createTrace(frame, valuesMap));
- default:
- throw new VMException(frame, String.format("More than one matching sub-rule found for %s: %s",
- RuleImpl.this, matchedRules));
- }
- } else {
- return null;
- }
- }
-
- /**
- * TODO
- * @param rule
- * @param frame
- * @param valuesMap
- * @return
- */
- private Set<Rule> matchManualSubRules(final Rule rule, final StackFrame frame, final Map<String, Object> valuesMap) {
- final Set<Rule> matchedRules = new HashSet<Rule>();
- for (Rule subRule : rule.getESubRules()) {
- if (subRule.matchOneOnly(frame, valuesMap)) {
- Set<Rule> matchedSubRules = matchManualSubRules(subRule, frame, valuesMap);
- if (!matchedSubRules.isEmpty()) {
- matchedRules.addAll(matchedSubRules);
- } else {
- //TODO not for abstract rules
- matchedRules.add(subRule);
- }
- }
- }
- return matchedRules;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
public boolean matchFor(final StackFrame frame, final Object[] values) {
assert !isUnique();
return matcherCbState.matchFor(frame, values);
@@ -233,7 +230,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* {@inheritDoc}
*/
@Override
- public boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
+ public boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
final Object[] values) {
assert !isUnique();
return matcherCbState.matchFor(frame, valuesMap, values);
@@ -259,7 +256,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
} else {
final SourceElementList sel = TraceFactory.eINSTANCE.createSourceElementList();
final EList<SourceElement> ses = sel.getSourceElements();
- for (InputRuleElement re : inputElements) {
+ for (final InputRuleElement re : inputElements) {
ses.add(trace.getSourceElement(re.getName(), false));
}
sel.setUniqueFor(tr);
@@ -290,31 +287,6 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* {@inheritDoc}
*/
@Override
- public Object matchManual(final StackFrame frame, final Object[] values) {
- assert isUnique();
- final Map<TraceLink, Object> uniqueResults = frame.getEnv().getUniqueResults();
- // Reuse existing application result for unique rules
- TraceLink trace = getUniqueTrace(frame, values);
- if (trace != null) {
- return uniqueResults.get(trace);
- }
- // Otherwise match as normal
- final Map<String, Object> valuesMap = createValuesMap(values);
- if (matchOne(frame, valuesMap)) {
- trace = createTrace(frame, valuesMap);
- final Object resultValue = applyTo(frame, trace);
- // Store unique result for later retrieval
- uniqueResults.put(trace, resultValue);
- return resultValue;
- } else {
- return null;
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
public boolean matchFor(final StackFrame frame, final Object[] values) {
assert isUnique();
// Don't match if values have previously matched
@@ -338,7 +310,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* {@inheritDoc}
*/
@Override
- public boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
+ public boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
final Object[] values) {
assert isUnique();
// Don't match if values have previously matched
@@ -359,12 +331,10 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
/**
- * Returns the unique rule application trace for <code>values</code>, if applicable.
- * @param frame the stack frame context
- * @param values the source values for the trace
- * @return the unique rule application trace, or <code>null</code>
+ * {@inheritDoc}
*/
- private TraceLink getUniqueTrace(final StackFrame frame, final Object[] values) {
+ @Override
+ public TraceLink getUniqueTrace(final StackFrame frame, final Object[] values) {
final TracedRule tr = frame.getEnv().getTraces().getLinksByRule(getName(), false);
if (tr != null) {
if (values.length == 1) {
@@ -379,7 +349,18 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
}
}
- return null;
+ return super.getUniqueTrace(frame, values);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object applyOne(final StackFrame frame, final TraceLink trace) {
+ final Object resultValue = super.applyOne(frame, trace);
+ // Store unique result for later retrieval
+ frame.getEnv().getUniqueResults().put(trace, resultValue);
+ return resultValue;
}
}
@@ -413,7 +394,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected class DefaultOffState extends DefaultState {
-
+
/**
* {@inheritDoc}
*/
@@ -430,13 +411,13 @@ public class RuleImpl extends NamedElementImpl implements Rule {
return false;
}
}
-
+
/**
* {@link DefaultState} class for rules with {@link Rule#isDefault()} set to <code>true</code>.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected class DefaultOnState extends DefaultState {
-
+
/**
* {@inheritDoc}
*/
@@ -469,7 +450,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected abstract class SuperRulesState {
-
+
/**
* Matches {@link #getRule()}.
* @param frame the stack frame in which to execute the matcher
@@ -495,7 +476,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected class WithoutSuperRulesState extends SuperRulesState {
-
+
/**
* {@inheritDoc}
*/
@@ -523,7 +504,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
// Create value iterables and initial value array
final EList<InputRuleElement> allInputs = getInputElements();
final List<Iterable<EObject>> iterables = new ArrayList<Iterable<EObject>>(allInputs.size());
- for (InputRuleElement re : allInputs) {
+ for (final InputRuleElement re : allInputs) {
if (re.getBinding() != null) {
// Skip bound elements until all non-bound values have been set
iterables.add(null);
@@ -535,33 +516,34 @@ public class RuleImpl extends NamedElementImpl implements Rule {
iterableMap = null;
}
}
-
+
/**
* {@link SuperRulesState} class for rules with {@link Rule#getESuperRules()}.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected class WithSuperRulesState extends SuperRulesState {
-
+
/**
* {@inheritDoc}
*/
+ @Override
public boolean match(final StackFrame frame) {
final EList<Rule> superRules = getESuperRules();
assert !superRules.isEmpty();
// Retrieve super-rule matches
final List<TracedRule> superMatches = new ArrayList<TracedRule>(superRules.size());
final TraceLinkSet matches = frame.getEnv().getMatches();
- for (Rule superRule : superRules) {
- TracedRule superMatch = matches.getLinksByRule(superRule.getName(), false);
+ for (final Rule superRule : superRules) {
+ final TracedRule superMatch = matches.getLinksByRule(superRule.getName(), false);
assert superMatch != null;
superMatches.add(superMatch);
}
// Do the matching
- return matchFor(frame,
- new LinkedHashMap<String, Object>(getInputElements().size()),
- 0,
- superMatches,
- iterableMap,
+ return matchFor(frame,
+ new LinkedHashMap<String, Object>(getInputElements().size()),
+ 0,
+ superMatches,
+ iterableMap,
new LinkedHashMap<TracedRule, TraceLink>(superRules.size()));
}
@@ -575,17 +557,17 @@ public class RuleImpl extends NamedElementImpl implements Rule {
// Retrieve super-rule matches
final List<TracedRule> superMatches = new ArrayList<TracedRule>(superRules.size());
final TraceLinkSet matches = frame.getEnv().getMatches();
- for (Rule superRule : superRules) {
- TracedRule superMatch = matches.getLinksByRule(superRule.getName(), false);
+ for (final Rule superRule : superRules) {
+ final TracedRule superMatch = matches.getLinksByRule(superRule.getName(), false);
assert superMatch != null;
superMatches.add(superMatch);
}
// Do the matching
- return matchOneFor(frame,
- new LinkedHashMap<String, Object>(getInputElements().size()),
- 0,
- superMatches,
- iterableMap,
+ return matchOneFor(frame,
+ new LinkedHashMap<String, Object>(getInputElements().size()),
+ 0,
+ superMatches,
+ iterableMap,
new HashMap<TracedRule, TraceLink>(superRules.size()));
}
@@ -596,15 +578,15 @@ public class RuleImpl extends NamedElementImpl implements Rule {
public void compileIterables(final ExecEnv env) {
// Collect input element names for all super-rules
final java.util.Set<String> superRuleElementNames = new HashSet<String>();
- for (Rule rule : getAllESuperRules()) {
- for (RuleElement re : rule.getInputElements()) {
+ for (final Rule rule : getAllESuperRules()) {
+ for (final RuleElement re : rule.getInputElements()) {
superRuleElementNames.add(re.getName());
}
}
// Create iterables for all new input elements
final Map<String, Iterable<EObject>> iterables = new LinkedHashMap<String, Iterable<EObject>>();
- for (InputRuleElement re : getInputElements()) {
- String name = re.getName();
+ for (final InputRuleElement re : getInputElements()) {
+ final String name = re.getName();
if (!superRuleElementNames.contains(name) && re.getBinding() == null) {
// Skip bound elements until all non-bound values have been set
iterables.put(name, re.createIterable(env));
@@ -620,7 +602,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected abstract class RuleModeState {
-
+
/**
* Matches {@link #getRule()} for the automatic single stage, if applicable.
* @param frame the stack frame in which to execute the matcher
@@ -651,7 +633,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
throw new VMException(frame, String.format(
"Rule %s is not a manual rule", this));
}
-
+
/**
* Matches this rule against <code>values</code>,
* and records a match in {@link ExecEnv#getMatches()} in case of a match.
@@ -673,7 +655,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @param values the source values to match against
* @return <code>true</code> iff this rule matches against <code>values</code>
*/
- public abstract boolean matchFor(StackFrame frame, Map<String, Object> valuesMap,
+ public abstract boolean matchFor(StackFrame frame, Map<String, Object> valuesMap,
Object[] values);
}
@@ -682,14 +664,63 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected class ManualState extends RuleModeState {
-
+
/**
* {@inheritDoc}
*/
@Override
public Object matchManual(final StackFrame frame, final Object[] values) {
assert getMode() == RuleMode.MANUAL;
- return uniqueState.matchManual(frame, values);
+ // Reuse existing application result for unique rules
+ final TraceLink trace = getUniqueTrace(frame, values);
+ if (trace != null) {
+ return frame.getEnv().getUniqueResults().get(trace);
+ }
+ // Otherwise match as normal
+ final Map<String, Object> valuesMap = createValuesMap(values);
+ if (matchOne(frame, valuesMap)) {
+ final Set<Rule> matchedRules = matchManualSubRules(RuleImpl.this, frame, valuesMap);
+ switch (matchedRules.size()) {
+ case 0:
+ return isAbstract() ? null : applyOne(frame, valuesMap);
+ case 1:
+ final Rule subRule = matchedRules.iterator().next();
+ assert !subRule.isAbstract();
+ return subRule.applyOne(frame, valuesMap);
+ default:
+ throw new VMException(frame, String.format("More than one matching sub-rule found for %s: %s",
+ RuleImpl.this, matchedRules));
+ }
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Matches the sub-rules of the given rule manually.
+ *
+ * @param rule
+ * the rule for which to match the sub-rules
+ * @param frame
+ * the stack frame context
+ * @param valuesMap
+ * the map of all values, including super-rule elements
+ * @return the matching (non-abstract) sub-rules
+ */
+ protected Set<Rule> matchManualSubRules(final Rule rule, final StackFrame frame,
+ final Map<String, Object> valuesMap) {
+ final Set<Rule> matchedRules = new HashSet<Rule>();
+ for (final Rule subRule : rule.getESubRules()) {
+ if (subRule.matchOneOnly(frame, valuesMap)) {
+ final Set<Rule> matchedSubRules = matchManualSubRules(subRule, frame, valuesMap);
+ if (!matchedSubRules.isEmpty()) {
+ matchedRules.addAll(matchedSubRules);
+ } else if (!subRule.isAbstract()) {
+ matchedRules.add(subRule);
+ }
+ }
+ }
+ return matchedRules;
}
/**
@@ -698,7 +729,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
@Override
public boolean matchFor(final StackFrame frame, final Object[] values) {
assert getMode() == RuleMode.MANUAL;
- throw new VMException(frame,
+ throw new VMException(frame,
"matchFor(StackFrame, EObject[]) should not be used for manual rules");
}
@@ -709,7 +740,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
public boolean matchFor(final StackFrame frame,
final Map<String, Object> valuesMap, final Object[] values) {
assert getMode() == RuleMode.MANUAL;
- throw new VMException(frame,
+ throw new VMException(frame,
"matchFor(StackFrame, Map<String, EObject>, EObject[]) should not be used for manual rules");
}
}
@@ -719,7 +750,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected class AutomaticSingleState extends RuleModeState {
-
+
/**
* {@inheritDoc}
*/
@@ -742,7 +773,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* {@inheritDoc}
*/
@Override
- public boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
+ public boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
final Object[] values) {
assert getMode() == RuleMode.AUTOMATIC_SINGLE;
return matcherCbState.matchFor(frame, valuesMap, values);
@@ -782,7 +813,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
assert getMode() == RuleMode.AUTOMATIC_RECURSIVE;
return uniqueState.matchFor(frame, valuesMap, values);
}
-
+
}
/**
@@ -847,7 +878,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
final TraceLinkSet matches = env.getMatches();
matches.getRules().clear();
matches.getDefaultSourceElements().clear();
- for (Rule rule : getAllESuperRules()) {
+ for (final Rule rule : getAllESuperRules()) {
rule.applyFor(frame, trace);
rule.postApplyFor(frame, trace);
}
@@ -911,7 +942,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
protected abstract class AbstractState {
-
+
/**
* Creates trace elements for the recorded matches for this rule.
* @param frame the stack frame context
@@ -987,16 +1018,16 @@ public class RuleImpl extends NamedElementImpl implements Rule {
final TraceLinkSet traces = env.getTraces();
traces.getRules().add(tr);
// Remove overridden matches
- for (Iterator<TraceLink> links = tr.getLinks().iterator(); links.hasNext();) {
- TraceLink trace = links.next();
+ for (final Iterator<TraceLink> links = tr.getLinks().iterator(); links.hasNext();) {
+ final TraceLink trace = links.next();
if (trace.isOverridden()) {
links.remove(); // This match is overridden by a sub-rule
} else {
createAllUniqueMappings(trace);
- boolean defaultMappingSet = completeTraceFor(frame, trace);
+ final boolean defaultMappingSet = completeTraceFor(frame, trace);
// Mark default/unique source elements if applicable
if (!defaultMappingSet) {
- EList<SourceElement> ses = trace.getSourceElements();
+ final EList<SourceElement> ses = trace.getSourceElements();
defaultState.createDefaultMapping(traces, ses);
}
}
@@ -1013,9 +1044,9 @@ public class RuleImpl extends NamedElementImpl implements Rule {
if (tr == null) {
throw new VMException(frame, String.format("Cannot apply %s; no traces exist", RuleImpl.this));
}
- for (TraceLink trace : tr.getLinks()) {
+ for (final TraceLink trace : tr.getLinks()) {
assert !trace.isOverridden();
- for (Rule rule : getAllESuperRules()) {
+ for (final Rule rule : getAllESuperRules()) {
rule.applyFor(frame, trace);
}
applierCbState.applyFor(frame, trace);
@@ -1032,9 +1063,9 @@ public class RuleImpl extends NamedElementImpl implements Rule {
if (tr == null) {
throw new VMException(frame, String.format("Cannot post-apply %s; no traces exist", RuleImpl.this));
}
- for (TraceLink trace : tr.getLinks()) {
+ for (final TraceLink trace : tr.getLinks()) {
assert !trace.isOverridden();
- for (Rule rule : getAllESuperRules()) {
+ for (final Rule rule : getAllESuperRules()) {
rule.postApplyFor(frame, trace);
}
applierCbState.postApplyFor(frame, trace);
@@ -1060,8 +1091,8 @@ public class RuleImpl extends NamedElementImpl implements Rule {
final TraceLink match = TraceFactory.eINSTANCE.createTraceLink();
final EList<SourceElement> ses = match.getSourceElements();
int i = 0;
- for (InputRuleElement re : getInputElements()) {
- SourceElement se = TraceFactory.eINSTANCE.createSourceElement();
+ for (final InputRuleElement re : getInputElements()) {
+ final SourceElement se = TraceFactory.eINSTANCE.createSourceElement();
se.setName(re.getName());
se.setRuntimeObject(values[i++]);
se.setMapsToSelf(re.isMapsToSelf());
@@ -1079,16 +1110,16 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @param values the source values to match against
* @return <code>true</code> iff this rule matches against <code>values</code>
*/
- public boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
+ public boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
final Object[] values) {
final TraceLink match = TraceFactory.eINSTANCE.createTraceLink();
final EList<SourceElement> ses = match.getSourceElements();
// Add all values for the match, not just the ones specified in the rule signature
- for (Entry<String, Object> v : valuesMap.entrySet()) {
- SourceElement se = TraceFactory.eINSTANCE.createSourceElement();
+ for (final Entry<String, Object> v : valuesMap.entrySet()) {
+ final SourceElement se = TraceFactory.eINSTANCE.createSourceElement();
se.setName(v.getKey());
se.setRuntimeObject(v.getValue());
- InputRuleElement re = findInputElement(v.getKey());
+ final InputRuleElement re = findInputElement(v.getKey());
se.setMapsToSelf(re == null ? false : re.isMapsToSelf());
ses.add(se);
}
@@ -1140,7 +1171,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
/**
- * Base class for code that depends on whether the rule has a
+ * Base class for code that depends on whether the rule has a
* {@link Rule#getApplier()} code block and/or a {@link Rule#getPostApply()} code block.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
*/
@@ -1148,7 +1179,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
/**
* Applies this rule for the given <code>trace</code>.
- *
+ *
* @param frame
* the stack frame context
* @param trace
@@ -1159,7 +1190,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
/**
* Post-applies this rule for the given <code>trace</code>.
- *
+ *
* @param frame
* the stack frame context
* @param trace
@@ -1541,7 +1572,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
*/
protected boolean withLeaves = WITH_LEAVES_EDEFAULT;
/**
- * Field storage and lookup.
+ * Field storage and lookup.
*/
protected FieldContainer fieldContainer = new FieldContainer();
@@ -1690,7 +1721,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated
*/
public void setMode(RuleMode newMode) {
- RuleMode oldMode = mode;
+ final RuleMode oldMode = mode;
mode = newMode == null ? MODE_EDEFAULT : newMode;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__MODE, oldMode, mode));
@@ -1765,10 +1796,10 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated
*/
public NotificationChain basicSetMatcher(CodeBlock newMatcher, NotificationChain msgs) {
- CodeBlock oldMatcher = matcher;
+ final CodeBlock oldMatcher = matcher;
matcher = newMatcher;
if (eNotificationRequired()) {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__MATCHER, oldMatcher, newMatcher);
+ final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__MATCHER, oldMatcher, newMatcher);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
@@ -1811,10 +1842,10 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated
*/
public NotificationChain basicSetApplier(CodeBlock newApplier, NotificationChain msgs) {
- CodeBlock oldApplier = applier;
+ final CodeBlock oldApplier = applier;
applier = newApplier;
if (eNotificationRequired()) {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__APPLIER, oldApplier, newApplier);
+ final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__APPLIER, oldApplier, newApplier);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
@@ -1857,10 +1888,10 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated
*/
public NotificationChain basicSetPostApply(CodeBlock newPostApply, NotificationChain msgs) {
- CodeBlock oldPostApply = postApply;
+ final CodeBlock oldPostApply = postApply;
postApply = newPostApply;
if (eNotificationRequired()) {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__POST_APPLY, oldPostApply, newPostApply);
+ final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__POST_APPLY, oldPostApply, newPostApply);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
@@ -1916,7 +1947,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated
*/
public void setAbstract(boolean newAbstract) {
- boolean oldAbstract = abstract_;
+ final boolean oldAbstract = abstract_;
abstract_ = newAbstract;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__ABSTRACT, oldAbstract, abstract_));
@@ -1952,7 +1983,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated
*/
public void setDefault(boolean newDefault) {
- boolean oldDefault = default_;
+ final boolean oldDefault = default_;
default_ = newDefault;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__DEFAULT, oldDefault, default_));
@@ -1975,7 +2006,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated
*/
public void setDistinctElements(boolean newDistinctElements) {
- boolean oldDistinctElements = distinctElements;
+ final boolean oldDistinctElements = distinctElements;
distinctElements = newDistinctElements;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__DISTINCT_ELEMENTS, oldDistinctElements, distinctElements));
@@ -1998,7 +2029,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated
*/
public void setUnique(boolean newUnique) {
- boolean oldUnique = unique;
+ final boolean oldUnique = unique;
unique = newUnique;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, EmftvmPackage.RULE__UNIQUE, oldUnique, unique));
@@ -2027,7 +2058,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
public boolean isWithLeaves() {
if (!withLeavesSet) {
withLeaves = false;
- for (Rule subRule : getESubRules()) {
+ for (final Rule subRule : getESubRules()) {
if (subRule.isLeaf() || subRule.isWithLeaves()) {
withLeaves = true;
break;
@@ -2122,7 +2153,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated NOT
*/
public boolean matchOne(final StackFrame frame, final Map<String, Object> valuesMap) {
- for (Rule superRule : getESuperRules()) {
+ for (final Rule superRule : getESuperRules()) {
if (!superRule.matchOne(frame, valuesMap)) {
return false;
}
@@ -2144,14 +2175,14 @@ public class RuleImpl extends NamedElementImpl implements Rule {
final EList<InputRuleElement> inputs = getInputElements();
for (int index = 0; index < inputs.size(); index++) {
- InputRuleElement re = inputs.get(index);
- Object value = valuesMap.get(re.getName());
+ final InputRuleElement re = inputs.get(index);
+ final Object value = valuesMap.get(re.getName());
if (value == null) {
throw new VMException(frame, String.format(
- "Cannot match rule input element %s against null value for %s",
+ "Cannot match rule input element %s against null value for %s",
re, this));
}
- EClassifier eType = re.getEType();
+ final EClassifier eType = re.getEType();
if (eType instanceof EEnum) {
// Fix for Bug # 441027
if (!(value instanceof EnumLiteral)) {
@@ -2160,7 +2191,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
} else if (!eType.isInstance(value)) {
return false;
}
- EList<Model> inmodels = re.getEModels();
+ final EList<Model> inmodels = re.getEModels();
if (!inmodels.isEmpty() && !(value instanceof EObject && inmodels.contains(env.getModelOf((EObject) value)))) {
return false;
}
@@ -2169,7 +2200,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
// Check bound values
- CodeBlock binding = re.getBinding();
+ final CodeBlock binding = re.getBinding();
if (binding != null) {
final Object bvalue = binding.execute(frame.getSubFrame(binding, values));
if (bvalue == null) {
@@ -2210,18 +2241,18 @@ public class RuleImpl extends NamedElementImpl implements Rule {
boolean defaultMappingSet = false;
final ExecEnv env = frame.getEnv();
final int seSize = trace.getSourceElements().size();
- for (OutputRuleElement ore : getOutputElements()) {
- String oreName = ore.getName();
+ for (final OutputRuleElement ore : getOutputElements()) {
+ final String oreName = ore.getName();
// If there is *any* target element with the same name, it overrides us
if (trace.getTargetElement(oreName) != null) {
continue;
}
- TargetElement te = TraceFactory.eINSTANCE.createTargetElement();
+ final TargetElement te = TraceFactory.eINSTANCE.createTargetElement();
te.setName(oreName);
te.setTargetOf(trace);
- EList<SourceElement> teMapsTo = te.getMapsTo();
- for (InputRuleElement source : ore.getMapsTo()) {
- SourceElement mapsTo = trace.getSourceElement(source.getName(), false);
+ final EList<SourceElement> teMapsTo = te.getMapsTo();
+ for (final InputRuleElement source : ore.getMapsTo()) {
+ final SourceElement mapsTo = trace.getSourceElement(source.getName(), false);
assert mapsTo != null;
teMapsTo.add(mapsTo);
}
@@ -2232,17 +2263,17 @@ public class RuleImpl extends NamedElementImpl implements Rule {
EClass type;
try {
type = (EClass)env.findType(ore.getTypeModel(), ore.getType());
- } catch (ClassNotFoundException e) {
+ } catch (final ClassNotFoundException e) {
throw new VMException(frame);
}
- EList<Model> models = ore.getEModels();
+ final EList<Model> models = ore.getEModels();
assert models.size() == 1;
te.setObject(models.get(0).newElement(type));
assert te.getObject() != null;
assert te.getObject().eResource() != null;
assert te.getObject().eResource() == models.get(0).getResource();
}
- for (Rule superRule : getESuperRules()) {
+ for (final Rule superRule : getESuperRules()) {
defaultMappingSet |= superRule.completeTraceFor(frame, trace);
}
return defaultMappingSet;
@@ -2284,31 +2315,8 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* <!-- end-user-doc -->
* @generated NOT
*/
- public Object applyOne(final StackFrame frame, final TraceLink trace) {
- Object result = null;
- for (Rule rule : getAllESuperRules()) {
- if (rule.getApplier() != null) {
- result = rule.applyFor(frame, trace);
- } else {
- rule.applyFor(frame, trace);
- }
- if (rule.getPostApply() != null) {
- result = rule.postApplyFor(frame, trace);
- } else {
- rule.postApplyFor(frame, trace);
- }
- }
- if (getApplier() != null) {
- result = applierCbState.applyFor(frame, trace);
- } else {
- applierCbState.applyFor(frame, trace);
- }
- if (getPostApply() != null) {
- result = applierCbState.postApplyFor(frame, trace);
- } else {
- applierCbState.postApplyFor(frame, trace);
- }
- return result;
+ public Object applyOne(final StackFrame frame, Map<String, Object> valuesMap) {
+ return uniqueState.applyOne(frame, createTrace(frame, valuesMap));
}
/**
@@ -2341,7 +2349,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
if (allESuperRules == null) {
final EList<Rule> eSuperRules = getESuperRules();
LazySet<Rule> superRules = new LazySet<Rule>();
- for (Rule rule : eSuperRules) {
+ for (final Rule rule : eSuperRules) {
superRules = superRules.union(rule.getAllESuperRules());
}
superRules = superRules.union(new LazySet<Rule>(eSuperRules));
@@ -2422,7 +2430,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @generated NOT
*/
public InputRuleElement findInputElement(final String name) {
- for (InputRuleElement ire : getInputElements()) {
+ for (final InputRuleElement ire : getInputElements()) {
if (name.equals(ire.getName())) {
return ire;
}
@@ -2439,38 +2447,48 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* <!-- begin-user-doc. -->
* {@inheritDoc}
* <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public TraceLink getUniqueTrace(final StackFrame frame, final Object[] values) {
+ return uniqueState.getUniqueTrace(frame, values);
+ }
+
+ /**
+ * <!-- begin-user-doc. -->
+ * {@inheritDoc}
+ * <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
- case EmftvmPackage.RULE__MODULE:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetModule((Module)otherEnd, msgs);
- case EmftvmPackage.RULE__INPUT_ELEMENTS:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getInputElements()).basicAdd(otherEnd, msgs);
- case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutputElements()).basicAdd(otherEnd, msgs);
- case EmftvmPackage.RULE__ESUPER_RULES:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getESuperRules()).basicAdd(otherEnd, msgs);
- case EmftvmPackage.RULE__ESUB_RULES:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getESubRules()).basicAdd(otherEnd, msgs);
- case EmftvmPackage.RULE__MATCHER:
- if (matcher != null)
- msgs = ((InternalEObject)matcher).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EmftvmPackage.RULE__MATCHER, null, msgs);
- return basicSetMatcher((CodeBlock)otherEnd, msgs);
- case EmftvmPackage.RULE__APPLIER:
- if (applier != null)
- msgs = ((InternalEObject)applier).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EmftvmPackage.RULE__APPLIER, null, msgs);
- return basicSetApplier((CodeBlock)otherEnd, msgs);
- case EmftvmPackage.RULE__POST_APPLY:
- if (postApply != null)
- msgs = ((InternalEObject)postApply).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EmftvmPackage.RULE__POST_APPLY, null, msgs);
- return basicSetPostApply((CodeBlock)otherEnd, msgs);
- case EmftvmPackage.RULE__FIELDS:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getFields()).basicAdd(otherEnd, msgs);
+ case EmftvmPackage.RULE__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((Module)otherEnd, msgs);
+ case EmftvmPackage.RULE__INPUT_ELEMENTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getInputElements()).basicAdd(otherEnd, msgs);
+ case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutputElements()).basicAdd(otherEnd, msgs);
+ case EmftvmPackage.RULE__ESUPER_RULES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getESuperRules()).basicAdd(otherEnd, msgs);
+ case EmftvmPackage.RULE__ESUB_RULES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getESubRules()).basicAdd(otherEnd, msgs);
+ case EmftvmPackage.RULE__MATCHER:
+ if (matcher != null)
+ msgs = ((InternalEObject)matcher).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EmftvmPackage.RULE__MATCHER, null, msgs);
+ return basicSetMatcher((CodeBlock)otherEnd, msgs);
+ case EmftvmPackage.RULE__APPLIER:
+ if (applier != null)
+ msgs = ((InternalEObject)applier).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EmftvmPackage.RULE__APPLIER, null, msgs);
+ return basicSetApplier((CodeBlock)otherEnd, msgs);
+ case EmftvmPackage.RULE__POST_APPLY:
+ if (postApply != null)
+ msgs = ((InternalEObject)postApply).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EmftvmPackage.RULE__POST_APPLY, null, msgs);
+ return basicSetPostApply((CodeBlock)otherEnd, msgs);
+ case EmftvmPackage.RULE__FIELDS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getFields()).basicAdd(otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -2484,24 +2502,24 @@ public class RuleImpl extends NamedElementImpl implements Rule {
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
- case EmftvmPackage.RULE__MODULE:
- return basicSetModule(null, msgs);
- case EmftvmPackage.RULE__INPUT_ELEMENTS:
- return ((InternalEList<?>)getInputElements()).basicRemove(otherEnd, msgs);
- case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
- return ((InternalEList<?>)getOutputElements()).basicRemove(otherEnd, msgs);
- case EmftvmPackage.RULE__ESUPER_RULES:
- return ((InternalEList<?>)getESuperRules()).basicRemove(otherEnd, msgs);
- case EmftvmPackage.RULE__ESUB_RULES:
- return ((InternalEList<?>)getESubRules()).basicRemove(otherEnd, msgs);
- case EmftvmPackage.RULE__MATCHER:
- return basicSetMatcher(null, msgs);
- case EmftvmPackage.RULE__APPLIER:
- return basicSetApplier(null, msgs);
- case EmftvmPackage.RULE__POST_APPLY:
- return basicSetPostApply(null, msgs);
- case EmftvmPackage.RULE__FIELDS:
- return ((InternalEList<?>)getFields()).basicRemove(otherEnd, msgs);
+ case EmftvmPackage.RULE__MODULE:
+ return basicSetModule(null, msgs);
+ case EmftvmPackage.RULE__INPUT_ELEMENTS:
+ return ((InternalEList<?>)getInputElements()).basicRemove(otherEnd, msgs);
+ case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
+ return ((InternalEList<?>)getOutputElements()).basicRemove(otherEnd, msgs);
+ case EmftvmPackage.RULE__ESUPER_RULES:
+ return ((InternalEList<?>)getESuperRules()).basicRemove(otherEnd, msgs);
+ case EmftvmPackage.RULE__ESUB_RULES:
+ return ((InternalEList<?>)getESubRules()).basicRemove(otherEnd, msgs);
+ case EmftvmPackage.RULE__MATCHER:
+ return basicSetMatcher(null, msgs);
+ case EmftvmPackage.RULE__APPLIER:
+ return basicSetApplier(null, msgs);
+ case EmftvmPackage.RULE__POST_APPLY:
+ return basicSetPostApply(null, msgs);
+ case EmftvmPackage.RULE__FIELDS:
+ return ((InternalEList<?>)getFields()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -2515,8 +2533,8 @@ public class RuleImpl extends NamedElementImpl implements Rule {
@Override
public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
switch (eContainerFeatureID()) {
- case EmftvmPackage.RULE__MODULE:
- return eInternalContainer().eInverseRemove(this, EmftvmPackage.MODULE__RULES, Module.class, msgs);
+ case EmftvmPackage.RULE__MODULE:
+ return eInternalContainer().eInverseRemove(this, EmftvmPackage.MODULE__RULES, Module.class, msgs);
}
return super.eBasicRemoveFromContainerFeature(msgs);
}
@@ -2530,40 +2548,40 @@ public class RuleImpl extends NamedElementImpl implements Rule {
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
- case EmftvmPackage.RULE__MODULE:
- return getModule();
- case EmftvmPackage.RULE__MODE:
- return getMode();
- case EmftvmPackage.RULE__INPUT_ELEMENTS:
- return getInputElements();
- case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
- return getOutputElements();
- case EmftvmPackage.RULE__ESUPER_RULES:
- return getESuperRules();
- case EmftvmPackage.RULE__ESUB_RULES:
- return getESubRules();
- case EmftvmPackage.RULE__MATCHER:
- return getMatcher();
- case EmftvmPackage.RULE__APPLIER:
- return getApplier();
- case EmftvmPackage.RULE__POST_APPLY:
- return getPostApply();
- case EmftvmPackage.RULE__SUPER_RULES:
- return getSuperRules();
- case EmftvmPackage.RULE__ABSTRACT:
- return isAbstract();
- case EmftvmPackage.RULE__FIELDS:
- return getFields();
- case EmftvmPackage.RULE__DEFAULT:
- return isDefault();
- case EmftvmPackage.RULE__DISTINCT_ELEMENTS:
- return isDistinctElements();
- case EmftvmPackage.RULE__UNIQUE:
- return isUnique();
- case EmftvmPackage.RULE__LEAF:
- return isLeaf();
- case EmftvmPackage.RULE__WITH_LEAVES:
- return isWithLeaves();
+ case EmftvmPackage.RULE__MODULE:
+ return getModule();
+ case EmftvmPackage.RULE__MODE:
+ return getMode();
+ case EmftvmPackage.RULE__INPUT_ELEMENTS:
+ return getInputElements();
+ case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
+ return getOutputElements();
+ case EmftvmPackage.RULE__ESUPER_RULES:
+ return getESuperRules();
+ case EmftvmPackage.RULE__ESUB_RULES:
+ return getESubRules();
+ case EmftvmPackage.RULE__MATCHER:
+ return getMatcher();
+ case EmftvmPackage.RULE__APPLIER:
+ return getApplier();
+ case EmftvmPackage.RULE__POST_APPLY:
+ return getPostApply();
+ case EmftvmPackage.RULE__SUPER_RULES:
+ return getSuperRules();
+ case EmftvmPackage.RULE__ABSTRACT:
+ return isAbstract();
+ case EmftvmPackage.RULE__FIELDS:
+ return getFields();
+ case EmftvmPackage.RULE__DEFAULT:
+ return isDefault();
+ case EmftvmPackage.RULE__DISTINCT_ELEMENTS:
+ return isDistinctElements();
+ case EmftvmPackage.RULE__UNIQUE:
+ return isUnique();
+ case EmftvmPackage.RULE__LEAF:
+ return isLeaf();
+ case EmftvmPackage.RULE__WITH_LEAVES:
+ return isWithLeaves();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -2578,57 +2596,57 @@ public class RuleImpl extends NamedElementImpl implements Rule {
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
- case EmftvmPackage.RULE__MODULE:
- setModule((Module)newValue);
- return;
- case EmftvmPackage.RULE__MODE:
- setMode((RuleMode)newValue);
- return;
- case EmftvmPackage.RULE__INPUT_ELEMENTS:
- getInputElements().clear();
- getInputElements().addAll((Collection<? extends InputRuleElement>)newValue);
- return;
- case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
- getOutputElements().clear();
- getOutputElements().addAll((Collection<? extends OutputRuleElement>)newValue);
- return;
- case EmftvmPackage.RULE__ESUPER_RULES:
- getESuperRules().clear();
- getESuperRules().addAll((Collection<? extends Rule>)newValue);
- return;
- case EmftvmPackage.RULE__ESUB_RULES:
- getESubRules().clear();
- getESubRules().addAll((Collection<? extends Rule>)newValue);
- return;
- case EmftvmPackage.RULE__MATCHER:
- setMatcher((CodeBlock)newValue);
- return;
- case EmftvmPackage.RULE__APPLIER:
- setApplier((CodeBlock)newValue);
- return;
- case EmftvmPackage.RULE__POST_APPLY:
- setPostApply((CodeBlock)newValue);
- return;
- case EmftvmPackage.RULE__SUPER_RULES:
- getSuperRules().clear();
- getSuperRules().addAll((Collection<? extends String>)newValue);
- return;
- case EmftvmPackage.RULE__ABSTRACT:
- setAbstract((Boolean)newValue);
- return;
- case EmftvmPackage.RULE__FIELDS:
- getFields().clear();
- getFields().addAll((Collection<? extends Field>)newValue);
- return;
- case EmftvmPackage.RULE__DEFAULT:
- setDefault((Boolean)newValue);
- return;
- case EmftvmPackage.RULE__DISTINCT_ELEMENTS:
- setDistinctElements((Boolean)newValue);
- return;
- case EmftvmPackage.RULE__UNIQUE:
- setUnique((Boolean)newValue);
- return;
+ case EmftvmPackage.RULE__MODULE:
+ setModule((Module)newValue);
+ return;
+ case EmftvmPackage.RULE__MODE:
+ setMode((RuleMode)newValue);
+ return;
+ case EmftvmPackage.RULE__INPUT_ELEMENTS:
+ getInputElements().clear();
+ getInputElements().addAll((Collection<? extends InputRuleElement>)newValue);
+ return;
+ case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
+ getOutputElements().clear();
+ getOutputElements().addAll((Collection<? extends OutputRuleElement>)newValue);
+ return;
+ case EmftvmPackage.RULE__ESUPER_RULES:
+ getESuperRules().clear();
+ getESuperRules().addAll((Collection<? extends Rule>)newValue);
+ return;
+ case EmftvmPackage.RULE__ESUB_RULES:
+ getESubRules().clear();
+ getESubRules().addAll((Collection<? extends Rule>)newValue);
+ return;
+ case EmftvmPackage.RULE__MATCHER:
+ setMatcher((CodeBlock)newValue);
+ return;
+ case EmftvmPackage.RULE__APPLIER:
+ setApplier((CodeBlock)newValue);
+ return;
+ case EmftvmPackage.RULE__POST_APPLY:
+ setPostApply((CodeBlock)newValue);
+ return;
+ case EmftvmPackage.RULE__SUPER_RULES:
+ getSuperRules().clear();
+ getSuperRules().addAll((Collection<? extends String>)newValue);
+ return;
+ case EmftvmPackage.RULE__ABSTRACT:
+ setAbstract((Boolean)newValue);
+ return;
+ case EmftvmPackage.RULE__FIELDS:
+ getFields().clear();
+ getFields().addAll((Collection<? extends Field>)newValue);
+ return;
+ case EmftvmPackage.RULE__DEFAULT:
+ setDefault((Boolean)newValue);
+ return;
+ case EmftvmPackage.RULE__DISTINCT_ELEMENTS:
+ setDistinctElements((Boolean)newValue);
+ return;
+ case EmftvmPackage.RULE__UNIQUE:
+ setUnique((Boolean)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -2642,51 +2660,51 @@ public class RuleImpl extends NamedElementImpl implements Rule {
@Override
public void eUnset(int featureID) {
switch (featureID) {
- case EmftvmPackage.RULE__MODULE:
- setModule((Module)null);
- return;
- case EmftvmPackage.RULE__MODE:
- setMode(MODE_EDEFAULT);
- return;
- case EmftvmPackage.RULE__INPUT_ELEMENTS:
- getInputElements().clear();
- return;
- case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
- getOutputElements().clear();
- return;
- case EmftvmPackage.RULE__ESUPER_RULES:
- getESuperRules().clear();
- return;
- case EmftvmPackage.RULE__ESUB_RULES:
- getESubRules().clear();
- return;
- case EmftvmPackage.RULE__MATCHER:
- setMatcher((CodeBlock)null);
- return;
- case EmftvmPackage.RULE__APPLIER:
- setApplier((CodeBlock)null);
- return;
- case EmftvmPackage.RULE__POST_APPLY:
- setPostApply((CodeBlock)null);
- return;
- case EmftvmPackage.RULE__SUPER_RULES:
- getSuperRules().clear();
- return;
- case EmftvmPackage.RULE__ABSTRACT:
- setAbstract(ABSTRACT_EDEFAULT);
- return;
- case EmftvmPackage.RULE__FIELDS:
- getFields().clear();
- return;
- case EmftvmPackage.RULE__DEFAULT:
- setDefault(DEFAULT_EDEFAULT);
- return;
- case EmftvmPackage.RULE__DISTINCT_ELEMENTS:
- setDistinctElements(DISTINCT_ELEMENTS_EDEFAULT);
- return;
- case EmftvmPackage.RULE__UNIQUE:
- setUnique(UNIQUE_EDEFAULT);
- return;
+ case EmftvmPackage.RULE__MODULE:
+ setModule((Module)null);
+ return;
+ case EmftvmPackage.RULE__MODE:
+ setMode(MODE_EDEFAULT);
+ return;
+ case EmftvmPackage.RULE__INPUT_ELEMENTS:
+ getInputElements().clear();
+ return;
+ case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
+ getOutputElements().clear();
+ return;
+ case EmftvmPackage.RULE__ESUPER_RULES:
+ getESuperRules().clear();
+ return;
+ case EmftvmPackage.RULE__ESUB_RULES:
+ getESubRules().clear();
+ return;
+ case EmftvmPackage.RULE__MATCHER:
+ setMatcher((CodeBlock)null);
+ return;
+ case EmftvmPackage.RULE__APPLIER:
+ setApplier((CodeBlock)null);
+ return;
+ case EmftvmPackage.RULE__POST_APPLY:
+ setPostApply((CodeBlock)null);
+ return;
+ case EmftvmPackage.RULE__SUPER_RULES:
+ getSuperRules().clear();
+ return;
+ case EmftvmPackage.RULE__ABSTRACT:
+ setAbstract(ABSTRACT_EDEFAULT);
+ return;
+ case EmftvmPackage.RULE__FIELDS:
+ getFields().clear();
+ return;
+ case EmftvmPackage.RULE__DEFAULT:
+ setDefault(DEFAULT_EDEFAULT);
+ return;
+ case EmftvmPackage.RULE__DISTINCT_ELEMENTS:
+ setDistinctElements(DISTINCT_ELEMENTS_EDEFAULT);
+ return;
+ case EmftvmPackage.RULE__UNIQUE:
+ setUnique(UNIQUE_EDEFAULT);
+ return;
}
super.eUnset(featureID);
}
@@ -2700,40 +2718,40 @@ public class RuleImpl extends NamedElementImpl implements Rule {
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
- case EmftvmPackage.RULE__MODULE:
- return getModule() != null;
- case EmftvmPackage.RULE__MODE:
- return mode != MODE_EDEFAULT;
- case EmftvmPackage.RULE__INPUT_ELEMENTS:
- return inputElements != null && !inputElements.isEmpty();
- case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
- return outputElements != null && !outputElements.isEmpty();
- case EmftvmPackage.RULE__ESUPER_RULES:
- return eSuperRules != null && !eSuperRules.isEmpty();
- case EmftvmPackage.RULE__ESUB_RULES:
- return eSubRules != null && !eSubRules.isEmpty();
- case EmftvmPackage.RULE__MATCHER:
- return matcher != null;
- case EmftvmPackage.RULE__APPLIER:
- return applier != null;
- case EmftvmPackage.RULE__POST_APPLY:
- return postApply != null;
- case EmftvmPackage.RULE__SUPER_RULES:
- return superRules != null && !superRules.isEmpty();
- case EmftvmPackage.RULE__ABSTRACT:
- return abstract_ != ABSTRACT_EDEFAULT;
- case EmftvmPackage.RULE__FIELDS:
- return fields != null && !fields.isEmpty();
- case EmftvmPackage.RULE__DEFAULT:
- return default_ != DEFAULT_EDEFAULT;
- case EmftvmPackage.RULE__DISTINCT_ELEMENTS:
- return distinctElements != DISTINCT_ELEMENTS_EDEFAULT;
- case EmftvmPackage.RULE__UNIQUE:
- return unique != UNIQUE_EDEFAULT;
- case EmftvmPackage.RULE__LEAF:
- return leaf != LEAF_EDEFAULT;
- case EmftvmPackage.RULE__WITH_LEAVES:
- return withLeaves != WITH_LEAVES_EDEFAULT;
+ case EmftvmPackage.RULE__MODULE:
+ return getModule() != null;
+ case EmftvmPackage.RULE__MODE:
+ return mode != MODE_EDEFAULT;
+ case EmftvmPackage.RULE__INPUT_ELEMENTS:
+ return inputElements != null && !inputElements.isEmpty();
+ case EmftvmPackage.RULE__OUTPUT_ELEMENTS:
+ return outputElements != null && !outputElements.isEmpty();
+ case EmftvmPackage.RULE__ESUPER_RULES:
+ return eSuperRules != null && !eSuperRules.isEmpty();
+ case EmftvmPackage.RULE__ESUB_RULES:
+ return eSubRules != null && !eSubRules.isEmpty();
+ case EmftvmPackage.RULE__MATCHER:
+ return matcher != null;
+ case EmftvmPackage.RULE__APPLIER:
+ return applier != null;
+ case EmftvmPackage.RULE__POST_APPLY:
+ return postApply != null;
+ case EmftvmPackage.RULE__SUPER_RULES:
+ return superRules != null && !superRules.isEmpty();
+ case EmftvmPackage.RULE__ABSTRACT:
+ return abstract_ != ABSTRACT_EDEFAULT;
+ case EmftvmPackage.RULE__FIELDS:
+ return fields != null && !fields.isEmpty();
+ case EmftvmPackage.RULE__DEFAULT:
+ return default_ != DEFAULT_EDEFAULT;
+ case EmftvmPackage.RULE__DISTINCT_ELEMENTS:
+ return distinctElements != DISTINCT_ELEMENTS_EDEFAULT;
+ case EmftvmPackage.RULE__UNIQUE:
+ return unique != UNIQUE_EDEFAULT;
+ case EmftvmPackage.RULE__LEAF:
+ return leaf != LEAF_EDEFAULT;
+ case EmftvmPackage.RULE__WITH_LEAVES:
+ return withLeaves != WITH_LEAVES_EDEFAULT;
}
return super.eIsSet(featureID);
}
@@ -2747,7 +2765,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
public String toString() {
if (eIsProxy()) return super.toString();
- StringBuffer result = new StringBuffer();
+ final StringBuffer result = new StringBuffer();
if (abstract_) {
result.append("abstract ");
}
@@ -2926,7 +2944,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @return <code>true</code> iff the rule matches
*/
private boolean matchFor(
- final StackFrame frame,
+ final StackFrame frame,
final Map<String, Object> values, final int index,
final List<TracedRule> superMatches,
final Map<String, Iterable<EObject>> iterables,
@@ -2934,43 +2952,43 @@ public class RuleImpl extends NamedElementImpl implements Rule {
boolean result = false;
final int superSize = superMatches.size();
if (index < superSize) {
- // create copy to distinguish pre-existing source elements from the ones added here
+ // create copy to distinguish pre-existing source elements from the ones added here
final Map<String, Object> newValues = new LinkedHashMap<String, Object>(values);
final TracedRule tr = superMatches.get(index);
MATCH:
- for (TraceLink match : tr.getLinks()) {
- for (SourceElement se : match.getSourceElements()) {
- String seName = se.getName();
- EObject seValue = se.getObject();
- if (values.containsKey(seName)) {
- if (values.get(seName) != seValue) {
- continue MATCH; // go to next match, as elements of the same name must be identical
+ for (final TraceLink match : tr.getLinks()) {
+ for (final SourceElement se : match.getSourceElements()) {
+ final String seName = se.getName();
+ final EObject seValue = se.getObject();
+ if (values.containsKey(seName)) {
+ if (values.get(seName) != seValue) {
+ continue MATCH; // go to next match, as elements of the same name must be identical
+ }
+ } else if (isDistinctElements() && values.containsValue(seValue)) {
+ continue MATCH; // all elements in this rule are distinct
+ } else {
+ newValues.put(seName, seValue);
}
- } else if (isDistinctElements() && values.containsValue(seValue)) {
- continue MATCH; // all elements in this rule are distinct
- } else {
- newValues.put(seName, seValue);
}
- }
- for (RuleElement re : getInputElements()) {
- String reName = re.getName();
- // Not all rule input elements exist in newValues!
- if (newValues.containsKey(reName)
- && !re.getEType().isInstance(newValues.get(reName))) {
- // go to next match, as elements must conform to sub-rule type
- continue MATCH;
+ for (final RuleElement re : getInputElements()) {
+ final String reName = re.getName();
+ // Not all rule input elements exist in newValues!
+ if (newValues.containsKey(reName)
+ && !re.getEType().isInstance(newValues.get(reName))) {
+ // go to next match, as elements must conform to sub-rule type
+ continue MATCH;
+ }
}
+ currentMatches.put(tr, match);
+ result |= matchFor(frame, newValues, index + 1, superMatches, iterables, currentMatches);
}
- currentMatches.put(tr, match);
- result |= matchFor(frame, newValues, index + 1, superMatches, iterables, currentMatches);
- }
} else if (!iterables.isEmpty()) {
result = matchFor(frame, values, iterables, new ArrayList<String>(iterables.keySet()), 0);
} else {
result = matchFor(frame, values, createValuesArray(values), 0);
if (result) {
// Schedule selected parent matches for removal
- for (TraceLink link : currentMatches.values()) {
+ for (final TraceLink link : currentMatches.values()) {
link.setOverridden(true);
}
}
@@ -2988,7 +3006,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @return <code>true</code> iff the rule matches
*/
private boolean matchFor(
- final StackFrame frame,
+ final StackFrame frame,
final Map<String, Object> values,
final Map<String, Iterable<EObject>> iterables,
final List<String> keys,
@@ -2998,7 +3016,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
boolean result = false;
final String key = keys.get(keyIndex);
assert !values.containsKey(key);
- for (EObject o : iterables.get(key)) {
+ for (final EObject o : iterables.get(key)) {
assert frame.getEnv().getModelOf(o) != null;
if (isDistinctElements() && values.containsValue(o)) {
continue; // all elements in this rule are distinct
@@ -3032,8 +3050,8 @@ public class RuleImpl extends NamedElementImpl implements Rule {
if (newIndex < values.length) {
boolean result = false;
-
- for (EObject o : iterables.get(newIndex)) {
+
+ for (final EObject o : iterables.get(newIndex)) {
assert frame.getEnv().getModelOf(o) != null;
if (!distinctState.checkDistinct(values, newIndex, o)) {
continue; // all elements in this rule are distinct
@@ -3042,7 +3060,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
result |= matchFor(frame, values, newIndex + 1, iterables);
values[newIndex] = null;
}
-
+
return result;
} else {
return matchFor(frame, values, 0);
@@ -3082,7 +3100,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
} else if (value instanceof Collection<?>) {
boolean result = false;
- for (EObject v : (Collection<EObject>)value) {
+ for (final EObject v : (Collection<EObject>)value) {
if (!ire.getEType().isInstance(v) || !distinctState.checkDistinct(values, values.length - 1, v)) {
continue; // all elements in this rule are distinct
}
@@ -3095,7 +3113,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
if (!ire.getEType().isInstance(value) || !distinctState.checkDistinct(values, values.length - 1, value)) {
return false; // all elements in this rule are distinct
}
- values[index] = (EObject)value;
+ values[index] = value;
final boolean result = matchFor(frame, values, index + 1);
values[index] = null;
return result;
@@ -3118,7 +3136,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @return <code>true</code> iff <code>rule</code> matches against <code>values</code>
*/
@SuppressWarnings("unchecked")
- private boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
+ private boolean matchFor(final StackFrame frame, final Map<String, Object> valuesMap,
final Object[] values, final int index) {
// Assign bound input element values
final EList<InputRuleElement> inputs = getInputElements();
@@ -3144,8 +3162,8 @@ public class RuleImpl extends NamedElementImpl implements Rule {
} else if (value instanceof Collection<?>) {
final String key = ire.getName();
boolean result = false;
- for (EObject v : (Collection<EObject>)value) {
- if (!ire.getEType().isInstance(v) ||
+ for (final EObject v : (Collection<EObject>)value) {
+ if (!ire.getEType().isInstance(v) ||
(isDistinctElements() && valuesMap.containsValue(v))) {
continue; // all elements in this rule are distinct
}
@@ -3157,13 +3175,13 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
return result;
} else {
- if (!ire.getEType().isInstance(value) ||
+ if (!ire.getEType().isInstance(value) ||
(isDistinctElements() && valuesMap.containsValue(value))) {
return false; // all elements in this rule are distinct
}
final String key = ire.getName();
- values[index] = (EObject)value;
- valuesMap.put(key, (EObject)value);
+ values[index] = value;
+ valuesMap.put(key, value);
final boolean result = matchFor(frame, valuesMap, values, index + 1);
valuesMap.remove(key);
values[index] = null;
@@ -3188,45 +3206,45 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @return <code>true</code> iff the rule matches
*/
private boolean matchOneFor(
- final StackFrame frame,
+ final StackFrame frame,
final Map<String, Object> values, final int index,
final List<TracedRule> superMatches,
final Map<String, Iterable<EObject>> iterables,
final Map<TracedRule, TraceLink> currentMatches) {
final int superSize = superMatches.size();
if (index < superSize) {
- // create copy to distinguish pre-existing source elements from the ones added here
+ // create copy to distinguish pre-existing source elements from the ones added here
final Map<String, Object> newValues = new LinkedHashMap<String, Object>(values);
final TracedRule tr = superMatches.get(index);
MATCH:
- for (TraceLink match : tr.getLinks()) {
- for (SourceElement se : match.getSourceElements()) {
- String seName = se.getName();
- EObject seValue = se.getObject();
- if (values.containsKey(seName)) {
- if (values.get(seName) != seValue) {
- continue MATCH; // go to next match, as elements of the same name must be identical
+ for (final TraceLink match : tr.getLinks()) {
+ for (final SourceElement se : match.getSourceElements()) {
+ final String seName = se.getName();
+ final EObject seValue = se.getObject();
+ if (values.containsKey(seName)) {
+ if (values.get(seName) != seValue) {
+ continue MATCH; // go to next match, as elements of the same name must be identical
+ }
+ } else if (isDistinctElements() && values.containsValue(seValue)) {
+ continue MATCH; // all elements in this rule are distinct
+ } else {
+ newValues.put(seName, seValue);
}
- } else if (isDistinctElements() && values.containsValue(seValue)) {
- continue MATCH; // all elements in this rule are distinct
- } else {
- newValues.put(seName, seValue);
}
- }
- for (RuleElement re : getInputElements()) {
- String reName = re.getName();
- // Not all rule input elements exist in newValues!
- if (newValues.containsKey(reName)
- && !re.getEType().isInstance(newValues.get(reName))) {
- // go to next match, as elements must conform to sub-rule type
- continue MATCH;
+ for (final RuleElement re : getInputElements()) {
+ final String reName = re.getName();
+ // Not all rule input elements exist in newValues!
+ if (newValues.containsKey(reName)
+ && !re.getEType().isInstance(newValues.get(reName))) {
+ // go to next match, as elements must conform to sub-rule type
+ continue MATCH;
+ }
+ }
+ currentMatches.put(tr, match);
+ if (matchOneFor(frame, newValues, index + 1, superMatches, iterables, currentMatches)) {
+ return true;
}
}
- currentMatches.put(tr, match);
- if (matchOneFor(frame, newValues, index + 1, superMatches, iterables, currentMatches)) {
- return true;
- }
- }
return false;
} else if (!iterables.isEmpty()) {
return matchOneFor(frame, values, iterables, new ArrayList<String>(iterables.keySet()), 0);
@@ -3235,7 +3253,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
result = matchOneFor(frame, values, createValuesArray(values), 0);
if (result) {
// Schedule selected parent matches for removal
- for (TraceLink link : currentMatches.values()) {
+ for (final TraceLink link : currentMatches.values()) {
link.setOverridden(true);
}
}
@@ -3251,7 +3269,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @param keyIndex
*/
private boolean matchOneFor(
- final StackFrame frame,
+ final StackFrame frame,
final Map<String, Object> values,
final Map<String, Iterable<EObject>> iterables,
final List<String> keys,
@@ -3260,7 +3278,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
if (keyIndex < size) {
final String key = keys.get(keyIndex);
assert !values.containsKey(key);
- for (EObject o : iterables.get(key)) {
+ for (final EObject o : iterables.get(key)) {
assert frame.getEnv().getModelOf(o) != null;
if (isDistinctElements() && values.containsValue(o)) {
continue; // all elements in this rule are distinct
@@ -3286,7 +3304,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @param index the current index of <code>values</code> and <code>iterables</code>
* @param iterables the collections over which to iterate
*/
- private boolean matchOneFor(final StackFrame frame, final EObject[] values, final int index,
+ private boolean matchOneFor(final StackFrame frame, final EObject[] values, final int index,
final List<Iterable<EObject>> iterables) {
assert values.length == iterables.size();
int newIndex = index;
@@ -3295,7 +3313,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
if (newIndex < values.length) {
- for (EObject o : iterables.get(newIndex)) {
+ for (final EObject o : iterables.get(newIndex)) {
assert frame.getEnv().getModelOf(o) != null;
if (!distinctState.checkDistinct(values, newIndex, o)) {
continue;
@@ -3344,7 +3362,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
}
} else if (value instanceof Collection<?>) {
- for (EObject v : (Collection<EObject>)value) {
+ for (final EObject v : (Collection<EObject>)value) {
if (!ire.getEType().isInstance(v) || !distinctState.checkDistinct(values, values.length - 1, v)) {
continue; // all elements in this rule are distinct
}
@@ -3382,7 +3400,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @return <code>true</code> iff <code>rule</code> matches against <code>values</code>
*/
@SuppressWarnings("unchecked")
- private boolean matchOneFor(final StackFrame frame, final Map<String, Object> valuesMap,
+ private boolean matchOneFor(final StackFrame frame, final Map<String, Object> valuesMap,
final Object[] values, final int index) {
// Assign bound input element values
final EList<InputRuleElement> inputs = getInputElements();
@@ -3407,8 +3425,8 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
} else if (value instanceof Collection<?>) {
final String key = ire.getName();
- for (EObject v : (Collection<EObject>)value) {
- if (!ire.getEType().isInstance(v) ||
+ for (final EObject v : (Collection<EObject>)value) {
+ if (!ire.getEType().isInstance(v) ||
(isDistinctElements() && valuesMap.containsValue(v))) {
continue; // all elements in this rule are distinct
}
@@ -3423,13 +3441,13 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
return false;
} else {
- if (!ire.getEType().isInstance(value) ||
+ if (!ire.getEType().isInstance(value) ||
(isDistinctElements() && valuesMap.containsValue(value))) {
return false; // all elements in this rule are distinct
}
final String key = ire.getName();
- values[index] = (EObject)value;
- valuesMap.put(key, (EObject)value);
+ values[index] = value;
+ valuesMap.put(key, value);
final boolean result = matchOneFor(frame, valuesMap, values, index + 1);
valuesMap.remove(key);
values[index] = null;
@@ -3438,7 +3456,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
return matchOneFor(frame, valuesMap, values, index + 1);
}
-
+
// Match values
return uniqueState.matchFor(frame, valuesMap, values);
}
@@ -3452,7 +3470,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
final EList<InputRuleElement> allInput = getInputElements();
final Object[] valuesArray = new Object[allInput.size()];
int i = 0;
- for (InputRuleElement re : allInput) {
+ for (final InputRuleElement re : allInput) {
valuesArray[i++] = values.get(re.getName());
// null values allowed, as long as they are later filled in by bound elements
assert getMode() == RuleMode.MANUAL || re.getBinding() != null || valuesArray[i - 1] != null;
@@ -3471,7 +3489,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
final Map<String, Object> valuesMap = new LinkedHashMap<String, Object>(allInput.size());
assert allInput.size() == values.length;
int i = 0;
- for (RuleElement re : allInput) {
+ for (final RuleElement re : allInput) {
valuesMap.put(re.getName(), values[i++]);
assert getMode() == RuleMode.MANUAL || values[i - 1] != null;
}
@@ -3493,8 +3511,8 @@ public class RuleImpl extends NamedElementImpl implements Rule {
tr.getLinks().add(trace);
final EList<SourceElement> ses = trace.getSourceElements();
//Add all values for the trace, not just the ones specified in the rule signature
- for (Entry<String, Object> v : values.entrySet()) {
- SourceElement se = TraceFactory.eINSTANCE.createSourceElement();
+ for (final Entry<String, Object> v : values.entrySet()) {
+ final SourceElement se = TraceFactory.eINSTANCE.createSourceElement();
se.setName(v.getKey());
se.setRuntimeObject(v.getValue());
ses.add(se);
@@ -3524,8 +3542,8 @@ public class RuleImpl extends NamedElementImpl implements Rule {
"Cannot create a trace for rule %s; no matches exist",
this));
}
- for (Iterator<TraceLink> links = tr.getLinks().iterator(); links.hasNext();) {
- TraceLink trace = links.next();
+ for (final Iterator<TraceLink> links = tr.getLinks().iterator(); links.hasNext();) {
+ final TraceLink trace = links.next();
if (trace.isOverridden()) {
links.remove(); // This match is overridden by a sub-rule
continue;
@@ -3534,7 +3552,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
final TracedRule ntr = traces.getLinksByRule(ruleName, true);
ntr.getLinks().add(trace);
uniqueState.createUniqueMapping(trace);
- for (Rule rule : getAllESuperRules()) {
+ for (final Rule rule : getAllESuperRules()) {
rule.createUniqueMapping(trace);
}
final boolean defaultMappingSet = completeTraceFor(frame, trace);
@@ -3549,39 +3567,6 @@ public class RuleImpl extends NamedElementImpl implements Rule {
}
/**
- * Applies {@link #getRule()} to <code>trace</code>
- * @param frame the stack frame in which to execute the applier and post-apply
- * @param trace the source and target values to which to apply the rule
- * @return the rule application result
- */
- private Object applyTo(final StackFrame frame, final TraceLink trace) {
- Object result = null;
- for (Rule rule : getAllESuperRules()) {
- if (rule.getApplier() != null) {
- result = rule.applyFor(frame, trace);
- } else {
- rule.applyFor(frame, trace);
- }
- if (rule.getPostApply() != null) {
- result = rule.postApplyFor(frame, trace);
- } else {
- rule.postApplyFor(frame, trace);
- }
- }
- if (getApplier() != null) {
- result = applierCbState.applyFor(frame, trace);
- } else {
- applierCbState.applyFor(frame, trace);
- }
- if (getPostApply() != null) {
- result = applierCbState.postApplyFor(frame, trace);
- } else {
- applierCbState.postApplyFor(frame, trace);
- }
- return result;
- }
-
- /**
* Creates applier invocation arguments for this rule from <code>trace</code>.
* @param trace the trace element with source and target values
* @return applier invocation arguments for <code>rule</code>
@@ -3592,11 +3577,11 @@ public class RuleImpl extends NamedElementImpl implements Rule {
final Object[] args = new Object[1 + input.size() + output.size()];
args[0] = trace;
int i = 1;
- for (InputRuleElement ire : input) {
+ for (final InputRuleElement ire : input) {
args[i++] = trace.getSourceElement(ire.getName(), false).getRuntimeObject();
assert args[i - 1] != null;
}
- for (OutputRuleElement ore : output) {
+ for (final OutputRuleElement ore : output) {
args[i++] = trace.getTargetElement(ore.getName()).getObject();
assert args[i - 1] != null;
}
@@ -3610,7 +3595,7 @@ public class RuleImpl extends NamedElementImpl implements Rule {
* @param trace the trace element with source values
*/
private void createAllUniqueMappings(final TraceLink trace) {
- for (Rule rule : getAllESuperRules()) {
+ for (final Rule rule : getAllESuperRules()) {
rule.createUniqueMapping(trace);
}
uniqueState.createUniqueMapping(trace);
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetImpl.java
index 8b9402fc..52a40d7d 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Set;
* An implementation of the model object '<em><b>Set</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetStaticImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetStaticImpl.java
index 36324959..90edab13 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetStaticImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SetStaticImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.SetStatic;
* An implementation of the model object '<em><b>Set static</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/StoreImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/StoreImpl.java
index c1875ce8..d642db01 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/StoreImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/StoreImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Store;
* An implementation of the model object '<em><b>Store</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapImpl.java
index 25124427..27f426f2 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Swap;
* An implementation of the model object '<em><b>Swap</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapX1Impl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapX1Impl.java
index 0aaf0778..370bdf7d 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapX1Impl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/SwapX1Impl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.SwapX1;
* An implementation of the model object '<em><b>Swap x1</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/TypedElementImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/TypedElementImpl.java
index ae1f8fb8..ada09bd8 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/TypedElementImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/TypedElementImpl.java
@@ -28,12 +28,12 @@ import org.eclipse.m2m.atl.emftvm.util.EMFTVMUtil;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.TypedElementImpl#getEType <em>EType</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.TypedElementImpl#getType <em>Type</em>}</li>
* <li>{@link org.eclipse.m2m.atl.emftvm.impl.TypedElementImpl#getTypeModel <em>Type Model</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/XorImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/XorImpl.java
index f0fb25b4..de15cc81 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/XorImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/XorImpl.java
@@ -22,8 +22,6 @@ import org.eclipse.m2m.atl.emftvm.Xor;
* An implementation of the model object '<em><b>Xor</b></em>'.
* @author <a href="mailto:dennis.wagelaar@vub.ac.be">Dennis Wagelaar</a>
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/

Back to the top