NEW - bug 285337: Test Models
https://bugs.eclipse.org/bugs/show_bug.cgi?id=285337
XText and EMF Model.
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/.classpath b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/.classpath
new file mode 100644
index 0000000..68494e9
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/.project b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/.project
new file mode 100644
index 0000000..f2629b7
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.amp.amf.testing</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/META-INF/MANIFEST.MF b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..967a5df
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/META-INF/MANIFEST.MF
@@ -0,0 +1,44 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.amp.amf.testing
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0
+Bundle-SymbolicName: org.eclipse.amp.amf.testing; singleton:=true
+Eclipse-RegisterBuddy: org.eclipse.xtext.log4j
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext,
+ org.eclipse.xtext.generator;resolution:=optional,
+ de.itemis.xtext.antlr;resolution:=optional,
+ org.apache.commons.logging;resolution:=optional,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.xtext.log4j;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe.core;resolution:=optional,
+ com.ibm.icu;resolution:=optional,
+ org.eclipse.xtext.xtend;resolution:=optional,
+ org.eclipse.xtext.util,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.antlr.runtime,
+ org.eclipse.amp.amf.acore;bundle-version="0.2.0",
+ org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.core.resources;bundle-version="3.5.0",
+ org.eclipse.amp.amf.parameters;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ClassPath: .
+Export-Package: org.eclipse.amp.amf.testing,
+ org.eclipse.amp.amf.testing.aTest,
+ org.eclipse.amp.amf.testing.aTest.impl,
+ org.eclipse.amp.amf.testing.aTest.util,
+ org.eclipse.amp.amf.testing.ares,
+ org.eclipse.amp.amf.testing.ares.impl,
+ org.eclipse.amp.amf.testing.ares.util,
+ org.eclipse.amp.amf.testing.ares.validation,
+ org.eclipse.amp.amf.testing.formatting,
+ org.eclipse.amp.amf.testing.parseTreeConstruction,
+ org.eclipse.amp.amf.testing.parser.antlr,
+ org.eclipse.amp.amf.testing.parser.antlr.internal,
+ org.eclipse.amp.amf.testing.scoping,
+ org.eclipse.amp.amf.testing.services,
+ org.eclipse.amp.amf.testing.validation
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/build.properties b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/build.properties
new file mode 100644
index 0000000..9c719c7
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/build.properties
@@ -0,0 +1,14 @@
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ .project,\
+ .classpath
+jars.compile.order = .
+output.. = bin/
+source.. = src/,\
+ src-gen/
+src.includes = src-gen/,\
+ src/
+source.. = src/,\
+ src-gen/
+
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.properties b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.properties
new file mode 100644
index 0000000..ff93fb8
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.1 2009/07/31 21:48:19 mparker Exp $
+
+pluginName = Ares Model
+providerName = www.example.org
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.xml b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.xml
new file mode 100644
index 0000000..8ad9ccc
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/amp/amf/testing/ATest"
+ class = "org.eclipse.amp.amf.testing.aTest.ATestPackage"
+ genModel = "org/eclipse/amp/amf/testing/ATest.genmodel" />
+
+ </extension>
+
+
+
+
+</plugin>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.xml_gen b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.xml_gen
new file mode 100644
index 0000000..8ad9ccc
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/plugin.xml_gen
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/amp/amf/testing/ATest"
+ class = "org.eclipse.amp.amf.testing.aTest.ATestPackage"
+ genModel = "org/eclipse/amp/amf/testing/ATest.genmodel" />
+
+ </extension>
+
+
+
+
+</plugin>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.ecore b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.ecore
new file mode 100644
index 0000000..1a51381
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.ecore
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="aTest"
+ nsURI="http://www.eclipse.org/amp/amf/testing/ATest" nsPrefix="aTest">
+ <eClassifiers xsi:type="ecore:EClass" name="Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tests" eType="#//Tests"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="contraints" upperBound="-1"
+ eType="#//Constraint" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Tests">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="importURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Constraint">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="measure" eType="#//Measure"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="agent" eType="ecore:EClass ../../../../../../../org.eclipse.amp.amf.acore/src/model/metaabm.ecore#//SAgent"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" eType="ecore:EClass ../../../../../../../org.eclipse.amp.amf.acore/src/model/metaabm.ecore#//SAttribute"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" eType="ecore:EClass ../../../../../../../org.eclipse.amp.amf.acore/src/model/metaabm.ecore#//SStateValue"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="minValue" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="maxValue" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Measure">
+ <eLiterals name="COUNT" literal="Count"/>
+ <eLiterals name="AVERAGE" value="1" literal="Average"/>
+ <eLiterals name="SUM" value="2" literal="Sum"/>
+ <eLiterals name="MINIMUM" value="3" literal="Minimum"/>
+ <eLiterals name="MAXIMUM" value="4" literal="Maximum"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IntValue">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RealValue">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.genmodel b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.genmodel
new file mode 100644
index 0000000..0141a3c
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.genmodel
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="ASCII"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.amp.amf.testing/src-gen" editDirectory="/org.eclipse.amp.amf.testing.edit/src" editorDirectory="/org.eclipse.amp.amf.testing.editor/src" modelPluginID="org.eclipse.amp.amf.testing" forceOverwrite="true" modelName="ATest" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.amp.amf.testing.edit" editorPluginID="org.eclipse.amp.amf.testing.editor">
+ <genPackages prefix="ATest" basePackage="org.eclipse.amp.amf.testing" disposableProviderFactory="true">
+ <ecorePackage href="ATest.ecore#/"/>
+ <genEnums typeSafeEnumCompatible="false">
+ <ecoreEnum href="ATest.ecore#//Measure"/>
+ <genEnumLiterals>
+ <ecoreEnumLiteral href="ATest.ecore#//Measure/COUNT"/>
+ </genEnumLiterals>
+ <genEnumLiterals>
+ <ecoreEnumLiteral href="ATest.ecore#//Measure/AVERAGE"/>
+ </genEnumLiterals>
+ <genEnumLiterals>
+ <ecoreEnumLiteral href="ATest.ecore#//Measure/SUM"/>
+ </genEnumLiterals>
+ <genEnumLiterals>
+ <ecoreEnumLiteral href="ATest.ecore#//Measure/MINIMUM"/>
+ </genEnumLiterals>
+ <genEnumLiterals>
+ <ecoreEnumLiteral href="ATest.ecore#//Measure/MAXIMUM"/>
+ </genEnumLiterals>
+ </genEnums>
+ <genClasses>
+ <ecoreClass href="ATest.ecore#//Model"/>
+ <genFeatures createChild="false">
+ <ecoreFeature xsi:type="ecore:EAttribute" href="ATest.ecore#//Model/name"/>
+ </genFeatures>
+ <genFeatures createChild="false">
+ <ecoreFeature xsi:type="ecore:EAttribute" href="ATest.ecore#//Model/description"/>
+ </genFeatures>
+ <genFeatures property="None" children="true" createChild="true">
+ <ecoreFeature xsi:type="ecore:EReference" href="ATest.ecore#//Model/tests"/>
+ </genFeatures>
+ <genFeatures property="None" children="true" createChild="true">
+ <ecoreFeature xsi:type="ecore:EReference" href="ATest.ecore#//Model/contraints"/>
+ </genFeatures>
+ </genClasses>
+ <genClasses>
+ <ecoreClass href="ATest.ecore#//Tests"/>
+ <genFeatures createChild="false">
+ <ecoreFeature xsi:type="ecore:EAttribute" href="ATest.ecore#//Tests/importURI"/>
+ </genFeatures>
+ </genClasses>
+ <genClasses>
+ <ecoreClass href="ATest.ecore#//Constraint"/>
+ <genFeatures createChild="false">
+ <ecoreFeature xsi:type="ecore:EAttribute" href="ATest.ecore#//Constraint/measure"/>
+ </genFeatures>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true">
+ <ecoreFeature xsi:type="ecore:EReference" href="ATest.ecore#//Constraint/agent"/>
+ </genFeatures>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true">
+ <ecoreFeature xsi:type="ecore:EReference" href="ATest.ecore#//Constraint/attribute"/>
+ </genFeatures>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true">
+ <ecoreFeature xsi:type="ecore:EReference" href="ATest.ecore#//Constraint/qualifier"/>
+ </genFeatures>
+ <genFeatures property="None" children="true" createChild="true">
+ <ecoreFeature xsi:type="ecore:EReference" href="ATest.ecore#//Constraint/minValue"/>
+ </genFeatures>
+ <genFeatures property="None" children="true" createChild="true">
+ <ecoreFeature xsi:type="ecore:EReference" href="ATest.ecore#//Constraint/maxValue"/>
+ </genFeatures>
+ </genClasses>
+ <genClasses>
+ <ecoreClass href="ATest.ecore#//IntValue"/>
+ <genFeatures createChild="false">
+ <ecoreFeature xsi:type="ecore:EAttribute" href="ATest.ecore#//IntValue/value"/>
+ </genFeatures>
+ </genClasses>
+ <genClasses>
+ <ecoreClass href="ATest.ecore#//RealValue"/>
+ <genFeatures createChild="false">
+ <ecoreFeature xsi:type="ecore:EAttribute" href="ATest.ecore#//RealValue/value"/>
+ </genFeatures>
+ </genClasses>
+ </genPackages>
+ <usedGenPackages href="platform:/resource/org.eclipse.amp.amf.acore/src/model/metaabm.genmodel#//metaabm"/>
+</genmodel:GenModel>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.xmi b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.xmi
new file mode 100644
index 0000000..77e8c51
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATest.xmi
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext">
+ <xtext:Grammar name="org.eclipse.amp.amf.testing.ATest" usedGrammars="/1">
+ <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="aTest">
+ <ePackage href="http://www.eclipse.org/amp/amf/testing/ATest#/"/>
+ </metamodelDeclarations>
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+ <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </metamodelDeclarations>
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">
+ <ePackage href="http://metaabm.org/structure#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="Model">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//Model"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </tokens>
+ <tokens xsi:type="xtext:Assignment" cardinality="?" feature="description" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
+ </tokens>
+ <tokens xsi:type="xtext:Assignment" cardinality="?" feature="tests" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
+ </tokens>
+ <tokens xsi:type="xtext:Assignment" cardinality="*" feature="contraints" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ </tokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Tests">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//Tests"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="TESTS"/>
+ <tokens xsi:type="xtext:Assignment" feature="importURI" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </tokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Constraint">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//Constraint"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Assignment" feature="measure" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </tokens>
+ <tokens xsi:type="xtext:Keyword" value="("/>
+ <tokens xsi:type="xtext:Assignment" feature="agent" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.2">
+ <classifier xsi:type="ecore:EClass" href="http://metaabm.org/structure#//SAgent"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </terminal>
+ </tokens>
+ <tokens xsi:type="xtext:Keyword" value=":"/>
+ <tokens xsi:type="xtext:Assignment" feature="attribute" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.2">
+ <classifier xsi:type="ecore:EClass" href="http://metaabm.org/structure#//SAttribute"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </terminal>
+ </tokens>
+ <tokens xsi:type="xtext:Group" cardinality="?">
+ <tokens xsi:type="xtext:Keyword" value=":"/>
+ <tokens xsi:type="xtext:Assignment" feature="qualifier" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.2">
+ <classifier xsi:type="ecore:EClass" href="http://metaabm.org/structure#//SStateValue"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </terminal>
+ </tokens>
+ </tokens>
+ <tokens xsi:type="xtext:Keyword" value=")"/>
+ <tokens xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="="/>
+ <tokens xsi:type="xtext:Keyword" value="["/>
+ <tokens xsi:type="xtext:Assignment" feature="minValue" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+ <groups xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+ </terminal>
+ </tokens>
+ <tokens xsi:type="xtext:Keyword" value=","/>
+ <tokens xsi:type="xtext:Assignment" feature="maxValue" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+ <groups xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+ </terminal>
+ </tokens>
+ <tokens xsi:type="xtext:Keyword" value="]"/>
+ </tokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:EnumRule" name="Measure">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/COUNT"/>
+ <literal value="Count"/>
+ </groups>
+ <groups xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/AVERAGE"/>
+ <literal value="Average"/>
+ </groups>
+ <groups xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/SUM"/>
+ <literal value="Sum"/>
+ </groups>
+ <groups xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/MINIMUM"/>
+ <literal value="Minimum"/>
+ </groups>
+ <groups xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/MAXIMUM"/>
+ <literal value="Maximum"/>
+ </groups>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="IntValue">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//IntValue"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="RealValue">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//RealValue"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="REAL">
+ <type metamodel="/0/@metamodelDeclarations.1">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" cardinality="?" value="-"/>
+ <tokens xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <tokens xsi:type="xtext:Group" cardinality="?">
+ <tokens xsi:type="xtext:Keyword" value="."/>
+ <tokens xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </tokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="PLAIN_STRING">
+ <type metamodel="/0/@metamodelDeclarations.1">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="«"/>
+ <tokens xsi:type="xtext:Alternatives" cardinality="*">
+ <groups xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="\"/>
+ <tokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Keyword" value="b"/>
+ <groups xsi:type="xtext:Keyword" value="t"/>
+ <groups xsi:type="xtext:Keyword" value="n"/>
+ <groups xsi:type="xtext:Keyword" value="f"/>
+ <groups xsi:type="xtext:Keyword" value="r"/>
+ <groups xsi:type="xtext:Keyword" value="""/>
+ <groups xsi:type="xtext:Keyword" value="'"/>
+ <groups xsi:type="xtext:Keyword" value="\"/>
+ </tokens>
+ </groups>
+ <groups xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Keyword" value="\"/>
+ <groups xsi:type="xtext:Keyword" value="«"/>
+ <groups xsi:type="xtext:Keyword" value="»"/>
+ </terminal>
+ </groups>
+ </tokens>
+ <tokens xsi:type="xtext:Keyword" value="»"/>
+ </alternatives>
+ </rules>
+ </xtext:Grammar>
+ <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4">
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+ <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:TerminalRule" name="ID">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" cardinality="?" value="^"/>
+ <tokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </groups>
+ <groups xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </groups>
+ <groups xsi:type="xtext:Keyword" value="_"/>
+ </tokens>
+ <tokens xsi:type="xtext:Alternatives" cardinality="*">
+ <groups xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </groups>
+ <groups xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </groups>
+ <groups xsi:type="xtext:Keyword" value="_"/>
+ <groups xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </groups>
+ </tokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="INT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </type>
+ <alternatives xsi:type="xtext:CharacterRange" cardinality="+">
+ <left value="0"/>
+ <right value="9"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="STRING">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="""/>
+ <tokens xsi:type="xtext:Alternatives" cardinality="*">
+ <groups xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="\"/>
+ <tokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Keyword" value="b"/>
+ <groups xsi:type="xtext:Keyword" value="t"/>
+ <groups xsi:type="xtext:Keyword" value="n"/>
+ <groups xsi:type="xtext:Keyword" value="f"/>
+ <groups xsi:type="xtext:Keyword" value="r"/>
+ <groups xsi:type="xtext:Keyword" value="""/>
+ <groups xsi:type="xtext:Keyword" value="'"/>
+ <groups xsi:type="xtext:Keyword" value="\"/>
+ </tokens>
+ </groups>
+ <groups xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Keyword" value="\"/>
+ <groups xsi:type="xtext:Keyword" value="""/>
+ </terminal>
+ </groups>
+ </tokens>
+ <tokens xsi:type="xtext:Keyword" value="""/>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="'"/>
+ <tokens xsi:type="xtext:Alternatives" cardinality="*">
+ <groups xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="\"/>
+ <tokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Keyword" value="b"/>
+ <groups xsi:type="xtext:Keyword" value="t"/>
+ <groups xsi:type="xtext:Keyword" value="n"/>
+ <groups xsi:type="xtext:Keyword" value="f"/>
+ <groups xsi:type="xtext:Keyword" value="r"/>
+ <groups xsi:type="xtext:Keyword" value="""/>
+ <groups xsi:type="xtext:Keyword" value="'"/>
+ <groups xsi:type="xtext:Keyword" value="\"/>
+ </tokens>
+ </groups>
+ <groups xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Keyword" value="\"/>
+ <groups xsi:type="xtext:Keyword" value="'"/>
+ </terminal>
+ </groups>
+ </tokens>
+ <tokens xsi:type="xtext:Keyword" value="'"/>
+ </groups>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="/*"/>
+ <tokens xsi:type="xtext:UntilToken">
+ <terminal xsi:type="xtext:Keyword" value="*/"/>
+ </tokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <tokens xsi:type="xtext:Keyword" value="//"/>
+ <tokens xsi:type="xtext:NegatedToken" cardinality="*">
+ <terminal xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Keyword" value="
"/>
+ <groups xsi:type="xtext:Keyword" value="
"/>
+ </terminal>
+ </tokens>
+ <tokens xsi:type="xtext:Group" cardinality="?">
+ <tokens xsi:type="xtext:Keyword" cardinality="?" value="
"/>
+ <tokens xsi:type="xtext:Keyword" value="
"/>
+ </tokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="WS">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives" cardinality="+">
+ <groups xsi:type="xtext:Keyword" value=" "/>
+ <groups xsi:type="xtext:Keyword" value="	"/>
+ <groups xsi:type="xtext:Keyword" value="
"/>
+ <groups xsi:type="xtext:Keyword" value="
"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Wildcard"/>
+ </rules>
+ </xtext:Grammar>
+</xmi:XMI>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATestStandaloneSetup.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATestStandaloneSetup.java
new file mode 100644
index 0000000..1b211fd
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/ATestStandaloneSetup.java
@@ -0,0 +1,43 @@
+package org.eclipse.amp.amf.testing;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+public class ATestStandaloneSetup implements ISetup {
+
+ public static void doSetup() {
+ new ATestStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+
+ public Injector createInjectorAndDoEMFRegistration() {
+ org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup();
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new org.eclipse.amp.amf.testing.ATestRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/amp/amf/testing/ATest")) {
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/amp/amf/testing/ATest", org.eclipse.amp.amf.testing.aTest.ATestPackage.eINSTANCE);
+ }
+
+ org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("atest", resourceFactory);
+
+
+
+
+ }
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/AbstractATestRuntimeModule.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/AbstractATestRuntimeModule.java
new file mode 100644
index 0000000..58c45c1
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/AbstractATestRuntimeModule.java
@@ -0,0 +1,76 @@
+
+/*
+ * generated by Xtext
+ */
+package org.eclipse.amp.amf.testing;
+
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.eclipse.amp.amf.testing.ATestRuntimeModule}
+ */
+public abstract class AbstractATestRuntimeModule extends DefaultRuntimeModule {
+
+ @Override
+ public void configure(Binder binder) {
+ super.configure(binder);
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance(
+ "org.eclipse.amp.amf.testing.ATest");
+ }
+
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.amp.amf.testing.services.ATestGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parseTreeConstructor.ParseTreeConstructorFragment
+ public Class<? extends org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor> bindIParseTreeConstructor() {
+ return org.eclipse.amp.amf.testing.parseTreeConstruction.ATestParsetreeConstructor.class;
+ }
+
+ // contributed by de.itemis.xtext.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrParser> bindIAntlrParser() {
+ return org.eclipse.amp.amf.testing.parser.antlr.ATestParser.class;
+ }
+
+ // contributed by de.itemis.xtext.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by de.itemis.xtext.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return org.eclipse.amp.amf.testing.parser.antlr.ATestAntlrTokenFileProvider.class;
+ }
+
+ // contributed by de.itemis.xtext.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.amp.amf.testing.parser.antlr.internal.InternalATestLexer.class;
+ }
+
+ // contributed by de.itemis.xtext.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.amp.amf.testing.validation.ATestJavaValidator> bindATestJavaValidator() {
+ return org.eclipse.amp.amf.testing.validation.ATestJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.JavaScopingFragment
+ public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+ return org.eclipse.amp.amf.testing.scoping.ATestScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.amp.amf.testing.formatting.ATestFormatter.class;
+ }
+
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/ATestFactory.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/ATestFactory.java
new file mode 100644
index 0000000..51e31b6
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/ATestFactory.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage
+ * @generated
+ */
+public interface ATestFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ATestFactory eINSTANCE = org.eclipse.amp.amf.testing.aTest.impl.ATestFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model</em>'.
+ * @generated
+ */
+ Model createModel();
+
+ /**
+ * Returns a new object of class '<em>Tests</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tests</em>'.
+ * @generated
+ */
+ Tests createTests();
+
+ /**
+ * Returns a new object of class '<em>Constraint</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Constraint</em>'.
+ * @generated
+ */
+ Constraint createConstraint();
+
+ /**
+ * Returns a new object of class '<em>Int Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Int Value</em>'.
+ * @generated
+ */
+ IntValue createIntValue();
+
+ /**
+ * Returns a new object of class '<em>Real Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Real Value</em>'.
+ * @generated
+ */
+ RealValue createRealValue();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ATestPackage getATestPackage();
+
+} //ATestFactory
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/ATestPackage.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/ATestPackage.java
new file mode 100644
index 0000000..e9c3bda
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/ATestPackage.java
@@ -0,0 +1,678 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.ATestFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ATestPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "aTest";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/amp/amf/testing/ATest";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "aTest";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ATestPackage eINSTANCE = org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.aTest.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ModelImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getModel()
+ * @generated
+ */
+ int MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__DESCRIPTION = 1;
+
+ /**
+ * The feature id for the '<em><b>Tests</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__TESTS = 2;
+
+ /**
+ * The feature id for the '<em><b>Contraints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__CONTRAINTS = 3;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.aTest.impl.TestsImpl <em>Tests</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.TestsImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getTests()
+ * @generated
+ */
+ int TESTS = 1;
+
+ /**
+ * The feature id for the '<em><b>Import URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTS__IMPORT_URI = 0;
+
+ /**
+ * The number of structural features of the '<em>Tests</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTS_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl <em>Constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getConstraint()
+ * @generated
+ */
+ int CONSTRAINT = 2;
+
+ /**
+ * The feature id for the '<em><b>Measure</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__MEASURE = 0;
+
+ /**
+ * The feature id for the '<em><b>Agent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__AGENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Attribute</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__ATTRIBUTE = 2;
+
+ /**
+ * The feature id for the '<em><b>Qualifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__QUALIFIER = 3;
+
+ /**
+ * The feature id for the '<em><b>Min Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__MIN_VALUE = 4;
+
+ /**
+ * The feature id for the '<em><b>Max Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__MAX_VALUE = 5;
+
+ /**
+ * The number of structural features of the '<em>Constraint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.aTest.impl.IntValueImpl <em>Int Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.IntValueImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getIntValue()
+ * @generated
+ */
+ int INT_VALUE = 3;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INT_VALUE__VALUE = 0;
+
+ /**
+ * The number of structural features of the '<em>Int Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INT_VALUE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.aTest.impl.RealValueImpl <em>Real Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.RealValueImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getRealValue()
+ * @generated
+ */
+ int REAL_VALUE = 4;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REAL_VALUE__VALUE = 0;
+
+ /**
+ * The number of structural features of the '<em>Real Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REAL_VALUE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.aTest.Measure <em>Measure</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.Measure
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getMeasure()
+ * @generated
+ */
+ int MEASURE = 5;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.amp.amf.testing.aTest.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Model
+ * @generated
+ */
+ EClass getModel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.aTest.Model#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Model#getName()
+ * @see #getModel()
+ * @generated
+ */
+ EAttribute getModel_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.aTest.Model#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Model#getDescription()
+ * @see #getModel()
+ * @generated
+ */
+ EAttribute getModel_Description();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.amp.amf.testing.aTest.Model#getTests <em>Tests</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Tests</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Model#getTests()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Tests();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.amp.amf.testing.aTest.Model#getContraints <em>Contraints</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Contraints</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Model#getContraints()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Contraints();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.amp.amf.testing.aTest.Tests <em>Tests</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tests</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Tests
+ * @generated
+ */
+ EClass getTests();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.aTest.Tests#getImportURI <em>Import URI</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Import URI</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Tests#getImportURI()
+ * @see #getTests()
+ * @generated
+ */
+ EAttribute getTests_ImportURI();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.amp.amf.testing.aTest.Constraint <em>Constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Constraint</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Constraint
+ * @generated
+ */
+ EClass getConstraint();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMeasure <em>Measure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Measure</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Constraint#getMeasure()
+ * @see #getConstraint()
+ * @generated
+ */
+ EAttribute getConstraint_Measure();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getAgent <em>Agent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Agent</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Constraint#getAgent()
+ * @see #getConstraint()
+ * @generated
+ */
+ EReference getConstraint_Agent();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getAttribute <em>Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Attribute</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Constraint#getAttribute()
+ * @see #getConstraint()
+ * @generated
+ */
+ EReference getConstraint_Attribute();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getQualifier <em>Qualifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Qualifier</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Constraint#getQualifier()
+ * @see #getConstraint()
+ * @generated
+ */
+ EReference getConstraint_Qualifier();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMinValue <em>Min Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Min Value</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Constraint#getMinValue()
+ * @see #getConstraint()
+ * @generated
+ */
+ EReference getConstraint_MinValue();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMaxValue <em>Max Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Max Value</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Constraint#getMaxValue()
+ * @see #getConstraint()
+ * @generated
+ */
+ EReference getConstraint_MaxValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.amp.amf.testing.aTest.IntValue <em>Int Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Int Value</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.IntValue
+ * @generated
+ */
+ EClass getIntValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.aTest.IntValue#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.IntValue#getValue()
+ * @see #getIntValue()
+ * @generated
+ */
+ EAttribute getIntValue_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.amp.amf.testing.aTest.RealValue <em>Real Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Real Value</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.RealValue
+ * @generated
+ */
+ EClass getRealValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.aTest.RealValue#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.RealValue#getValue()
+ * @see #getRealValue()
+ * @generated
+ */
+ EAttribute getRealValue_Value();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.amp.amf.testing.aTest.Measure <em>Measure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Measure</em>'.
+ * @see org.eclipse.amp.amf.testing.aTest.Measure
+ * @generated
+ */
+ EEnum getMeasure();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ATestFactory getATestFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.aTest.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ModelImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getModel()
+ * @generated
+ */
+ EClass MODEL = eINSTANCE.getModel();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL__NAME = eINSTANCE.getModel_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL__DESCRIPTION = eINSTANCE.getModel_Description();
+
+ /**
+ * The meta object literal for the '<em><b>Tests</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__TESTS = eINSTANCE.getModel_Tests();
+
+ /**
+ * The meta object literal for the '<em><b>Contraints</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__CONTRAINTS = eINSTANCE.getModel_Contraints();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.aTest.impl.TestsImpl <em>Tests</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.TestsImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getTests()
+ * @generated
+ */
+ EClass TESTS = eINSTANCE.getTests();
+
+ /**
+ * The meta object literal for the '<em><b>Import URI</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TESTS__IMPORT_URI = eINSTANCE.getTests_ImportURI();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl <em>Constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getConstraint()
+ * @generated
+ */
+ EClass CONSTRAINT = eINSTANCE.getConstraint();
+
+ /**
+ * The meta object literal for the '<em><b>Measure</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONSTRAINT__MEASURE = eINSTANCE.getConstraint_Measure();
+
+ /**
+ * The meta object literal for the '<em><b>Agent</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONSTRAINT__AGENT = eINSTANCE.getConstraint_Agent();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONSTRAINT__ATTRIBUTE = eINSTANCE.getConstraint_Attribute();
+
+ /**
+ * The meta object literal for the '<em><b>Qualifier</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONSTRAINT__QUALIFIER = eINSTANCE.getConstraint_Qualifier();
+
+ /**
+ * The meta object literal for the '<em><b>Min Value</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONSTRAINT__MIN_VALUE = eINSTANCE.getConstraint_MinValue();
+
+ /**
+ * The meta object literal for the '<em><b>Max Value</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONSTRAINT__MAX_VALUE = eINSTANCE.getConstraint_MaxValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.aTest.impl.IntValueImpl <em>Int Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.IntValueImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getIntValue()
+ * @generated
+ */
+ EClass INT_VALUE = eINSTANCE.getIntValue();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INT_VALUE__VALUE = eINSTANCE.getIntValue_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.aTest.impl.RealValueImpl <em>Real Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.impl.RealValueImpl
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getRealValue()
+ * @generated
+ */
+ EClass REAL_VALUE = eINSTANCE.getRealValue();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute REAL_VALUE__VALUE = eINSTANCE.getRealValue_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.aTest.Measure <em>Measure</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.Measure
+ * @see org.eclipse.amp.amf.testing.aTest.impl.ATestPackageImpl#getMeasure()
+ * @generated
+ */
+ EEnum MEASURE = eINSTANCE.getMeasure();
+
+ }
+
+} //ATestPackage
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Constraint.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Constraint.java
new file mode 100644
index 0000000..61ec58e
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Constraint.java
@@ -0,0 +1,196 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.metaabm.SAgent;
+import org.metaabm.SAttribute;
+import org.metaabm.SStateValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMeasure <em>Measure</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Constraint#getAgent <em>Agent</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Constraint#getAttribute <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Constraint#getQualifier <em>Qualifier</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMinValue <em>Min Value</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMaxValue <em>Max Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getConstraint()
+ * @model
+ * @generated
+ */
+public interface Constraint extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Measure</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.amp.amf.testing.aTest.Measure}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Measure</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Measure</em>' attribute.
+ * @see org.eclipse.amp.amf.testing.aTest.Measure
+ * @see #setMeasure(Measure)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getConstraint_Measure()
+ * @model
+ * @generated
+ */
+ Measure getMeasure();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMeasure <em>Measure</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Measure</em>' attribute.
+ * @see org.eclipse.amp.amf.testing.aTest.Measure
+ * @see #getMeasure()
+ * @generated
+ */
+ void setMeasure(Measure value);
+
+ /**
+ * Returns the value of the '<em><b>Agent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Agent</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Agent</em>' reference.
+ * @see #setAgent(SAgent)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getConstraint_Agent()
+ * @model
+ * @generated
+ */
+ SAgent getAgent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getAgent <em>Agent</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Agent</em>' reference.
+ * @see #getAgent()
+ * @generated
+ */
+ void setAgent(SAgent value);
+
+ /**
+ * Returns the value of the '<em><b>Attribute</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute</em>' reference.
+ * @see #setAttribute(SAttribute)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getConstraint_Attribute()
+ * @model
+ * @generated
+ */
+ SAttribute getAttribute();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getAttribute <em>Attribute</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attribute</em>' reference.
+ * @see #getAttribute()
+ * @generated
+ */
+ void setAttribute(SAttribute value);
+
+ /**
+ * Returns the value of the '<em><b>Qualifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Qualifier</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Qualifier</em>' reference.
+ * @see #setQualifier(SStateValue)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getConstraint_Qualifier()
+ * @model
+ * @generated
+ */
+ SStateValue getQualifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getQualifier <em>Qualifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Qualifier</em>' reference.
+ * @see #getQualifier()
+ * @generated
+ */
+ void setQualifier(SStateValue value);
+
+ /**
+ * Returns the value of the '<em><b>Min Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Min Value</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Min Value</em>' containment reference.
+ * @see #setMinValue(EObject)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getConstraint_MinValue()
+ * @model containment="true"
+ * @generated
+ */
+ EObject getMinValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMinValue <em>Min Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Min Value</em>' containment reference.
+ * @see #getMinValue()
+ * @generated
+ */
+ void setMinValue(EObject value);
+
+ /**
+ * Returns the value of the '<em><b>Max Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Max Value</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Max Value</em>' containment reference.
+ * @see #setMaxValue(EObject)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getConstraint_MaxValue()
+ * @model containment="true"
+ * @generated
+ */
+ EObject getMaxValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Constraint#getMaxValue <em>Max Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Max Value</em>' containment reference.
+ * @see #getMaxValue()
+ * @generated
+ */
+ void setMaxValue(EObject value);
+
+} // Constraint
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/IntValue.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/IntValue.java
new file mode 100644
index 0000000..eb4d06f
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/IntValue.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Int Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.IntValue#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getIntValue()
+ * @model
+ * @generated
+ */
+public interface IntValue extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(int)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getIntValue_Value()
+ * @model
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.IntValue#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+} // IntValue
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Measure.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Measure.java
new file mode 100644
index 0000000..417babd
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Measure.java
@@ -0,0 +1,307 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Measure</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getMeasure()
+ * @model
+ * @generated
+ */
+public enum Measure implements Enumerator
+{
+ /**
+ * The '<em><b>COUNT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #COUNT_VALUE
+ * @generated
+ * @ordered
+ */
+ COUNT(0, "COUNT", "Count"),
+
+ /**
+ * The '<em><b>AVERAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AVERAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ AVERAGE(1, "AVERAGE", "Average"),
+
+ /**
+ * The '<em><b>SUM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SUM_VALUE
+ * @generated
+ * @ordered
+ */
+ SUM(2, "SUM", "Sum"),
+
+ /**
+ * The '<em><b>MINIMUM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MINIMUM_VALUE
+ * @generated
+ * @ordered
+ */
+ MINIMUM(3, "MINIMUM", "Minimum"),
+
+ /**
+ * The '<em><b>MAXIMUM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MAXIMUM_VALUE
+ * @generated
+ * @ordered
+ */
+ MAXIMUM(4, "MAXIMUM", "Maximum");
+
+ /**
+ * The '<em><b>COUNT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>COUNT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #COUNT
+ * @model literal="Count"
+ * @generated
+ * @ordered
+ */
+ public static final int COUNT_VALUE = 0;
+
+ /**
+ * The '<em><b>AVERAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AVERAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AVERAGE
+ * @model literal="Average"
+ * @generated
+ * @ordered
+ */
+ public static final int AVERAGE_VALUE = 1;
+
+ /**
+ * The '<em><b>SUM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SUM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SUM
+ * @model literal="Sum"
+ * @generated
+ * @ordered
+ */
+ public static final int SUM_VALUE = 2;
+
+ /**
+ * The '<em><b>MINIMUM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MINIMUM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MINIMUM
+ * @model literal="Minimum"
+ * @generated
+ * @ordered
+ */
+ public static final int MINIMUM_VALUE = 3;
+
+ /**
+ * The '<em><b>MAXIMUM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MAXIMUM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MAXIMUM
+ * @model literal="Maximum"
+ * @generated
+ * @ordered
+ */
+ public static final int MAXIMUM_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Measure</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Measure[] VALUES_ARRAY =
+ new Measure[]
+ {
+ COUNT,
+ AVERAGE,
+ SUM,
+ MINIMUM,
+ MAXIMUM,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Measure</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Measure> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Measure</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Measure get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Measure result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Measure</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Measure getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Measure result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Measure</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Measure get(int value)
+ {
+ switch (value)
+ {
+ case COUNT_VALUE: return COUNT;
+ case AVERAGE_VALUE: return AVERAGE;
+ case SUM_VALUE: return SUM;
+ case MINIMUM_VALUE: return MINIMUM;
+ case MAXIMUM_VALUE: return MAXIMUM;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Measure(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Measure
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Model.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Model.java
new file mode 100644
index 0000000..ecceda9
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Model.java
@@ -0,0 +1,127 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Model#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Model#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Model#getTests <em>Tests</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Model#getContraints <em>Contraints</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getModel_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Model#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getModel_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Model#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Tests</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tests</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tests</em>' containment reference.
+ * @see #setTests(Tests)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getModel_Tests()
+ * @model containment="true"
+ * @generated
+ */
+ Tests getTests();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Model#getTests <em>Tests</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tests</em>' containment reference.
+ * @see #getTests()
+ * @generated
+ */
+ void setTests(Tests value);
+
+ /**
+ * Returns the value of the '<em><b>Contraints</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.amp.amf.testing.aTest.Constraint}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Contraints</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Contraints</em>' containment reference list.
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getModel_Contraints()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Constraint> getContraints();
+
+} // Model
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/RealValue.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/RealValue.java
new file mode 100644
index 0000000..72334a5
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/RealValue.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Real Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.RealValue#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getRealValue()
+ * @model
+ * @generated
+ */
+public interface RealValue extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getRealValue_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.RealValue#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // RealValue
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Tests.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Tests.java
new file mode 100644
index 0000000..76cf4e8
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/Tests.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tests</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.Tests#getImportURI <em>Import URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getTests()
+ * @model
+ * @generated
+ */
+public interface Tests extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Import URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Import URI</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Import URI</em>' attribute.
+ * @see #setImportURI(String)
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#getTests_ImportURI()
+ * @model
+ * @generated
+ */
+ String getImportURI();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.aTest.Tests#getImportURI <em>Import URI</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Import URI</em>' attribute.
+ * @see #getImportURI()
+ * @generated
+ */
+ void setImportURI(String value);
+
+} // Tests
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ATestFactoryImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ATestFactoryImpl.java
new file mode 100644
index 0000000..5a3cbda
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ATestFactoryImpl.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.impl;
+
+import org.eclipse.amp.amf.testing.aTest.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ATestFactoryImpl extends EFactoryImpl implements ATestFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ATestFactory init()
+ {
+ try
+ {
+ ATestFactory theATestFactory = (ATestFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/amp/amf/testing/ATest");
+ if (theATestFactory != null)
+ {
+ return theATestFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ATestFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ATestFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case ATestPackage.MODEL: return createModel();
+ case ATestPackage.TESTS: return createTests();
+ case ATestPackage.CONSTRAINT: return createConstraint();
+ case ATestPackage.INT_VALUE: return createIntValue();
+ case ATestPackage.REAL_VALUE: return createRealValue();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case ATestPackage.MEASURE:
+ return createMeasureFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case ATestPackage.MEASURE:
+ return convertMeasureToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model createModel()
+ {
+ ModelImpl model = new ModelImpl();
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tests createTests()
+ {
+ TestsImpl tests = new TestsImpl();
+ return tests;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createConstraint()
+ {
+ ConstraintImpl constraint = new ConstraintImpl();
+ return constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IntValue createIntValue()
+ {
+ IntValueImpl intValue = new IntValueImpl();
+ return intValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RealValue createRealValue()
+ {
+ RealValueImpl realValue = new RealValueImpl();
+ return realValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Measure createMeasureFromString(EDataType eDataType, String initialValue)
+ {
+ Measure result = Measure.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMeasureToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ATestPackage getATestPackage()
+ {
+ return (ATestPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ATestPackage getPackage()
+ {
+ return ATestPackage.eINSTANCE;
+ }
+
+} //ATestFactoryImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ATestPackageImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ATestPackageImpl.java
new file mode 100644
index 0000000..9dfaa49
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ATestPackageImpl.java
@@ -0,0 +1,459 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.impl;
+
+import org.eclipse.amp.amf.testing.aTest.ATestFactory;
+import org.eclipse.amp.amf.testing.aTest.ATestPackage;
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+import org.eclipse.amp.amf.testing.aTest.IntValue;
+import org.eclipse.amp.amf.testing.aTest.Measure;
+import org.eclipse.amp.amf.testing.aTest.Model;
+import org.eclipse.amp.amf.testing.aTest.RealValue;
+import org.eclipse.amp.amf.testing.aTest.Tests;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.metaabm.MetaABMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ATestPackageImpl extends EPackageImpl implements ATestPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass testsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass intValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass realValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum measureEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ATestPackageImpl()
+ {
+ super(eNS_URI, ATestFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link ATestPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ATestPackage init()
+ {
+ if (isInited) return (ATestPackage)EPackage.Registry.INSTANCE.getEPackage(ATestPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ATestPackageImpl theATestPackage = (ATestPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ATestPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ATestPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MetaABMPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theATestPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theATestPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theATestPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ATestPackage.eNS_URI, theATestPackage);
+ return theATestPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModel()
+ {
+ return modelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModel_Name()
+ {
+ return (EAttribute)modelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModel_Description()
+ {
+ return (EAttribute)modelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_Tests()
+ {
+ return (EReference)modelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_Contraints()
+ {
+ return (EReference)modelEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTests()
+ {
+ return testsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTests_ImportURI()
+ {
+ return (EAttribute)testsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConstraint()
+ {
+ return constraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConstraint_Measure()
+ {
+ return (EAttribute)constraintEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstraint_Agent()
+ {
+ return (EReference)constraintEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstraint_Attribute()
+ {
+ return (EReference)constraintEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstraint_Qualifier()
+ {
+ return (EReference)constraintEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstraint_MinValue()
+ {
+ return (EReference)constraintEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstraint_MaxValue()
+ {
+ return (EReference)constraintEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIntValue()
+ {
+ return intValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIntValue_Value()
+ {
+ return (EAttribute)intValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRealValue()
+ {
+ return realValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRealValue_Value()
+ {
+ return (EAttribute)realValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMeasure()
+ {
+ return measureEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ATestFactory getATestFactory()
+ {
+ return (ATestFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ modelEClass = createEClass(MODEL);
+ createEAttribute(modelEClass, MODEL__NAME);
+ createEAttribute(modelEClass, MODEL__DESCRIPTION);
+ createEReference(modelEClass, MODEL__TESTS);
+ createEReference(modelEClass, MODEL__CONTRAINTS);
+
+ testsEClass = createEClass(TESTS);
+ createEAttribute(testsEClass, TESTS__IMPORT_URI);
+
+ constraintEClass = createEClass(CONSTRAINT);
+ createEAttribute(constraintEClass, CONSTRAINT__MEASURE);
+ createEReference(constraintEClass, CONSTRAINT__AGENT);
+ createEReference(constraintEClass, CONSTRAINT__ATTRIBUTE);
+ createEReference(constraintEClass, CONSTRAINT__QUALIFIER);
+ createEReference(constraintEClass, CONSTRAINT__MIN_VALUE);
+ createEReference(constraintEClass, CONSTRAINT__MAX_VALUE);
+
+ intValueEClass = createEClass(INT_VALUE);
+ createEAttribute(intValueEClass, INT_VALUE__VALUE);
+
+ realValueEClass = createEClass(REAL_VALUE);
+ createEAttribute(realValueEClass, REAL_VALUE__VALUE);
+
+ // Create enums
+ measureEEnum = createEEnum(MEASURE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ MetaABMPackage theMetaABMPackage = (MetaABMPackage)EPackage.Registry.INSTANCE.getEPackage(MetaABMPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModel_Name(), ecorePackage.getEString(), "name", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getModel_Description(), ecorePackage.getEString(), "description", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModel_Tests(), this.getTests(), null, "tests", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModel_Contraints(), this.getConstraint(), null, "contraints", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(testsEClass, Tests.class, "Tests", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTests_ImportURI(), ecorePackage.getEString(), "importURI", null, 0, 1, Tests.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(constraintEClass, Constraint.class, "Constraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getConstraint_Measure(), this.getMeasure(), "measure", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConstraint_Agent(), theMetaABMPackage.getSAgent(), null, "agent", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConstraint_Attribute(), theMetaABMPackage.getSAttribute(), null, "attribute", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConstraint_Qualifier(), theMetaABMPackage.getSStateValue(), null, "qualifier", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConstraint_MinValue(), ecorePackage.getEObject(), null, "minValue", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConstraint_MaxValue(), ecorePackage.getEObject(), null, "maxValue", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(intValueEClass, IntValue.class, "IntValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIntValue_Value(), ecorePackage.getEInt(), "value", null, 0, 1, IntValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(realValueEClass, RealValue.class, "RealValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getRealValue_Value(), ecorePackage.getEString(), "value", null, 0, 1, RealValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(measureEEnum, Measure.class, "Measure");
+ addEEnumLiteral(measureEEnum, Measure.COUNT);
+ addEEnumLiteral(measureEEnum, Measure.AVERAGE);
+ addEEnumLiteral(measureEEnum, Measure.SUM);
+ addEEnumLiteral(measureEEnum, Measure.MINIMUM);
+ addEEnumLiteral(measureEEnum, Measure.MAXIMUM);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //ATestPackageImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ConstraintImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ConstraintImpl.java
new file mode 100644
index 0000000..6b916f1
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ConstraintImpl.java
@@ -0,0 +1,539 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.impl;
+
+import org.eclipse.amp.amf.testing.aTest.ATestPackage;
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+import org.eclipse.amp.amf.testing.aTest.Measure;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.metaabm.SAgent;
+import org.metaabm.SAttribute;
+import org.metaabm.SStateValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl#getMeasure <em>Measure</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl#getAgent <em>Agent</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl#getAttribute <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl#getQualifier <em>Qualifier</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl#getMinValue <em>Min Value</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ConstraintImpl#getMaxValue <em>Max Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConstraintImpl extends MinimalEObjectImpl.Container implements Constraint
+{
+ /**
+ * The default value of the '{@link #getMeasure() <em>Measure</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMeasure()
+ * @generated
+ * @ordered
+ */
+ protected static final Measure MEASURE_EDEFAULT = Measure.COUNT;
+
+ /**
+ * The cached value of the '{@link #getMeasure() <em>Measure</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMeasure()
+ * @generated
+ * @ordered
+ */
+ protected Measure measure = MEASURE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAgent() <em>Agent</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAgent()
+ * @generated
+ * @ordered
+ */
+ protected SAgent agent;
+
+ /**
+ * The cached value of the '{@link #getAttribute() <em>Attribute</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAttribute()
+ * @generated
+ * @ordered
+ */
+ protected SAttribute attribute;
+
+ /**
+ * The cached value of the '{@link #getQualifier() <em>Qualifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQualifier()
+ * @generated
+ * @ordered
+ */
+ protected SStateValue qualifier;
+
+ /**
+ * The cached value of the '{@link #getMinValue() <em>Min Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinValue()
+ * @generated
+ * @ordered
+ */
+ protected EObject minValue;
+
+ /**
+ * The cached value of the '{@link #getMaxValue() <em>Max Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMaxValue()
+ * @generated
+ * @ordered
+ */
+ protected EObject maxValue;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstraintImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ATestPackage.Literals.CONSTRAINT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Measure getMeasure()
+ {
+ return measure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMeasure(Measure newMeasure)
+ {
+ Measure oldMeasure = measure;
+ measure = newMeasure == null ? MEASURE_EDEFAULT : newMeasure;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.CONSTRAINT__MEASURE, oldMeasure, measure));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SAgent getAgent()
+ {
+ if (agent != null && agent.eIsProxy())
+ {
+ InternalEObject oldAgent = (InternalEObject)agent;
+ agent = (SAgent)eResolveProxy(oldAgent);
+ if (agent != oldAgent)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ATestPackage.CONSTRAINT__AGENT, oldAgent, agent));
+ }
+ }
+ return agent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SAgent basicGetAgent()
+ {
+ return agent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAgent(SAgent newAgent)
+ {
+ SAgent oldAgent = agent;
+ agent = newAgent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.CONSTRAINT__AGENT, oldAgent, agent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SAttribute getAttribute()
+ {
+ if (attribute != null && attribute.eIsProxy())
+ {
+ InternalEObject oldAttribute = (InternalEObject)attribute;
+ attribute = (SAttribute)eResolveProxy(oldAttribute);
+ if (attribute != oldAttribute)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ATestPackage.CONSTRAINT__ATTRIBUTE, oldAttribute, attribute));
+ }
+ }
+ return attribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SAttribute basicGetAttribute()
+ {
+ return attribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttribute(SAttribute newAttribute)
+ {
+ SAttribute oldAttribute = attribute;
+ attribute = newAttribute;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.CONSTRAINT__ATTRIBUTE, oldAttribute, attribute));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SStateValue getQualifier()
+ {
+ if (qualifier != null && qualifier.eIsProxy())
+ {
+ InternalEObject oldQualifier = (InternalEObject)qualifier;
+ qualifier = (SStateValue)eResolveProxy(oldQualifier);
+ if (qualifier != oldQualifier)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ATestPackage.CONSTRAINT__QUALIFIER, oldQualifier, qualifier));
+ }
+ }
+ return qualifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SStateValue basicGetQualifier()
+ {
+ return qualifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setQualifier(SStateValue newQualifier)
+ {
+ SStateValue oldQualifier = qualifier;
+ qualifier = newQualifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.CONSTRAINT__QUALIFIER, oldQualifier, qualifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject getMinValue()
+ {
+ return minValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMinValue(EObject newMinValue, NotificationChain msgs)
+ {
+ EObject oldMinValue = minValue;
+ minValue = newMinValue;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ATestPackage.CONSTRAINT__MIN_VALUE, oldMinValue, newMinValue);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMinValue(EObject newMinValue)
+ {
+ if (newMinValue != minValue)
+ {
+ NotificationChain msgs = null;
+ if (minValue != null)
+ msgs = ((InternalEObject)minValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ATestPackage.CONSTRAINT__MIN_VALUE, null, msgs);
+ if (newMinValue != null)
+ msgs = ((InternalEObject)newMinValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ATestPackage.CONSTRAINT__MIN_VALUE, null, msgs);
+ msgs = basicSetMinValue(newMinValue, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.CONSTRAINT__MIN_VALUE, newMinValue, newMinValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject getMaxValue()
+ {
+ return maxValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMaxValue(EObject newMaxValue, NotificationChain msgs)
+ {
+ EObject oldMaxValue = maxValue;
+ maxValue = newMaxValue;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ATestPackage.CONSTRAINT__MAX_VALUE, oldMaxValue, newMaxValue);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMaxValue(EObject newMaxValue)
+ {
+ if (newMaxValue != maxValue)
+ {
+ NotificationChain msgs = null;
+ if (maxValue != null)
+ msgs = ((InternalEObject)maxValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ATestPackage.CONSTRAINT__MAX_VALUE, null, msgs);
+ if (newMaxValue != null)
+ msgs = ((InternalEObject)newMaxValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ATestPackage.CONSTRAINT__MAX_VALUE, null, msgs);
+ msgs = basicSetMaxValue(newMaxValue, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.CONSTRAINT__MAX_VALUE, newMaxValue, newMaxValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.CONSTRAINT__MIN_VALUE:
+ return basicSetMinValue(null, msgs);
+ case ATestPackage.CONSTRAINT__MAX_VALUE:
+ return basicSetMaxValue(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.CONSTRAINT__MEASURE:
+ return getMeasure();
+ case ATestPackage.CONSTRAINT__AGENT:
+ if (resolve) return getAgent();
+ return basicGetAgent();
+ case ATestPackage.CONSTRAINT__ATTRIBUTE:
+ if (resolve) return getAttribute();
+ return basicGetAttribute();
+ case ATestPackage.CONSTRAINT__QUALIFIER:
+ if (resolve) return getQualifier();
+ return basicGetQualifier();
+ case ATestPackage.CONSTRAINT__MIN_VALUE:
+ return getMinValue();
+ case ATestPackage.CONSTRAINT__MAX_VALUE:
+ return getMaxValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.CONSTRAINT__MEASURE:
+ setMeasure((Measure)newValue);
+ return;
+ case ATestPackage.CONSTRAINT__AGENT:
+ setAgent((SAgent)newValue);
+ return;
+ case ATestPackage.CONSTRAINT__ATTRIBUTE:
+ setAttribute((SAttribute)newValue);
+ return;
+ case ATestPackage.CONSTRAINT__QUALIFIER:
+ setQualifier((SStateValue)newValue);
+ return;
+ case ATestPackage.CONSTRAINT__MIN_VALUE:
+ setMinValue((EObject)newValue);
+ return;
+ case ATestPackage.CONSTRAINT__MAX_VALUE:
+ setMaxValue((EObject)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.CONSTRAINT__MEASURE:
+ setMeasure(MEASURE_EDEFAULT);
+ return;
+ case ATestPackage.CONSTRAINT__AGENT:
+ setAgent((SAgent)null);
+ return;
+ case ATestPackage.CONSTRAINT__ATTRIBUTE:
+ setAttribute((SAttribute)null);
+ return;
+ case ATestPackage.CONSTRAINT__QUALIFIER:
+ setQualifier((SStateValue)null);
+ return;
+ case ATestPackage.CONSTRAINT__MIN_VALUE:
+ setMinValue((EObject)null);
+ return;
+ case ATestPackage.CONSTRAINT__MAX_VALUE:
+ setMaxValue((EObject)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.CONSTRAINT__MEASURE:
+ return measure != MEASURE_EDEFAULT;
+ case ATestPackage.CONSTRAINT__AGENT:
+ return agent != null;
+ case ATestPackage.CONSTRAINT__ATTRIBUTE:
+ return attribute != null;
+ case ATestPackage.CONSTRAINT__QUALIFIER:
+ return qualifier != null;
+ case ATestPackage.CONSTRAINT__MIN_VALUE:
+ return minValue != null;
+ case ATestPackage.CONSTRAINT__MAX_VALUE:
+ return maxValue != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (measure: ");
+ result.append(measure);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ConstraintImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/IntValueImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/IntValueImpl.java
new file mode 100644
index 0000000..865fcbd
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/IntValueImpl.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.impl;
+
+import org.eclipse.amp.amf.testing.aTest.ATestPackage;
+import org.eclipse.amp.amf.testing.aTest.IntValue;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Int Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.IntValueImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IntValueImpl extends MinimalEObjectImpl.Container implements IntValue
+{
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IntValueImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ATestPackage.Literals.INT_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(int newValue)
+ {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.INT_VALUE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.INT_VALUE__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.INT_VALUE__VALUE:
+ setValue((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.INT_VALUE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.INT_VALUE__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //IntValueImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ModelImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ModelImpl.java
new file mode 100644
index 0000000..c2d6e25
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/ModelImpl.java
@@ -0,0 +1,371 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.impl;
+
+import java.util.Collection;
+
+import org.eclipse.amp.amf.testing.aTest.ATestPackage;
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+import org.eclipse.amp.amf.testing.aTest.Model;
+import org.eclipse.amp.amf.testing.aTest.Tests;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ModelImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ModelImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ModelImpl#getTests <em>Tests</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.ModelImpl#getContraints <em>Contraints</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelImpl extends MinimalEObjectImpl.Container implements Model
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTests() <em>Tests</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTests()
+ * @generated
+ * @ordered
+ */
+ protected Tests tests;
+
+ /**
+ * The cached value of the '{@link #getContraints() <em>Contraints</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContraints()
+ * @generated
+ * @ordered
+ */
+ protected EList<Constraint> contraints;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ATestPackage.Literals.MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.MODEL__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription()
+ {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription)
+ {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.MODEL__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tests getTests()
+ {
+ return tests;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTests(Tests newTests, NotificationChain msgs)
+ {
+ Tests oldTests = tests;
+ tests = newTests;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ATestPackage.MODEL__TESTS, oldTests, newTests);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTests(Tests newTests)
+ {
+ if (newTests != tests)
+ {
+ NotificationChain msgs = null;
+ if (tests != null)
+ msgs = ((InternalEObject)tests).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ATestPackage.MODEL__TESTS, null, msgs);
+ if (newTests != null)
+ msgs = ((InternalEObject)newTests).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ATestPackage.MODEL__TESTS, null, msgs);
+ msgs = basicSetTests(newTests, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.MODEL__TESTS, newTests, newTests));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Constraint> getContraints()
+ {
+ if (contraints == null)
+ {
+ contraints = new EObjectContainmentEList<Constraint>(Constraint.class, this, ATestPackage.MODEL__CONTRAINTS);
+ }
+ return contraints;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.MODEL__TESTS:
+ return basicSetTests(null, msgs);
+ case ATestPackage.MODEL__CONTRAINTS:
+ return ((InternalEList<?>)getContraints()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.MODEL__NAME:
+ return getName();
+ case ATestPackage.MODEL__DESCRIPTION:
+ return getDescription();
+ case ATestPackage.MODEL__TESTS:
+ return getTests();
+ case ATestPackage.MODEL__CONTRAINTS:
+ return getContraints();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.MODEL__NAME:
+ setName((String)newValue);
+ return;
+ case ATestPackage.MODEL__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case ATestPackage.MODEL__TESTS:
+ setTests((Tests)newValue);
+ return;
+ case ATestPackage.MODEL__CONTRAINTS:
+ getContraints().clear();
+ getContraints().addAll((Collection<? extends Constraint>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.MODEL__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ATestPackage.MODEL__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ATestPackage.MODEL__TESTS:
+ setTests((Tests)null);
+ return;
+ case ATestPackage.MODEL__CONTRAINTS:
+ getContraints().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.MODEL__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ATestPackage.MODEL__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case ATestPackage.MODEL__TESTS:
+ return tests != null;
+ case ATestPackage.MODEL__CONTRAINTS:
+ return contraints != null && !contraints.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", description: ");
+ result.append(description);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModelImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/RealValueImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/RealValueImpl.java
new file mode 100644
index 0000000..108ea04
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/RealValueImpl.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.impl;
+
+import org.eclipse.amp.amf.testing.aTest.ATestPackage;
+import org.eclipse.amp.amf.testing.aTest.RealValue;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Real Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.RealValueImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RealValueImpl extends MinimalEObjectImpl.Container implements RealValue
+{
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RealValueImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ATestPackage.Literals.REAL_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.REAL_VALUE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.REAL_VALUE__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.REAL_VALUE__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.REAL_VALUE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.REAL_VALUE__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RealValueImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/TestsImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/TestsImpl.java
new file mode 100644
index 0000000..2e1c493
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/impl/TestsImpl.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.impl;
+
+import org.eclipse.amp.amf.testing.aTest.ATestPackage;
+import org.eclipse.amp.amf.testing.aTest.Tests;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tests</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.aTest.impl.TestsImpl#getImportURI <em>Import URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TestsImpl extends MinimalEObjectImpl.Container implements Tests
+{
+ /**
+ * The default value of the '{@link #getImportURI() <em>Import URI</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImportURI()
+ * @generated
+ * @ordered
+ */
+ protected static final String IMPORT_URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getImportURI() <em>Import URI</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImportURI()
+ * @generated
+ * @ordered
+ */
+ protected String importURI = IMPORT_URI_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TestsImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ATestPackage.Literals.TESTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getImportURI()
+ {
+ return importURI;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImportURI(String newImportURI)
+ {
+ String oldImportURI = importURI;
+ importURI = newImportURI;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ATestPackage.TESTS__IMPORT_URI, oldImportURI, importURI));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.TESTS__IMPORT_URI:
+ return getImportURI();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.TESTS__IMPORT_URI:
+ setImportURI((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.TESTS__IMPORT_URI:
+ setImportURI(IMPORT_URI_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ATestPackage.TESTS__IMPORT_URI:
+ return IMPORT_URI_EDEFAULT == null ? importURI != null : !IMPORT_URI_EDEFAULT.equals(importURI);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (importURI: ");
+ result.append(importURI);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TestsImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/util/ATestAdapterFactory.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/util/ATestAdapterFactory.java
new file mode 100644
index 0000000..55ce88b
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/util/ATestAdapterFactory.java
@@ -0,0 +1,215 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.util;
+
+import org.eclipse.amp.amf.testing.aTest.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage
+ * @generated
+ */
+public class ATestAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ATestPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ATestAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ATestPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ATestSwitch<Adapter> modelSwitch =
+ new ATestSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseModel(Model object)
+ {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter caseTests(Tests object)
+ {
+ return createTestsAdapter();
+ }
+ @Override
+ public Adapter caseConstraint(Constraint object)
+ {
+ return createConstraintAdapter();
+ }
+ @Override
+ public Adapter caseIntValue(IntValue object)
+ {
+ return createIntValueAdapter();
+ }
+ @Override
+ public Adapter caseRealValue(RealValue object)
+ {
+ return createRealValueAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.amp.amf.testing.aTest.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.amp.amf.testing.aTest.Model
+ * @generated
+ */
+ public Adapter createModelAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.amp.amf.testing.aTest.Tests <em>Tests</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.amp.amf.testing.aTest.Tests
+ * @generated
+ */
+ public Adapter createTestsAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.amp.amf.testing.aTest.Constraint <em>Constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.amp.amf.testing.aTest.Constraint
+ * @generated
+ */
+ public Adapter createConstraintAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.amp.amf.testing.aTest.IntValue <em>Int Value</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.amp.amf.testing.aTest.IntValue
+ * @generated
+ */
+ public Adapter createIntValueAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.amp.amf.testing.aTest.RealValue <em>Real Value</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.amp.amf.testing.aTest.RealValue
+ * @generated
+ */
+ public Adapter createRealValueAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //ATestAdapterFactory
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/util/ATestSwitch.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/util/ATestSwitch.java
new file mode 100644
index 0000000..b0d30d3
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/aTest/util/ATestSwitch.java
@@ -0,0 +1,233 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.amf.testing.aTest.util;
+
+import java.util.List;
+
+import org.eclipse.amp.amf.testing.aTest.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.aTest.ATestPackage
+ * @generated
+ */
+public class ATestSwitch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ATestPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ATestSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ATestPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject)
+ {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject)
+ {
+ if (theEClass.eContainer() == modelPackage)
+ {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else
+ {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case ATestPackage.MODEL:
+ {
+ Model model = (Model)theEObject;
+ T result = caseModel(model);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ATestPackage.TESTS:
+ {
+ Tests tests = (Tests)theEObject;
+ T result = caseTests(tests);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ATestPackage.CONSTRAINT:
+ {
+ Constraint constraint = (Constraint)theEObject;
+ T result = caseConstraint(constraint);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ATestPackage.INT_VALUE:
+ {
+ IntValue intValue = (IntValue)theEObject;
+ T result = caseIntValue(intValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ATestPackage.REAL_VALUE:
+ {
+ RealValue realValue = (RealValue)theEObject;
+ T result = caseRealValue(realValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tests</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Tests</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTests(Tests object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Constraint</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Constraint</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstraint(Constraint object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Int Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Int Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIntValue(IntValue object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Real Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Real Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRealValue(RealValue object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //ATestSwitch
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parseTreeConstruction/ATestParsetreeConstructor.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parseTreeConstruction/ATestParsetreeConstructor.java
new file mode 100644
index 0000000..34e6303
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parseTreeConstruction/ATestParsetreeConstructor.java
@@ -0,0 +1,883 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.amp.amf.testing.parseTreeConstruction;
+
+import org.eclipse.emf.ecore.*;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parsetree.reconstr.IInstanceDescription;
+import org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor;
+
+import org.eclipse.amp.amf.testing.services.ATestGrammarAccess;
+
+import com.google.inject.Inject;
+
+public class ATestParsetreeConstructor extends AbstractParseTreeConstructor {
+
+ @Inject
+ private ATestGrammarAccess grammarAccess;
+
+ public ATestGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+ protected AbstractToken getRootToken(IInstanceDescription inst) {
+ return new ThisRootNode(inst);
+ }
+
+protected class ThisRootNode extends RootToken {
+ public ThisRootNode(IInstanceDescription inst) {
+ super(inst);
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Model_Group(this, this, 0, inst);
+ case 1: return new Tests_Group(this, this, 1, inst);
+ case 2: return new Constraint_Group(this, this, 2, inst);
+ case 3: return new IntValue_ValueAssignment(this, this, 3, inst);
+ case 4: return new RealValue_ValueAssignment(this, this, 4, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ begin Rule Model ****************
+ *
+ * Model:
+ * name=STRING? description=PLAIN_STRING? tests=Tests? contraints+=Constraint*;
+ *
+ **/
+
+// name=STRING? description=PLAIN_STRING? tests=Tests? contraints+=Constraint*
+protected class Model_Group extends GroupToken {
+
+ public Model_Group(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Group getGrammarElement() {
+ return grammarAccess.getModelAccess().getGroup();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Model_ContraintsAssignment_3(parent, this, 0, inst);
+ case 1: return new Model_TestsAssignment_2(parent, this, 1, inst);
+ case 2: return new Model_DescriptionAssignment_1(parent, this, 2, inst);
+ case 3: return new Model_NameAssignment_0(parent, this, 3, inst);
+ default: return null;
+ }
+ }
+
+ public IInstanceDescription tryConsume() {
+ if(!current.isInstanceOf(grammarAccess.getModelRule().getType().getClassifier())) return null;
+ return tryConsumeVal();
+ }
+}
+
+// name=STRING?
+protected class Model_NameAssignment_0 extends AssignmentToken {
+
+ public Model_NameAssignment_0(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getModelAccess().getNameAssignment_0();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ default: return parent.createParentFollower(this, index, index, inst);
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("name",false)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("name");
+ if(Boolean.TRUE.booleanValue()) { // org::eclipse::xtext::impl::RuleCallImpl FIXME: check if value is valid for lexer rule
+ type = AssignmentType.LRC;
+ element = grammarAccess.getModelAccess().getNameSTRINGTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// description=PLAIN_STRING?
+protected class Model_DescriptionAssignment_1 extends AssignmentToken {
+
+ public Model_DescriptionAssignment_1(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getModelAccess().getDescriptionAssignment_1();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Model_NameAssignment_0(parent, this, 0, inst);
+ default: return parent.createParentFollower(this, index, index - 1, inst);
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("description",false)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("description");
+ if(Boolean.TRUE.booleanValue()) { // org::eclipse::xtext::impl::RuleCallImpl FIXME: check if value is valid for lexer rule
+ type = AssignmentType.LRC;
+ element = grammarAccess.getModelAccess().getDescriptionPLAIN_STRINGTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// tests=Tests?
+protected class Model_TestsAssignment_2 extends AssignmentToken {
+
+ public Model_TestsAssignment_2(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getModelAccess().getTestsAssignment_2();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Tests_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("tests",false)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("tests");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTestsRule().getType().getClassifier())) {
+ type = AssignmentType.PRC;
+ element = grammarAccess.getModelAccess().getTestsTestsParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ public AbstractToken createParentFollower(AbstractToken next, int actIndex, int index, IInstanceDescription inst) {
+ if(value == inst.getDelegate() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Model_DescriptionAssignment_1(parent, next, actIndex, consumed);
+ case 1: return new Model_NameAssignment_0(parent, next, actIndex, consumed);
+ default: return parent.createParentFollower(next, actIndex , index - 2, consumed);
+ }
+ }
+}
+
+// contraints+=Constraint*
+protected class Model_ContraintsAssignment_3 extends AssignmentToken {
+
+ public Model_ContraintsAssignment_3(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getModelAccess().getContraintsAssignment_3();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("contraints",false)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("contraints");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConstraintRule().getType().getClassifier())) {
+ type = AssignmentType.PRC;
+ element = grammarAccess.getModelAccess().getContraintsConstraintParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ public AbstractToken createParentFollower(AbstractToken next, int actIndex, int index, IInstanceDescription inst) {
+ if(value == inst.getDelegate() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Model_ContraintsAssignment_3(parent, next, actIndex, consumed);
+ case 1: return new Model_TestsAssignment_2(parent, next, actIndex, consumed);
+ case 2: return new Model_DescriptionAssignment_1(parent, next, actIndex, consumed);
+ case 3: return new Model_NameAssignment_0(parent, next, actIndex, consumed);
+ default: return parent.createParentFollower(next, actIndex , index - 4, consumed);
+ }
+ }
+}
+
+
+/************ end Rule Model ****************/
+
+
+/************ begin Rule Tests ****************
+ *
+ * Tests:
+ * "TESTS" importURI=STRING;
+ *
+ **/
+
+// "TESTS" importURI=STRING
+protected class Tests_Group extends GroupToken {
+
+ public Tests_Group(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Group getGrammarElement() {
+ return grammarAccess.getTestsAccess().getGroup();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Tests_ImportURIAssignment_1(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ public IInstanceDescription tryConsume() {
+ if(!current.isInstanceOf(grammarAccess.getTestsRule().getType().getClassifier())) return null;
+ return tryConsumeVal();
+ }
+}
+
+// "TESTS"
+protected class Tests_TESTSKeyword_0 extends KeywordToken {
+
+ public Tests_TESTSKeyword_0(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTestsAccess().getTESTSKeyword_0();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ default: return parent.createParentFollower(this, index, index, inst);
+ }
+ }
+
+}
+
+// importURI=STRING
+protected class Tests_ImportURIAssignment_1 extends AssignmentToken {
+
+ public Tests_ImportURIAssignment_1(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTestsAccess().getImportURIAssignment_1();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Tests_TESTSKeyword_0(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("importURI",true)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("importURI");
+ if(Boolean.TRUE.booleanValue()) { // org::eclipse::xtext::impl::RuleCallImpl FIXME: check if value is valid for lexer rule
+ type = AssignmentType.LRC;
+ element = grammarAccess.getTestsAccess().getImportURISTRINGTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule Tests ****************/
+
+
+/************ begin Rule Constraint ****************
+ *
+ * Constraint:
+ * measure=Measure "(" agent=[SAgent|STRING] ":" attribute=[SAttribute|STRING] (":"
+ * qualifier=[SStateValue|STRING])? ")" ("=" "[" minValue=( IntValue | RealValue ) ","
+ * maxValue=( IntValue | RealValue ) "]");
+ *
+ **/
+
+// measure=Measure "(" agent=[SAgent|STRING] ":" attribute=[SAttribute|STRING] (":"
+// qualifier=[SStateValue|STRING])? ")" ("=" "[" minValue=( IntValue | RealValue ) ","
+// maxValue=( IntValue | RealValue ) "]")
+protected class Constraint_Group extends GroupToken {
+
+ public Constraint_Group(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Group getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getGroup();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_Group_7(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ public IInstanceDescription tryConsume() {
+ if(!current.isInstanceOf(grammarAccess.getConstraintRule().getType().getClassifier())) return null;
+ return tryConsumeVal();
+ }
+}
+
+// measure=Measure
+protected class Constraint_MeasureAssignment_0 extends AssignmentToken {
+
+ public Constraint_MeasureAssignment_0(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getMeasureAssignment_0();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ default: return parent.createParentFollower(this, index, index, inst);
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("measure",true)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("measure");
+ if(Boolean.TRUE.booleanValue()) { // org::eclipse::xtext::impl::RuleCallImpl FIXME: check if value is valid for datatype rule
+ type = AssignmentType.ERC;
+ element = grammarAccess.getConstraintAccess().getMeasureMeasureEnumRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "("
+protected class Constraint_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public Constraint_LeftParenthesisKeyword_1(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_1();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_MeasureAssignment_0(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// agent=[SAgent|STRING]
+protected class Constraint_AgentAssignment_2 extends AssignmentToken {
+
+ public Constraint_AgentAssignment_2(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getAgentAssignment_2();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_LeftParenthesisKeyword_1(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("agent",true)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("agent");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConstraintAccess().getAgentSAgentCrossReference_2_0().getType().getClassifier())) {
+ type = AssignmentType.CR;
+ element = grammarAccess.getConstraintAccess().getAgentSAgentCrossReference_2_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+// ":"
+protected class Constraint_ColonKeyword_3 extends KeywordToken {
+
+ public Constraint_ColonKeyword_3(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getColonKeyword_3();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_AgentAssignment_2(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// attribute=[SAttribute|STRING]
+protected class Constraint_AttributeAssignment_4 extends AssignmentToken {
+
+ public Constraint_AttributeAssignment_4(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getAttributeAssignment_4();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_ColonKeyword_3(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("attribute",true)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("attribute");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConstraintAccess().getAttributeSAttributeCrossReference_4_0().getType().getClassifier())) {
+ type = AssignmentType.CR;
+ element = grammarAccess.getConstraintAccess().getAttributeSAttributeCrossReference_4_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+// (":" qualifier=[SStateValue|STRING])?
+protected class Constraint_Group_5 extends GroupToken {
+
+ public Constraint_Group_5(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Group getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getGroup_5();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_QualifierAssignment_5_1(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ":"
+protected class Constraint_ColonKeyword_5_0 extends KeywordToken {
+
+ public Constraint_ColonKeyword_5_0(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getColonKeyword_5_0();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_AttributeAssignment_4(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// qualifier=[SStateValue|STRING]
+protected class Constraint_QualifierAssignment_5_1 extends AssignmentToken {
+
+ public Constraint_QualifierAssignment_5_1(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getQualifierAssignment_5_1();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_ColonKeyword_5_0(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("qualifier",false)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("qualifier");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConstraintAccess().getQualifierSStateValueCrossReference_5_1_0().getType().getClassifier())) {
+ type = AssignmentType.CR;
+ element = grammarAccess.getConstraintAccess().getQualifierSStateValueCrossReference_5_1_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+
+// ")"
+protected class Constraint_RightParenthesisKeyword_6 extends KeywordToken {
+
+ public Constraint_RightParenthesisKeyword_6(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getRightParenthesisKeyword_6();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_Group_5(parent, this, 0, inst);
+ case 1: return new Constraint_AttributeAssignment_4(parent, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "=" "[" minValue=( IntValue | RealValue ) "," maxValue=( IntValue | RealValue ) "]"
+protected class Constraint_Group_7 extends GroupToken {
+
+ public Constraint_Group_7(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Group getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getGroup_7();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_RightSquareBracketKeyword_7_5(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "="
+protected class Constraint_EqualsSignKeyword_7_0 extends KeywordToken {
+
+ public Constraint_EqualsSignKeyword_7_0(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getEqualsSignKeyword_7_0();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_RightParenthesisKeyword_6(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "["
+protected class Constraint_LeftSquareBracketKeyword_7_1 extends KeywordToken {
+
+ public Constraint_LeftSquareBracketKeyword_7_1(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getLeftSquareBracketKeyword_7_1();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_EqualsSignKeyword_7_0(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// minValue=( IntValue | RealValue )
+protected class Constraint_MinValueAssignment_7_2 extends AssignmentToken {
+
+ public Constraint_MinValueAssignment_7_2(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getMinValueAssignment_7_2();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new IntValue_ValueAssignment(this, this, 0, inst);
+ case 1: return new RealValue_ValueAssignment(this, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("minValue",true)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("minValue");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIntValueRule().getType().getClassifier())) {
+ type = AssignmentType.PRC;
+ element = grammarAccess.getConstraintAccess().getMinValueIntValueParserRuleCall_7_2_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getRealValueRule().getType().getClassifier())) {
+ type = AssignmentType.PRC;
+ element = grammarAccess.getConstraintAccess().getMinValueRealValueParserRuleCall_7_2_0_1();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ public AbstractToken createParentFollower(AbstractToken next, int actIndex, int index, IInstanceDescription inst) {
+ if(value == inst.getDelegate() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Constraint_LeftSquareBracketKeyword_7_1(parent, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ","
+protected class Constraint_CommaKeyword_7_3 extends KeywordToken {
+
+ public Constraint_CommaKeyword_7_3(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getCommaKeyword_7_3();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_MinValueAssignment_7_2(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// maxValue=( IntValue | RealValue )
+protected class Constraint_MaxValueAssignment_7_4 extends AssignmentToken {
+
+ public Constraint_MaxValueAssignment_7_4(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getMaxValueAssignment_7_4();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new IntValue_ValueAssignment(this, this, 0, inst);
+ case 1: return new RealValue_ValueAssignment(this, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("maxValue",true)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("maxValue");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIntValueRule().getType().getClassifier())) {
+ type = AssignmentType.PRC;
+ element = grammarAccess.getConstraintAccess().getMaxValueIntValueParserRuleCall_7_4_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IInstanceDescription param = getDescr((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getRealValueRule().getType().getClassifier())) {
+ type = AssignmentType.PRC;
+ element = grammarAccess.getConstraintAccess().getMaxValueRealValueParserRuleCall_7_4_0_1();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ public AbstractToken createParentFollower(AbstractToken next, int actIndex, int index, IInstanceDescription inst) {
+ if(value == inst.getDelegate() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Constraint_CommaKeyword_7_3(parent, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "]"
+protected class Constraint_RightSquareBracketKeyword_7_5 extends KeywordToken {
+
+ public Constraint_RightSquareBracketKeyword_7_5(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConstraintAccess().getRightSquareBracketKeyword_7_5();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ case 0: return new Constraint_MaxValueAssignment_7_4(parent, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+/************ end Rule Constraint ****************/
+
+
+/************ begin Rule IntValue ****************
+ *
+ * IntValue:
+ * value=INT;
+ *
+ **/
+
+// value=INT
+protected class IntValue_ValueAssignment extends AssignmentToken {
+
+ public IntValue_ValueAssignment(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIntValueAccess().getValueAssignment();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ default: return parent.createParentFollower(this, index, index, inst);
+ }
+ }
+
+ public IInstanceDescription tryConsume() {
+ if(!current.isInstanceOf(grammarAccess.getIntValueRule().getType().getClassifier())) return null;
+ return tryConsumeVal();
+ }
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("value",true)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("value");
+ if(Boolean.TRUE.booleanValue()) { // org::eclipse::xtext::impl::RuleCallImpl FIXME: check if value is valid for lexer rule
+ type = AssignmentType.LRC;
+ element = grammarAccess.getIntValueAccess().getValueINTTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule IntValue ****************/
+
+
+/************ begin Rule RealValue ****************
+ *
+ * RealValue:
+ * value=REAL;
+ *
+ **/
+
+// value=REAL
+protected class RealValue_ValueAssignment extends AssignmentToken {
+
+ public RealValue_ValueAssignment(AbstractToken parent, AbstractToken next, int no, IInstanceDescription current) {
+ super(parent, next, no, current);
+ }
+
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRealValueAccess().getValueAssignment();
+ }
+
+ public AbstractToken createFollower(int index, IInstanceDescription inst) {
+ switch(index) {
+ default: return parent.createParentFollower(this, index, index, inst);
+ }
+ }
+
+ public IInstanceDescription tryConsume() {
+ if(!current.isInstanceOf(grammarAccess.getRealValueRule().getType().getClassifier())) return null;
+ return tryConsumeVal();
+ }
+ protected IInstanceDescription tryConsumeVal() {
+ if((value = current.getConsumable("value",true)) == null) return null;
+ IInstanceDescription obj = current.cloneAndConsume("value");
+ if(Boolean.TRUE.booleanValue()) { // org::eclipse::xtext::impl::RuleCallImpl FIXME: check if value is valid for lexer rule
+ type = AssignmentType.LRC;
+ element = grammarAccess.getRealValueAccess().getValueREALTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule RealValue ****************/
+
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/ATestAntlrTokenFileProvider.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/ATestAntlrTokenFileProvider.java
new file mode 100644
index 0000000..f27e4f4
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/ATestAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.amp.amf.testing.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class ATestAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.tokens");
+ }
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/ATestParser.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/ATestParser.java
new file mode 100644
index 0000000..3669375
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/ATestParser.java
@@ -0,0 +1,53 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.amp.amf.testing.parser.antlr;
+
+import org.antlr.runtime.ANTLRInputStream;
+import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
+import org.eclipse.xtext.parser.IParseResult;
+import org.eclipse.xtext.parser.ParseException;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+
+import com.google.inject.Inject;
+
+import org.eclipse.amp.amf.testing.services.ATestGrammarAccess;
+
+public class ATestParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ protected ITokenDefProvider antlrTokenDefProvider;
+
+ @Inject
+ private ATestGrammarAccess grammarAccess;
+
+ @Override
+ protected IParseResult parse(String ruleName, ANTLRInputStream in) {
+ org.eclipse.amp.amf.testing.parser.antlr.internal.InternalATestLexer lexer = new org.eclipse.amp.amf.testing.parser.antlr.internal.InternalATestLexer(in);
+ XtextTokenStream stream = new XtextTokenStream(lexer, antlrTokenDefProvider);
+ stream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ org.eclipse.amp.amf.testing.parser.antlr.internal.InternalATestParser parser = new org.eclipse.amp.amf.testing.parser.antlr.internal.InternalATestParser(
+ stream, getElementFactory(), grammarAccess);
+ parser.setTokenTypeMap(antlrTokenDefProvider.getTokenDefMap());
+ try {
+ if(ruleName != null)
+ return parser.parse(ruleName);
+ return parser.parse();
+ } catch (Exception re) {
+ throw new ParseException(re.getMessage(),re);
+ }
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Model";
+ }
+
+ public ATestGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(ATestGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g
new file mode 100644
index 0000000..7abe17c
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g
@@ -0,0 +1,541 @@
+/*
+* generated by Xtext
+*/
+grammar InternalATest;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.amp.amf.testing.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.amp.amf.testing.parser.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.xtext.parsetree.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.xtext.conversion.ValueConverterException;
+import org.eclipse.amp.amf.testing.services.ATestGrammarAccess;
+
+}
+
+@parser::members {
+
+ private ATestGrammarAccess grammarAccess;
+
+ public InternalATestParser(TokenStream input, IAstFactory factory, ATestGrammarAccess grammarAccess) {
+ this(input);
+ this.factory = factory;
+ registerRules(grammarAccess.getGrammar());
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected InputStream getTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.tokens");
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Model";
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleModel
+entryRuleModel returns [EObject current=null] :
+ { currentNode = createCompositeNode(grammarAccess.getModelRule(), currentNode); }
+ iv_ruleModel=ruleModel
+ { $current=$iv_ruleModel.current; }
+ EOF
+;
+
+// Rule Model
+ruleModel returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+
+ lv_name_0= RULE_STRING
+ {
+ createLeafNode(grammarAccess.getModelAccess().getNameSTRINGTerminalRuleCall_0_0(), "name");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "name", lv_name_0, "STRING", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)?(
+
+ lv_description_1= RULE_PLAIN_STRING
+ {
+ createLeafNode(grammarAccess.getModelAccess().getDescriptionPLAIN_STRINGTerminalRuleCall_1_0(), "description");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "description", lv_description_1, "PLAIN_STRING", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)?(
+
+
+ {
+ currentNode=createCompositeNode(grammarAccess.getModelAccess().getTestsTestsParserRuleCall_2_0(), currentNode);
+ }
+ lv_tests_2=ruleTests
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ set($current, "tests", lv_tests_2, "Tests", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)?(
+
+
+ {
+ currentNode=createCompositeNode(grammarAccess.getModelAccess().getContraintsConstraintParserRuleCall_3_0(), currentNode);
+ }
+ lv_contraints_3=ruleConstraint
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ add($current, "contraints", lv_contraints_3, "Constraint", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)*);
+
+
+
+
+
+// Entry rule entryRuleTests
+entryRuleTests returns [EObject current=null] :
+ { currentNode = createCompositeNode(grammarAccess.getTestsRule(), currentNode); }
+ iv_ruleTests=ruleTests
+ { $current=$iv_ruleTests.current; }
+ EOF
+;
+
+// Rule Tests
+ruleTests returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+('TESTS'
+ {
+ createLeafNode(grammarAccess.getTestsAccess().getTESTSKeyword_0(), null);
+ }
+(
+
+ lv_importURI_1= RULE_STRING
+ {
+ createLeafNode(grammarAccess.getTestsAccess().getImportURISTRINGTerminalRuleCall_1_0(), "importURI");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTestsRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "importURI", lv_importURI_1, "STRING", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+));
+
+
+
+
+
+// Entry rule entryRuleConstraint
+entryRuleConstraint returns [EObject current=null] :
+ { currentNode = createCompositeNode(grammarAccess.getConstraintRule(), currentNode); }
+ iv_ruleConstraint=ruleConstraint
+ { $current=$iv_ruleConstraint.current; }
+ EOF
+;
+
+// Rule Constraint
+ruleConstraint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+
+
+ {
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMeasureMeasureEnumRuleCall_0_0(), currentNode);
+ }
+ lv_measure_0=ruleMeasure
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ set($current, "measure", lv_measure_0, "Measure", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)'('
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_1(), null);
+ }
+(
+
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_STRING
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getAgentSAgentCrossReference_2_0(), "agent");
+ }
+
+ // TODO assign feature to currentNode
+
+)':'
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getColonKeyword_3(), null);
+ }
+(
+
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_STRING
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getAttributeSAttributeCrossReference_4_0(), "attribute");
+ }
+
+ // TODO assign feature to currentNode
+
+)(':'
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getColonKeyword_5_0(), null);
+ }
+(
+
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_STRING
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getQualifierSStateValueCrossReference_5_1_0(), "qualifier");
+ }
+
+ // TODO assign feature to currentNode
+
+))?')'
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getRightParenthesisKeyword_6(), null);
+ }
+('='
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getEqualsSignKeyword_7_0(), null);
+ }
+'['
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getLeftSquareBracketKeyword_7_1(), null);
+ }
+(
+
+ lv_minValue_10=( {
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMinValueIntValueParserRuleCall_7_2_0_0(), currentNode);
+ }
+ ruleIntValue {
+ currentNode = currentNode.getParent();
+ }
+
+ | {
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMinValueRealValueParserRuleCall_7_2_0_1(), currentNode);
+ }
+ ruleRealValue {
+ currentNode = currentNode.getParent();
+ }
+)
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "minValue", lv_minValue_10, null, lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)','
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getCommaKeyword_7_3(), null);
+ }
+(
+
+ lv_maxValue_12=( {
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMaxValueIntValueParserRuleCall_7_4_0_0(), currentNode);
+ }
+ ruleIntValue {
+ currentNode = currentNode.getParent();
+ }
+
+ | {
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMaxValueRealValueParserRuleCall_7_4_0_1(), currentNode);
+ }
+ ruleRealValue {
+ currentNode = currentNode.getParent();
+ }
+)
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "maxValue", lv_maxValue_12, null, lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)']'
+ {
+ createLeafNode(grammarAccess.getConstraintAccess().getRightSquareBracketKeyword_7_5(), null);
+ }
+));
+
+
+
+
+
+// Entry rule entryRuleIntValue
+entryRuleIntValue returns [EObject current=null] :
+ { currentNode = createCompositeNode(grammarAccess.getIntValueRule(), currentNode); }
+ iv_ruleIntValue=ruleIntValue
+ { $current=$iv_ruleIntValue.current; }
+ EOF
+;
+
+// Rule IntValue
+ruleIntValue returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+
+ lv_value_0= RULE_INT
+ {
+ createLeafNode(grammarAccess.getIntValueAccess().getValueINTTerminalRuleCall_0(), "value");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getIntValueRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "value", lv_value_0, "INT", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+);
+
+
+
+
+
+// Entry rule entryRuleRealValue
+entryRuleRealValue returns [EObject current=null] :
+ { currentNode = createCompositeNode(grammarAccess.getRealValueRule(), currentNode); }
+ iv_ruleRealValue=ruleRealValue
+ { $current=$iv_ruleRealValue.current; }
+ EOF
+;
+
+// Rule RealValue
+ruleRealValue returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+
+ lv_value_0= RULE_REAL
+ {
+ createLeafNode(grammarAccess.getRealValueAccess().getValueREALTerminalRuleCall_0(), "value");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRealValueRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "value", lv_value_0, "REAL", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+);
+
+
+
+
+
+// Rule Measure
+ruleMeasure returns [Enumerator current=null]
+ @init { setCurrentLookahead(); resetLookahead(); }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(( 'Count'
+ {
+ $current = grammarAccess.getMeasureAccess().getCOUNTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getCOUNTEnumLiteralDeclaration_0(), null);
+ }
+)
+ |( 'Average'
+ {
+ $current = grammarAccess.getMeasureAccess().getAVERAGEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getAVERAGEEnumLiteralDeclaration_1(), null);
+ }
+)
+ |( 'Sum'
+ {
+ $current = grammarAccess.getMeasureAccess().getSUMEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getSUMEnumLiteralDeclaration_2(), null);
+ }
+)
+ |( 'Minimum'
+ {
+ $current = grammarAccess.getMeasureAccess().getMINIMUMEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getMINIMUMEnumLiteralDeclaration_3(), null);
+ }
+)
+ |( 'Maximum'
+ {
+ $current = grammarAccess.getMeasureAccess().getMAXIMUMEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getMAXIMUMEnumLiteralDeclaration_4(), null);
+ }
+));
+
+
+
+RULE_REAL : '-'? RULE_INT ('.' RULE_INT)?;
+
+RULE_PLAIN_STRING : '\u00AB' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'\u00AB'|'\u00BB')))* '\u00BB';
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.tokens b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.tokens
new file mode 100644
index 0000000..f43e983
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.tokens
@@ -0,0 +1,22 @@
+RULE_PLAIN_STRING=5
+RULE_ID=8
+RULE_STRING=4
+RULE_ANY_OTHER=12
+RULE_INT=6
+RULE_REAL=7
+RULE_WS=11
+RULE_SL_COMMENT=10
+RULE_ML_COMMENT=9
+'Count'=21
+'Minimum'=24
+'TESTS'=13
+'='=17
+'('=14
+':'=15
+'['=18
+'Sum'=23
+','=19
+')'=16
+'Average'=22
+']'=20
+'Maximum'=25
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATestLexer.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATestLexer.java
new file mode 100644
index 0000000..fc950cb
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATestLexer.java
@@ -0,0 +1,1223 @@
+package org.eclipse.amp.amf.testing.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+public class InternalATestLexer extends Lexer {
+ public static final int RULE_ID=8;
+ public static final int RULE_ANY_OTHER=12;
+ public static final int T25=25;
+ public static final int Tokens=26;
+ public static final int T24=24;
+ public static final int EOF=-1;
+ public static final int RULE_SL_COMMENT=10;
+ public static final int T23=23;
+ public static final int T22=22;
+ public static final int T21=21;
+ public static final int T20=20;
+ public static final int RULE_ML_COMMENT=9;
+ public static final int RULE_PLAIN_STRING=5;
+ public static final int RULE_STRING=4;
+ public static final int RULE_INT=6;
+ public static final int RULE_REAL=7;
+ public static final int T13=13;
+ public static final int T14=14;
+ public static final int RULE_WS=11;
+ public static final int T15=15;
+ public static final int T16=16;
+ public static final int T17=17;
+ public static final int T18=18;
+ public static final int T19=19;
+ public InternalATestLexer() {;}
+ public InternalATestLexer(CharStream input) {
+ super(input);
+ }
+ public String getGrammarFileName() { return "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g"; }
+
+ // $ANTLR start T13
+ public final void mT13() throws RecognitionException {
+ try {
+ int _type = T13;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:10:5: ( 'TESTS' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:10:7: 'TESTS'
+ {
+ match("TESTS");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T13
+
+ // $ANTLR start T14
+ public final void mT14() throws RecognitionException {
+ try {
+ int _type = T14;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:11:5: ( '(' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:11:7: '('
+ {
+ match('(');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T14
+
+ // $ANTLR start T15
+ public final void mT15() throws RecognitionException {
+ try {
+ int _type = T15;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:12:5: ( ':' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:12:7: ':'
+ {
+ match(':');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T15
+
+ // $ANTLR start T16
+ public final void mT16() throws RecognitionException {
+ try {
+ int _type = T16;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:13:5: ( ')' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:13:7: ')'
+ {
+ match(')');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T16
+
+ // $ANTLR start T17
+ public final void mT17() throws RecognitionException {
+ try {
+ int _type = T17;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:14:5: ( '=' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:14:7: '='
+ {
+ match('=');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T17
+
+ // $ANTLR start T18
+ public final void mT18() throws RecognitionException {
+ try {
+ int _type = T18;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:15:5: ( '[' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:15:7: '['
+ {
+ match('[');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T18
+
+ // $ANTLR start T19
+ public final void mT19() throws RecognitionException {
+ try {
+ int _type = T19;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:16:5: ( ',' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:16:7: ','
+ {
+ match(',');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T19
+
+ // $ANTLR start T20
+ public final void mT20() throws RecognitionException {
+ try {
+ int _type = T20;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:17:5: ( ']' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:17:7: ']'
+ {
+ match(']');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T20
+
+ // $ANTLR start T21
+ public final void mT21() throws RecognitionException {
+ try {
+ int _type = T21;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:18:5: ( 'Count' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:18:7: 'Count'
+ {
+ match("Count");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T21
+
+ // $ANTLR start T22
+ public final void mT22() throws RecognitionException {
+ try {
+ int _type = T22;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:19:5: ( 'Average' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:19:7: 'Average'
+ {
+ match("Average");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T22
+
+ // $ANTLR start T23
+ public final void mT23() throws RecognitionException {
+ try {
+ int _type = T23;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:20:5: ( 'Sum' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:20:7: 'Sum'
+ {
+ match("Sum");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T23
+
+ // $ANTLR start T24
+ public final void mT24() throws RecognitionException {
+ try {
+ int _type = T24;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:21:5: ( 'Minimum' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:21:7: 'Minimum'
+ {
+ match("Minimum");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T24
+
+ // $ANTLR start T25
+ public final void mT25() throws RecognitionException {
+ try {
+ int _type = T25;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:22:5: ( 'Maximum' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:22:7: 'Maximum'
+ {
+ match("Maximum");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T25
+
+ // $ANTLR start RULE_REAL
+ public final void mRULE_REAL() throws RecognitionException {
+ try {
+ int _type = RULE_REAL;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:523:11: ( ( '-' )? RULE_INT ( '.' RULE_INT )? )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:523:13: ( '-' )? RULE_INT ( '.' RULE_INT )?
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:523:13: ( '-' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='-') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:523:13: '-'
+ {
+ match('-');
+
+ }
+ break;
+
+ }
+
+ mRULE_INT();
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:523:27: ( '.' RULE_INT )?
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0=='.') ) {
+ alt2=1;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:523:28: '.' RULE_INT
+ {
+ match('.');
+ mRULE_INT();
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_REAL
+
+ // $ANTLR start RULE_PLAIN_STRING
+ public final void mRULE_PLAIN_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_PLAIN_STRING;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:525:19: ( '\\u00AB' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\u00AB' | '\\u00BB' ) ) )* '\\u00BB' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:525:21: '\\u00AB' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\u00AB' | '\\u00BB' ) ) )* '\\u00BB'
+ {
+ match('\u00AB');
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:525:30: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\u00AB' | '\\u00BB' ) ) )*
+ loop3:
+ do {
+ int alt3=3;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='\\') ) {
+ alt3=1;
+ }
+ else if ( ((LA3_0>='\u0000' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\u00AA')||(LA3_0>='\u00AC' && LA3_0<='\u00BA')||(LA3_0>='\u00BC' && LA3_0<='\uFFFE')) ) {
+ alt3=2;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:525:31: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:525:72: ~ ( ( '\\\\' | '\\u00AB' | '\\u00BB' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\u00AA')||(input.LA(1)>='\u00AC' && input.LA(1)<='\u00BA')||(input.LA(1)>='\u00BC' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+ match('\u00BB');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_PLAIN_STRING
+
+ // $ANTLR start RULE_ID
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:527:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:527:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:527:11: ( '^' )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='^') ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:527:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:527:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( ((LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='Z')||LA5_0=='_'||(LA5_0>='a' && LA5_0<='z')) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_ID
+
+ // $ANTLR start RULE_INT
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:529:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:529:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:529:12: ( '0' .. '9' )+
+ int cnt6=0;
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( ((LA6_0>='0' && LA6_0<='9')) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:529:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt6 >= 1 ) break loop6;
+ EarlyExitException eee =
+ new EarlyExitException(6, input);
+ throw eee;
+ }
+ cnt6++;
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_INT
+
+ // $ANTLR start RULE_STRING
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\"') ) {
+ alt9=1;
+ }
+ else if ( (LA9_0=='\'') ) {
+ alt9=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("531:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop7:
+ do {
+ int alt7=3;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='\\') ) {
+ alt7=1;
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<='!')||(LA7_0>='#' && LA7_0<='[')||(LA7_0>=']' && LA7_0<='\uFFFE')) ) {
+ alt7=2;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:62: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:82: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:87: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop8:
+ do {
+ int alt8=3;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='\\') ) {
+ alt8=1;
+ }
+ else if ( ((LA8_0>='\u0000' && LA8_0<='&')||(LA8_0>='(' && LA8_0<='[')||(LA8_0>=']' && LA8_0<='\uFFFE')) ) {
+ alt8=2;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:88: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:531:129: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_STRING
+
+ // $ANTLR start RULE_ML_COMMENT
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:533:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:533:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:533:24: ( options {greedy=false; } : . )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='*') ) {
+ int LA10_1 = input.LA(2);
+
+ if ( (LA10_1=='/') ) {
+ alt10=2;
+ }
+ else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFE')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFE')) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:533:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_ML_COMMENT
+
+ // $ANTLR start RULE_SL_COMMENT
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:535:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:535:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:535:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\u0000' && LA11_0<='\t')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\uFFFE')) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:535:24: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:535:40: ( ( '\\r' )? '\\n' )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='\n'||LA13_0=='\r') ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:535:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:535:41: ( '\\r' )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0=='\r') ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:535:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_SL_COMMENT
+
+ // $ANTLR start RULE_WS
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:537:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:537:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:537:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt14=0;
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( ((LA14_0>='\t' && LA14_0<='\n')||LA14_0=='\r'||LA14_0==' ') ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt14 >= 1 ) break loop14;
+ EarlyExitException eee =
+ new EarlyExitException(14, input);
+ throw eee;
+ }
+ cnt14++;
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_WS
+
+ // $ANTLR start RULE_ANY_OTHER
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:539:16: ( . )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:539:18: .
+ {
+ matchAny();
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_ANY_OTHER
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:8: ( T13 | T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | T23 | T24 | T25 | RULE_REAL | RULE_PLAIN_STRING | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt15=22;
+ alt15 = dfa15.predict(input);
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:10: T13
+ {
+ mT13();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:14: T14
+ {
+ mT14();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:18: T15
+ {
+ mT15();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:22: T16
+ {
+ mT16();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:26: T17
+ {
+ mT17();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:30: T18
+ {
+ mT18();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:34: T19
+ {
+ mT19();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:38: T20
+ {
+ mT20();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:42: T21
+ {
+ mT21();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:46: T22
+ {
+ mT22();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:50: T23
+ {
+ mT23();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:54: T24
+ {
+ mT24();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:58: T25
+ {
+ mT25();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:62: RULE_REAL
+ {
+ mRULE_REAL();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:72: RULE_PLAIN_STRING
+ {
+ mRULE_PLAIN_STRING();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:90: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:98: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:107: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:119: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:135: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 21 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:151: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 22 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:1:159: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA15 dfa15 = new DFA15(this);
+ static final String DFA15_eotS =
+ "\1\uffff\1\30\7\uffff\4\30\1\26\1\45\2\26\1\uffff\3\26\2\uffff\1"+
+ "\30\10\uffff\5\30\1\uffff\1\45\5\uffff\3\30\1\65\5\30\1\uffff\2"+
+ "\30\1\75\1\76\3\30\2\uffff\3\30\1\105\1\106\1\107\3\uffff";
+ static final String DFA15_eofS =
+ "\110\uffff";
+ static final String DFA15_minS =
+ "\1\0\1\105\7\uffff\1\157\1\166\1\165\1\141\2\60\1\0\1\101\1\uffff"+
+ "\2\0\1\52\2\uffff\1\123\10\uffff\1\165\1\145\1\155\1\170\1\156\1"+
+ "\uffff\1\60\5\uffff\1\124\1\156\1\162\1\60\2\151\1\123\1\164\1\141"+
+ "\1\uffff\2\155\2\60\1\147\2\165\2\uffff\1\145\2\155\3\60\3\uffff";
+ static final String DFA15_maxS =
+ "\1\ufffe\1\105\7\uffff\1\157\1\166\1\165\1\151\2\71\1\ufffe\1\172"+
+ "\1\uffff\2\ufffe\1\57\2\uffff\1\123\10\uffff\1\165\1\145\1\155\1"+
+ "\170\1\156\1\uffff\1\71\5\uffff\1\124\1\156\1\162\1\172\2\151\1"+
+ "\123\1\164\1\141\1\uffff\2\155\2\172\1\147\2\165\2\uffff\1\145\2"+
+ "\155\3\172\3\uffff";
+ static final String DFA15_acceptS =
+ "\2\uffff\1\2\1\3\1\4\1\5\1\6\1\7\1\10\10\uffff\1\20\3\uffff\1\25"+
+ "\1\26\1\uffff\1\20\1\2\1\3\1\4\1\5\1\6\1\7\1\10\5\uffff\1\16\1\uffff"+
+ "\1\17\1\22\1\23\1\24\1\25\11\uffff\1\13\7\uffff\1\1\1\11\6\uffff"+
+ "\1\12\1\15\1\14";
+ static final String DFA15_specialS =
+ "\110\uffff}>";
+ static final String[] DFA15_transitionS = {
+ "\11\26\2\25\2\26\1\25\22\26\1\25\1\26\1\22\4\26\1\23\1\2\1\4"+
+ "\2\26\1\7\1\15\1\26\1\24\12\16\1\3\2\26\1\5\3\26\1\12\1\21\1"+
+ "\11\11\21\1\14\5\21\1\13\1\1\6\21\1\6\1\26\1\10\1\20\1\21\1"+
+ "\26\32\21\60\26\1\17\uff53\26",
+ "\1\27",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\40",
+ "\1\41",
+ "\1\42",
+ "\1\43\7\uffff\1\44",
+ "\12\45",
+ "\12\46",
+ "\u00ab\47\1\uffff\uff53\47",
+ "\32\30\4\uffff\1\30\1\uffff\32\30",
+ "",
+ "\uffff\50",
+ "\uffff\50",
+ "\1\51\4\uffff\1\52",
+ "",
+ "",
+ "\1\54",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\55",
+ "\1\56",
+ "\1\57",
+ "\1\60",
+ "\1\61",
+ "",
+ "\12\46",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\62",
+ "\1\63",
+ "\1\64",
+ "\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
+ "\1\66",
+ "\1\67",
+ "\1\70",
+ "\1\71",
+ "\1\72",
+ "",
+ "\1\73",
+ "\1\74",
+ "\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
+ "\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
+ "\1\77",
+ "\1\100",
+ "\1\101",
+ "",
+ "",
+ "\1\102",
+ "\1\103",
+ "\1\104",
+ "\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
+ "\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
+ "\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA15_eot = DFA.unpackEncodedString(DFA15_eotS);
+ static final short[] DFA15_eof = DFA.unpackEncodedString(DFA15_eofS);
+ static final char[] DFA15_min = DFA.unpackEncodedStringToUnsignedChars(DFA15_minS);
+ static final char[] DFA15_max = DFA.unpackEncodedStringToUnsignedChars(DFA15_maxS);
+ static final short[] DFA15_accept = DFA.unpackEncodedString(DFA15_acceptS);
+ static final short[] DFA15_special = DFA.unpackEncodedString(DFA15_specialS);
+ static final short[][] DFA15_transition;
+
+ static {
+ int numStates = DFA15_transitionS.length;
+ DFA15_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA15_transition[i] = DFA.unpackEncodedString(DFA15_transitionS[i]);
+ }
+ }
+
+ class DFA15 extends DFA {
+
+ public DFA15(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 15;
+ this.eot = DFA15_eot;
+ this.eof = DFA15_eof;
+ this.min = DFA15_min;
+ this.max = DFA15_max;
+ this.accept = DFA15_accept;
+ this.special = DFA15_special;
+ this.transition = DFA15_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T13 | T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | T23 | T24 | T25 | RULE_REAL | RULE_PLAIN_STRING | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATestParser.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATestParser.java
new file mode 100644
index 0000000..5e784e9
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATestParser.java
@@ -0,0 +1,1119 @@
+package org.eclipse.amp.amf.testing.parser.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.xtext.parsetree.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.xtext.conversion.ValueConverterException;
+import org.eclipse.amp.amf.testing.services.ATestGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+public class InternalATestParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_PLAIN_STRING", "RULE_INT", "RULE_REAL", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'TESTS'", "'('", "':'", "')'", "'='", "'['", "','", "']'", "'Count'", "'Average'", "'Sum'", "'Minimum'", "'Maximum'"
+ };
+ public static final int RULE_PLAIN_STRING=5;
+ public static final int RULE_ID=8;
+ public static final int RULE_STRING=4;
+ public static final int RULE_ANY_OTHER=12;
+ public static final int RULE_INT=6;
+ public static final int RULE_REAL=7;
+ public static final int RULE_WS=11;
+ public static final int RULE_SL_COMMENT=10;
+ public static final int EOF=-1;
+ public static final int RULE_ML_COMMENT=9;
+
+ public InternalATestParser(TokenStream input) {
+ super(input);
+ }
+
+
+ public String[] getTokenNames() { return tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g"; }
+
+
+
+ private ATestGrammarAccess grammarAccess;
+
+ public InternalATestParser(TokenStream input, IAstFactory factory, ATestGrammarAccess grammarAccess) {
+ this(input);
+ this.factory = factory;
+ registerRules(grammarAccess.getGrammar());
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected InputStream getTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.tokens");
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Model";
+ }
+
+
+
+ // $ANTLR start entryRuleModel
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:73:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ;
+ public final EObject entryRuleModel() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleModel = null;
+
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:73:47: (iv_ruleModel= ruleModel EOF )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:74:2: iv_ruleModel= ruleModel EOF
+ {
+ currentNode = createCompositeNode(grammarAccess.getModelRule(), currentNode);
+ pushFollow(FOLLOW_ruleModel_in_entryRuleModel73);
+ iv_ruleModel=ruleModel();
+ _fsp--;
+
+ current =iv_ruleModel;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModel83);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleModel
+
+
+ // $ANTLR start ruleModel
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:81:1: ruleModel returns [EObject current=null] : ( (lv_name_0= RULE_STRING )? (lv_description_1= RULE_PLAIN_STRING )? (lv_tests_2= ruleTests )? (lv_contraints_3= ruleConstraint )* ) ;
+ public final EObject ruleModel() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0=null;
+ Token lv_description_1=null;
+ EObject lv_tests_2 = null;
+
+ EObject lv_contraints_3 = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:86:6: ( ( (lv_name_0= RULE_STRING )? (lv_description_1= RULE_PLAIN_STRING )? (lv_tests_2= ruleTests )? (lv_contraints_3= ruleConstraint )* ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:87:1: ( (lv_name_0= RULE_STRING )? (lv_description_1= RULE_PLAIN_STRING )? (lv_tests_2= ruleTests )? (lv_contraints_3= ruleConstraint )* )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:87:1: ( (lv_name_0= RULE_STRING )? (lv_description_1= RULE_PLAIN_STRING )? (lv_tests_2= ruleTests )? (lv_contraints_3= ruleConstraint )* )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:87:2: (lv_name_0= RULE_STRING )? (lv_description_1= RULE_PLAIN_STRING )? (lv_tests_2= ruleTests )? (lv_contraints_3= ruleConstraint )*
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:87:2: (lv_name_0= RULE_STRING )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==RULE_STRING) ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:89:6: lv_name_0= RULE_STRING
+ {
+ lv_name_0=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleModel130);
+
+ createLeafNode(grammarAccess.getModelAccess().getNameSTRINGTerminalRuleCall_0_0(), "name");
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ set(current, "name", lv_name_0, "STRING", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:107:3: (lv_description_1= RULE_PLAIN_STRING )?
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==RULE_PLAIN_STRING) ) {
+ alt2=1;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:109:6: lv_description_1= RULE_PLAIN_STRING
+ {
+ lv_description_1=(Token)input.LT(1);
+ match(input,RULE_PLAIN_STRING,FOLLOW_RULE_PLAIN_STRING_in_ruleModel161);
+
+ createLeafNode(grammarAccess.getModelAccess().getDescriptionPLAIN_STRINGTerminalRuleCall_1_0(), "description");
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ set(current, "description", lv_description_1, "PLAIN_STRING", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:127:3: (lv_tests_2= ruleTests )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==13) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:130:6: lv_tests_2= ruleTests
+ {
+
+ currentNode=createCompositeNode(grammarAccess.getModelAccess().getTestsTestsParserRuleCall_2_0(), currentNode);
+
+ pushFollow(FOLLOW_ruleTests_in_ruleModel204);
+ lv_tests_2=ruleTests();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ set(current, "tests", lv_tests_2, "Tests", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:148:3: (lv_contraints_3= ruleConstraint )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( ((LA4_0>=21 && LA4_0<=25)) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:151:6: lv_contraints_3= ruleConstraint
+ {
+
+ currentNode=createCompositeNode(grammarAccess.getModelAccess().getContraintsConstraintParserRuleCall_3_0(), currentNode);
+
+ pushFollow(FOLLOW_ruleConstraint_in_ruleModel243);
+ lv_contraints_3=ruleConstraint();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ add(current, "contraints", lv_contraints_3, "Constraint", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+ lastConsumedNode = currentNode;
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleModel
+
+
+ // $ANTLR start entryRuleTests
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:176:1: entryRuleTests returns [EObject current=null] : iv_ruleTests= ruleTests EOF ;
+ public final EObject entryRuleTests() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTests = null;
+
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:176:47: (iv_ruleTests= ruleTests EOF )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:177:2: iv_ruleTests= ruleTests EOF
+ {
+ currentNode = createCompositeNode(grammarAccess.getTestsRule(), currentNode);
+ pushFollow(FOLLOW_ruleTests_in_entryRuleTests281);
+ iv_ruleTests=ruleTests();
+ _fsp--;
+
+ current =iv_ruleTests;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTests291);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleTests
+
+
+ // $ANTLR start ruleTests
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:184:1: ruleTests returns [EObject current=null] : ( 'TESTS' (lv_importURI_1= RULE_STRING ) ) ;
+ public final EObject ruleTests() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_importURI_1=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:189:6: ( ( 'TESTS' (lv_importURI_1= RULE_STRING ) ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:190:1: ( 'TESTS' (lv_importURI_1= RULE_STRING ) )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:190:1: ( 'TESTS' (lv_importURI_1= RULE_STRING ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:190:2: 'TESTS' (lv_importURI_1= RULE_STRING )
+ {
+ match(input,13,FOLLOW_13_in_ruleTests325);
+
+ createLeafNode(grammarAccess.getTestsAccess().getTESTSKeyword_0(), null);
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:194:1: (lv_importURI_1= RULE_STRING )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:196:6: lv_importURI_1= RULE_STRING
+ {
+ lv_importURI_1=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTests347);
+
+ createLeafNode(grammarAccess.getTestsAccess().getImportURISTRINGTerminalRuleCall_1_0(), "importURI");
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getTestsRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ set(current, "importURI", lv_importURI_1, "STRING", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+ lastConsumedNode = currentNode;
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleTests
+
+
+ // $ANTLR start entryRuleConstraint
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:221:1: entryRuleConstraint returns [EObject current=null] : iv_ruleConstraint= ruleConstraint EOF ;
+ public final EObject entryRuleConstraint() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleConstraint = null;
+
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:221:52: (iv_ruleConstraint= ruleConstraint EOF )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:222:2: iv_ruleConstraint= ruleConstraint EOF
+ {
+ currentNode = createCompositeNode(grammarAccess.getConstraintRule(), currentNode);
+ pushFollow(FOLLOW_ruleConstraint_in_entryRuleConstraint388);
+ iv_ruleConstraint=ruleConstraint();
+ _fsp--;
+
+ current =iv_ruleConstraint;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleConstraint398);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleConstraint
+
+
+ // $ANTLR start ruleConstraint
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:229:1: ruleConstraint returns [EObject current=null] : ( (lv_measure_0= ruleMeasure ) '(' ( RULE_STRING ) ':' ( RULE_STRING ) ( ':' ( RULE_STRING ) )? ')' ( '=' '[' (lv_minValue_10= ( ruleIntValue | ruleRealValue ) ) ',' (lv_maxValue_12= ( ruleIntValue | ruleRealValue ) ) ']' ) ) ;
+ public final EObject ruleConstraint() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_minValue_10=null;
+ Token lv_maxValue_12=null;
+ Enumerator lv_measure_0 = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:234:6: ( ( (lv_measure_0= ruleMeasure ) '(' ( RULE_STRING ) ':' ( RULE_STRING ) ( ':' ( RULE_STRING ) )? ')' ( '=' '[' (lv_minValue_10= ( ruleIntValue | ruleRealValue ) ) ',' (lv_maxValue_12= ( ruleIntValue | ruleRealValue ) ) ']' ) ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:235:1: ( (lv_measure_0= ruleMeasure ) '(' ( RULE_STRING ) ':' ( RULE_STRING ) ( ':' ( RULE_STRING ) )? ')' ( '=' '[' (lv_minValue_10= ( ruleIntValue | ruleRealValue ) ) ',' (lv_maxValue_12= ( ruleIntValue | ruleRealValue ) ) ']' ) )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:235:1: ( (lv_measure_0= ruleMeasure ) '(' ( RULE_STRING ) ':' ( RULE_STRING ) ( ':' ( RULE_STRING ) )? ')' ( '=' '[' (lv_minValue_10= ( ruleIntValue | ruleRealValue ) ) ',' (lv_maxValue_12= ( ruleIntValue | ruleRealValue ) ) ']' ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:235:2: (lv_measure_0= ruleMeasure ) '(' ( RULE_STRING ) ':' ( RULE_STRING ) ( ':' ( RULE_STRING ) )? ')' ( '=' '[' (lv_minValue_10= ( ruleIntValue | ruleRealValue ) ) ',' (lv_maxValue_12= ( ruleIntValue | ruleRealValue ) ) ']' )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:235:2: (lv_measure_0= ruleMeasure )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:238:6: lv_measure_0= ruleMeasure
+ {
+
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMeasureMeasureEnumRuleCall_0_0(), currentNode);
+
+ pushFollow(FOLLOW_ruleMeasure_in_ruleConstraint457);
+ lv_measure_0=ruleMeasure();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ set(current, "measure", lv_measure_0, "Measure", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+ match(input,14,FOLLOW_14_in_ruleConstraint470);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_1(), null);
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:260:1: ( RULE_STRING )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:263:3: RULE_STRING
+ {
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleConstraint492);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getAgentSAgentCrossReference_2_0(), "agent");
+
+
+ }
+
+ match(input,15,FOLLOW_15_in_ruleConstraint504);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getColonKeyword_3(), null);
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:280:1: ( RULE_STRING )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:283:3: RULE_STRING
+ {
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleConstraint526);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getAttributeSAttributeCrossReference_4_0(), "attribute");
+
+
+ }
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:296:2: ( ':' ( RULE_STRING ) )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==15) ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:296:3: ':' ( RULE_STRING )
+ {
+ match(input,15,FOLLOW_15_in_ruleConstraint539);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getColonKeyword_5_0(), null);
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:300:1: ( RULE_STRING )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:303:3: RULE_STRING
+ {
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleConstraint561);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getQualifierSStateValueCrossReference_5_1_0(), "qualifier");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ match(input,16,FOLLOW_16_in_ruleConstraint575);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getRightParenthesisKeyword_6(), null);
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:320:1: ( '=' '[' (lv_minValue_10= ( ruleIntValue | ruleRealValue ) ) ',' (lv_maxValue_12= ( ruleIntValue | ruleRealValue ) ) ']' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:320:2: '=' '[' (lv_minValue_10= ( ruleIntValue | ruleRealValue ) ) ',' (lv_maxValue_12= ( ruleIntValue | ruleRealValue ) ) ']'
+ {
+ match(input,17,FOLLOW_17_in_ruleConstraint585);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getEqualsSignKeyword_7_0(), null);
+
+ match(input,18,FOLLOW_18_in_ruleConstraint594);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getLeftSquareBracketKeyword_7_1(), null);
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:328:1: (lv_minValue_10= ( ruleIntValue | ruleRealValue ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:330:6: lv_minValue_10= ( ruleIntValue | ruleRealValue )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:330:21: ( ruleIntValue | ruleRealValue )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==RULE_INT) ) {
+ alt6=1;
+ }
+ else if ( (LA6_0==RULE_REAL) ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("330:21: ( ruleIntValue | ruleRealValue )", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:330:23: ruleIntValue
+ {
+
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMinValueIntValueParserRuleCall_7_2_0_0(), currentNode);
+
+ pushFollow(FOLLOW_ruleIntValue_in_ruleConstraint620);
+ ruleIntValue();
+ _fsp--;
+
+
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:337:7: ruleRealValue
+ {
+
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMinValueRealValueParserRuleCall_7_2_0_1(), currentNode);
+
+ pushFollow(FOLLOW_ruleRealValue_in_ruleConstraint634);
+ ruleRealValue();
+ _fsp--;
+
+
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ set(current, "minValue", lv_minValue_10, null, lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+ match(input,19,FOLLOW_19_in_ruleConstraint652);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getCommaKeyword_7_3(), null);
+
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:362:1: (lv_maxValue_12= ( ruleIntValue | ruleRealValue ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:364:6: lv_maxValue_12= ( ruleIntValue | ruleRealValue )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:364:21: ( ruleIntValue | ruleRealValue )
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==RULE_INT) ) {
+ alt7=1;
+ }
+ else if ( (LA7_0==RULE_REAL) ) {
+ alt7=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("364:21: ( ruleIntValue | ruleRealValue )", 7, 0, input);
+
+ throw nvae;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:364:23: ruleIntValue
+ {
+
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMaxValueIntValueParserRuleCall_7_4_0_0(), currentNode);
+
+ pushFollow(FOLLOW_ruleIntValue_in_ruleConstraint678);
+ ruleIntValue();
+ _fsp--;
+
+
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:371:7: ruleRealValue
+ {
+
+ currentNode=createCompositeNode(grammarAccess.getConstraintAccess().getMaxValueRealValueParserRuleCall_7_4_0_1(), currentNode);
+
+ pushFollow(FOLLOW_ruleRealValue_in_ruleConstraint692);
+ ruleRealValue();
+ _fsp--;
+
+
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getConstraintRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ set(current, "maxValue", lv_maxValue_12, null, lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+ match(input,20,FOLLOW_20_in_ruleConstraint710);
+
+ createLeafNode(grammarAccess.getConstraintAccess().getRightSquareBracketKeyword_7_5(), null);
+
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+ lastConsumedNode = currentNode;
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleConstraint
+
+
+ // $ANTLR start entryRuleIntValue
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:403:1: entryRuleIntValue returns [EObject current=null] : iv_ruleIntValue= ruleIntValue EOF ;
+ public final EObject entryRuleIntValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleIntValue = null;
+
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:403:50: (iv_ruleIntValue= ruleIntValue EOF )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:404:2: iv_ruleIntValue= ruleIntValue EOF
+ {
+ currentNode = createCompositeNode(grammarAccess.getIntValueRule(), currentNode);
+ pushFollow(FOLLOW_ruleIntValue_in_entryRuleIntValue744);
+ iv_ruleIntValue=ruleIntValue();
+ _fsp--;
+
+ current =iv_ruleIntValue;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleIntValue754);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleIntValue
+
+
+ // $ANTLR start ruleIntValue
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:411:1: ruleIntValue returns [EObject current=null] : (lv_value_0= RULE_INT ) ;
+ public final EObject ruleIntValue() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_value_0=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:416:6: ( (lv_value_0= RULE_INT ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:417:1: (lv_value_0= RULE_INT )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:417:1: (lv_value_0= RULE_INT )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:419:6: lv_value_0= RULE_INT
+ {
+ lv_value_0=(Token)input.LT(1);
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleIntValue800);
+
+ createLeafNode(grammarAccess.getIntValueAccess().getValueINTTerminalRuleCall_0(), "value");
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getIntValueRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ set(current, "value", lv_value_0, "INT", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+ lastConsumedNode = currentNode;
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleIntValue
+
+
+ // $ANTLR start entryRuleRealValue
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:444:1: entryRuleRealValue returns [EObject current=null] : iv_ruleRealValue= ruleRealValue EOF ;
+ public final EObject entryRuleRealValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleRealValue = null;
+
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:444:51: (iv_ruleRealValue= ruleRealValue EOF )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:445:2: iv_ruleRealValue= ruleRealValue EOF
+ {
+ currentNode = createCompositeNode(grammarAccess.getRealValueRule(), currentNode);
+ pushFollow(FOLLOW_ruleRealValue_in_entryRuleRealValue840);
+ iv_ruleRealValue=ruleRealValue();
+ _fsp--;
+
+ current =iv_ruleRealValue;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleRealValue850);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleRealValue
+
+
+ // $ANTLR start ruleRealValue
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:452:1: ruleRealValue returns [EObject current=null] : (lv_value_0= RULE_REAL ) ;
+ public final EObject ruleRealValue() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_value_0=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:457:6: ( (lv_value_0= RULE_REAL ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:458:1: (lv_value_0= RULE_REAL )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:458:1: (lv_value_0= RULE_REAL )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:460:6: lv_value_0= RULE_REAL
+ {
+ lv_value_0=(Token)input.LT(1);
+ match(input,RULE_REAL,FOLLOW_RULE_REAL_in_ruleRealValue896);
+
+ createLeafNode(grammarAccess.getRealValueAccess().getValueREALTerminalRuleCall_0(), "value");
+
+
+ if (current==null) {
+ current = factory.create(grammarAccess.getRealValueRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ set(current, "value", lv_value_0, "REAL", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+ lastConsumedNode = currentNode;
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleRealValue
+
+
+ // $ANTLR start ruleMeasure
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:485:1: ruleMeasure returns [Enumerator current=null] : ( ( 'Count' ) | ( 'Average' ) | ( 'Sum' ) | ( 'Minimum' ) | ( 'Maximum' ) ) ;
+ public final Enumerator ruleMeasure() throws RecognitionException {
+ Enumerator current = null;
+
+ setCurrentLookahead(); resetLookahead();
+ try {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:489:6: ( ( ( 'Count' ) | ( 'Average' ) | ( 'Sum' ) | ( 'Minimum' ) | ( 'Maximum' ) ) )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:490:1: ( ( 'Count' ) | ( 'Average' ) | ( 'Sum' ) | ( 'Minimum' ) | ( 'Maximum' ) )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:490:1: ( ( 'Count' ) | ( 'Average' ) | ( 'Sum' ) | ( 'Minimum' ) | ( 'Maximum' ) )
+ int alt8=5;
+ switch ( input.LA(1) ) {
+ case 21:
+ {
+ alt8=1;
+ }
+ break;
+ case 22:
+ {
+ alt8=2;
+ }
+ break;
+ case 23:
+ {
+ alt8=3;
+ }
+ break;
+ case 24:
+ {
+ alt8=4;
+ }
+ break;
+ case 25:
+ {
+ alt8=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("490:1: ( ( 'Count' ) | ( 'Average' ) | ( 'Sum' ) | ( 'Minimum' ) | ( 'Maximum' ) )", 8, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:490:2: ( 'Count' )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:490:2: ( 'Count' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:490:4: 'Count'
+ {
+ match(input,21,FOLLOW_21_in_ruleMeasure950);
+
+ current = grammarAccess.getMeasureAccess().getCOUNTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getCOUNTEnumLiteralDeclaration_0(), null);
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:496:6: ( 'Average' )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:496:6: ( 'Average' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:496:8: 'Average'
+ {
+ match(input,22,FOLLOW_22_in_ruleMeasure965);
+
+ current = grammarAccess.getMeasureAccess().getAVERAGEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getAVERAGEEnumLiteralDeclaration_1(), null);
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:502:6: ( 'Sum' )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:502:6: ( 'Sum' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:502:8: 'Sum'
+ {
+ match(input,23,FOLLOW_23_in_ruleMeasure980);
+
+ current = grammarAccess.getMeasureAccess().getSUMEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getSUMEnumLiteralDeclaration_2(), null);
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:508:6: ( 'Minimum' )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:508:6: ( 'Minimum' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:508:8: 'Minimum'
+ {
+ match(input,24,FOLLOW_24_in_ruleMeasure995);
+
+ current = grammarAccess.getMeasureAccess().getMINIMUMEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getMINIMUMEnumLiteralDeclaration_3(), null);
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:514:6: ( 'Maximum' )
+ {
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:514:6: ( 'Maximum' )
+ // ../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g:514:8: 'Maximum'
+ {
+ match(input,25,FOLLOW_25_in_ruleMeasure1010);
+
+ current = grammarAccess.getMeasureAccess().getMAXIMUMEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getMeasureAccess().getMAXIMUMEnumLiteralDeclaration_4(), null);
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ resetLookahead();
+ lastConsumedNode = currentNode;
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleMeasure
+
+
+
+
+ public static final BitSet FOLLOW_ruleModel_in_entryRuleModel73 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModel83 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleModel130 = new BitSet(new long[]{0x0000000003E02022L});
+ public static final BitSet FOLLOW_RULE_PLAIN_STRING_in_ruleModel161 = new BitSet(new long[]{0x0000000003E02002L});
+ public static final BitSet FOLLOW_ruleTests_in_ruleModel204 = new BitSet(new long[]{0x0000000003E00002L});
+ public static final BitSet FOLLOW_ruleConstraint_in_ruleModel243 = new BitSet(new long[]{0x0000000003E00002L});
+ public static final BitSet FOLLOW_ruleTests_in_entryRuleTests281 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTests291 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_ruleTests325 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleTests347 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleConstraint_in_entryRuleConstraint388 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleConstraint398 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleMeasure_in_ruleConstraint457 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleConstraint470 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleConstraint492 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_15_in_ruleConstraint504 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleConstraint526 = new BitSet(new long[]{0x0000000000018000L});
+ public static final BitSet FOLLOW_15_in_ruleConstraint539 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleConstraint561 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleConstraint575 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_17_in_ruleConstraint585 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_18_in_ruleConstraint594 = new BitSet(new long[]{0x00000000000000C0L});
+ public static final BitSet FOLLOW_ruleIntValue_in_ruleConstraint620 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_ruleRealValue_in_ruleConstraint634 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_19_in_ruleConstraint652 = new BitSet(new long[]{0x00000000000000C0L});
+ public static final BitSet FOLLOW_ruleIntValue_in_ruleConstraint678 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_ruleRealValue_in_ruleConstraint692 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_20_in_ruleConstraint710 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleIntValue_in_entryRuleIntValue744 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleIntValue754 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleIntValue800 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleRealValue_in_entryRuleRealValue840 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleRealValue850 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_REAL_in_ruleRealValue896 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_21_in_ruleMeasure950 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_ruleMeasure965 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_23_in_ruleMeasure980 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_ruleMeasure995 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_ruleMeasure1010 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest__.g b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest__.g
new file mode 100644
index 0000000..959ee6e
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest__.g
@@ -0,0 +1,51 @@
+lexer grammar InternalATest;
+@header {
+package org.eclipse.amp.amf.testing.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+T13 : 'TESTS' ;
+T14 : '(' ;
+T15 : ':' ;
+T16 : ')' ;
+T17 : '=' ;
+T18 : '[' ;
+T19 : ',' ;
+T20 : ']' ;
+T21 : 'Count' ;
+T22 : 'Average' ;
+T23 : 'Sum' ;
+T24 : 'Minimum' ;
+T25 : 'Maximum' ;
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 523
+RULE_REAL : '-'? RULE_INT ('.' RULE_INT)?;
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 525
+RULE_PLAIN_STRING : '\u00AB' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'\u00AB'|'\u00BB')))* '\u00BB';
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 527
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 529
+RULE_INT : ('0'..'9')+;
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 531
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 533
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 535
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 537
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+// $ANTLR src "../org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/parser/antlr/internal/InternalATest.g" 539
+RULE_ANY_OTHER : .;
+
+
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/services/ATestGrammarAccess.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/services/ATestGrammarAccess.java
new file mode 100644
index 0000000..8d0c9c5
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/services/ATestGrammarAccess.java
@@ -0,0 +1,452 @@
+/*
+* generated by Xtext
+*/
+
+package org.eclipse.amp.amf.testing.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.*;
+
+import org.eclipse.xtext.service.GrammarProvider;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class ATestGrammarAccess implements IGrammarAccess {
+
+
+ public class ModelElements implements IParserRuleAccess {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Model");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cNameSTRINGTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cDescriptionPLAIN_STRINGTerminalRuleCall_1_0 = (RuleCall)cDescriptionAssignment_1.eContents().get(0);
+ private final Assignment cTestsAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cTestsTestsParserRuleCall_2_0 = (RuleCall)cTestsAssignment_2.eContents().get(0);
+ private final Assignment cContraintsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cContraintsConstraintParserRuleCall_3_0 = (RuleCall)cContraintsAssignment_3.eContents().get(0);
+
+ //Model:
+ // name=STRING? description=PLAIN_STRING? tests=Tests? contraints+=Constraint*;
+ public ParserRule getRule() { return rule; }
+
+ //name=STRING? description=PLAIN_STRING? tests=Tests? contraints+=Constraint*
+ public Group getGroup() { return cGroup; }
+
+ //name=STRING?
+ public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+ //STRING
+ public RuleCall getNameSTRINGTerminalRuleCall_0_0() { return cNameSTRINGTerminalRuleCall_0_0; }
+
+ //description=PLAIN_STRING?
+ public Assignment getDescriptionAssignment_1() { return cDescriptionAssignment_1; }
+
+ //PLAIN_STRING
+ public RuleCall getDescriptionPLAIN_STRINGTerminalRuleCall_1_0() { return cDescriptionPLAIN_STRINGTerminalRuleCall_1_0; }
+
+ //tests=Tests?
+ public Assignment getTestsAssignment_2() { return cTestsAssignment_2; }
+
+ //Tests
+ public RuleCall getTestsTestsParserRuleCall_2_0() { return cTestsTestsParserRuleCall_2_0; }
+
+ //contraints+=Constraint*
+ public Assignment getContraintsAssignment_3() { return cContraintsAssignment_3; }
+
+ //Constraint
+ public RuleCall getContraintsConstraintParserRuleCall_3_0() { return cContraintsConstraintParserRuleCall_3_0; }
+ }
+
+ public class TestsElements implements IParserRuleAccess {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Tests");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cTESTSKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cImportURIAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cImportURISTRINGTerminalRuleCall_1_0 = (RuleCall)cImportURIAssignment_1.eContents().get(0);
+
+ //Tests:
+ // "TESTS" importURI=STRING;
+ public ParserRule getRule() { return rule; }
+
+ //"TESTS" importURI=STRING
+ public Group getGroup() { return cGroup; }
+
+ //"TESTS"
+ public Keyword getTESTSKeyword_0() { return cTESTSKeyword_0; }
+
+ //importURI=STRING
+ public Assignment getImportURIAssignment_1() { return cImportURIAssignment_1; }
+
+ //STRING
+ public RuleCall getImportURISTRINGTerminalRuleCall_1_0() { return cImportURISTRINGTerminalRuleCall_1_0; }
+ }
+
+ public class ConstraintElements implements IParserRuleAccess {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Constraint");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cMeasureAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cMeasureMeasureEnumRuleCall_0_0 = (RuleCall)cMeasureAssignment_0.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cAgentAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cAgentSAgentCrossReference_2_0 = (CrossReference)cAgentAssignment_2.eContents().get(0);
+ private final RuleCall cAgentSAgentSTRINGTerminalRuleCall_2_0_1 = (RuleCall)cAgentSAgentCrossReference_2_0.eContents().get(1);
+ private final Keyword cColonKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cAttributeAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final CrossReference cAttributeSAttributeCrossReference_4_0 = (CrossReference)cAttributeAssignment_4.eContents().get(0);
+ private final RuleCall cAttributeSAttributeSTRINGTerminalRuleCall_4_0_1 = (RuleCall)cAttributeSAttributeCrossReference_4_0.eContents().get(1);
+ private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+ private final Keyword cColonKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+ private final Assignment cQualifierAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+ private final CrossReference cQualifierSStateValueCrossReference_5_1_0 = (CrossReference)cQualifierAssignment_5_1.eContents().get(0);
+ private final RuleCall cQualifierSStateValueSTRINGTerminalRuleCall_5_1_0_1 = (RuleCall)cQualifierSStateValueCrossReference_5_1_0.eContents().get(1);
+ private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
+ private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+ private final Keyword cEqualsSignKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
+ private final Assignment cMinValueAssignment_7_2 = (Assignment)cGroup_7.eContents().get(2);
+ private final Alternatives cMinValueAlternatives_7_2_0 = (Alternatives)cMinValueAssignment_7_2.eContents().get(0);
+ private final RuleCall cMinValueIntValueParserRuleCall_7_2_0_0 = (RuleCall)cMinValueAlternatives_7_2_0.eContents().get(0);
+ private final RuleCall cMinValueRealValueParserRuleCall_7_2_0_1 = (RuleCall)cMinValueAlternatives_7_2_0.eContents().get(1);
+ private final Keyword cCommaKeyword_7_3 = (Keyword)cGroup_7.eContents().get(3);
+ private final Assignment cMaxValueAssignment_7_4 = (Assignment)cGroup_7.eContents().get(4);
+ private final Alternatives cMaxValueAlternatives_7_4_0 = (Alternatives)cMaxValueAssignment_7_4.eContents().get(0);
+ private final RuleCall cMaxValueIntValueParserRuleCall_7_4_0_0 = (RuleCall)cMaxValueAlternatives_7_4_0.eContents().get(0);
+ private final RuleCall cMaxValueRealValueParserRuleCall_7_4_0_1 = (RuleCall)cMaxValueAlternatives_7_4_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_7_5 = (Keyword)cGroup_7.eContents().get(5);
+
+ //Constraint:
+ // measure=Measure "(" agent=[SAgent|STRING] ":" attribute=[SAttribute|STRING] (":"
+ // qualifier=[SStateValue|STRING])? ")" ("=" "[" minValue=( IntValue | RealValue ) ","
+ // maxValue=( IntValue | RealValue ) "]");
+ public ParserRule getRule() { return rule; }
+
+ //measure=Measure "(" agent=[SAgent|STRING] ":" attribute=[SAttribute|STRING] (":"
+ //qualifier=[SStateValue|STRING])? ")" ("=" "[" minValue=( IntValue | RealValue ) ","
+ //maxValue=( IntValue | RealValue ) "]")
+ public Group getGroup() { return cGroup; }
+
+ //measure=Measure
+ public Assignment getMeasureAssignment_0() { return cMeasureAssignment_0; }
+
+ //Measure
+ public RuleCall getMeasureMeasureEnumRuleCall_0_0() { return cMeasureMeasureEnumRuleCall_0_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //agent=[SAgent|STRING]
+ public Assignment getAgentAssignment_2() { return cAgentAssignment_2; }
+
+ //[SAgent|STRING]
+ public CrossReference getAgentSAgentCrossReference_2_0() { return cAgentSAgentCrossReference_2_0; }
+
+ //STRING
+ public RuleCall getAgentSAgentSTRINGTerminalRuleCall_2_0_1() { return cAgentSAgentSTRINGTerminalRuleCall_2_0_1; }
+
+ //":"
+ public Keyword getColonKeyword_3() { return cColonKeyword_3; }
+
+ //attribute=[SAttribute|STRING]
+ public Assignment getAttributeAssignment_4() { return cAttributeAssignment_4; }
+
+ //[SAttribute|STRING]
+ public CrossReference getAttributeSAttributeCrossReference_4_0() { return cAttributeSAttributeCrossReference_4_0; }
+
+ //STRING
+ public RuleCall getAttributeSAttributeSTRINGTerminalRuleCall_4_0_1() { return cAttributeSAttributeSTRINGTerminalRuleCall_4_0_1; }
+
+ //(":" qualifier=[SStateValue|STRING])?
+ public Group getGroup_5() { return cGroup_5; }
+
+ //":"
+ public Keyword getColonKeyword_5_0() { return cColonKeyword_5_0; }
+
+ //qualifier=[SStateValue|STRING]
+ public Assignment getQualifierAssignment_5_1() { return cQualifierAssignment_5_1; }
+
+ //[SStateValue|STRING]
+ public CrossReference getQualifierSStateValueCrossReference_5_1_0() { return cQualifierSStateValueCrossReference_5_1_0; }
+
+ //STRING
+ public RuleCall getQualifierSStateValueSTRINGTerminalRuleCall_5_1_0_1() { return cQualifierSStateValueSTRINGTerminalRuleCall_5_1_0_1; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }
+
+ //"=" "[" minValue=( IntValue | RealValue ) "," maxValue=( IntValue | RealValue ) "]"
+ public Group getGroup_7() { return cGroup_7; }
+
+ //"="
+ public Keyword getEqualsSignKeyword_7_0() { return cEqualsSignKeyword_7_0; }
+
+ //"["
+ public Keyword getLeftSquareBracketKeyword_7_1() { return cLeftSquareBracketKeyword_7_1; }
+
+ //minValue=( IntValue | RealValue )
+ public Assignment getMinValueAssignment_7_2() { return cMinValueAssignment_7_2; }
+
+ //IntValue|RealValue
+ public Alternatives getMinValueAlternatives_7_2_0() { return cMinValueAlternatives_7_2_0; }
+
+ //IntValue
+ public RuleCall getMinValueIntValueParserRuleCall_7_2_0_0() { return cMinValueIntValueParserRuleCall_7_2_0_0; }
+
+ //RealValue
+ public RuleCall getMinValueRealValueParserRuleCall_7_2_0_1() { return cMinValueRealValueParserRuleCall_7_2_0_1; }
+
+ //","
+ public Keyword getCommaKeyword_7_3() { return cCommaKeyword_7_3; }
+
+ //maxValue=( IntValue | RealValue )
+ public Assignment getMaxValueAssignment_7_4() { return cMaxValueAssignment_7_4; }
+
+ //IntValue|RealValue
+ public Alternatives getMaxValueAlternatives_7_4_0() { return cMaxValueAlternatives_7_4_0; }
+
+ //IntValue
+ public RuleCall getMaxValueIntValueParserRuleCall_7_4_0_0() { return cMaxValueIntValueParserRuleCall_7_4_0_0; }
+
+ //RealValue
+ public RuleCall getMaxValueRealValueParserRuleCall_7_4_0_1() { return cMaxValueRealValueParserRuleCall_7_4_0_1; }
+
+ //"]"
+ public Keyword getRightSquareBracketKeyword_7_5() { return cRightSquareBracketKeyword_7_5; }
+ }
+
+ public class IntValueElements implements IParserRuleAccess {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IntValue");
+ private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cValueINTTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
+
+ //IntValue:
+ // value=INT;
+ public ParserRule getRule() { return rule; }
+
+ //value=INT
+ public Assignment getValueAssignment() { return cValueAssignment; }
+
+ //INT
+ public RuleCall getValueINTTerminalRuleCall_0() { return cValueINTTerminalRuleCall_0; }
+ }
+
+ public class RealValueElements implements IParserRuleAccess {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RealValue");
+ private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cValueREALTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
+
+ //RealValue:
+ // value=REAL;
+ public ParserRule getRule() { return rule; }
+
+ //value=REAL
+ public Assignment getValueAssignment() { return cValueAssignment; }
+
+ //REAL
+ public RuleCall getValueREALTerminalRuleCall_0() { return cValueREALTerminalRuleCall_0; }
+ }
+
+
+ public class MeasureElements implements IEnumRuleAccess {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "Measure");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cCOUNTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cCOUNTCountKeyword_0_0 = (Keyword)cCOUNTEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cAVERAGEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cAVERAGEAverageKeyword_1_0 = (Keyword)cAVERAGEEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cSUMEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cSUMSumKeyword_2_0 = (Keyword)cSUMEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cMINIMUMEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cMINIMUMMinimumKeyword_3_0 = (Keyword)cMINIMUMEnumLiteralDeclaration_3.eContents().get(0);
+ private final EnumLiteralDeclaration cMAXIMUMEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+ private final Keyword cMAXIMUMMaximumKeyword_4_0 = (Keyword)cMAXIMUMEnumLiteralDeclaration_4.eContents().get(0);
+
+ //enum Measure:
+ // COUNT="Count" | AVERAGE="Average" | SUM="Sum" | MINIMUM="Minimum" | MAXIMUM="Maximum";
+ public EnumRule getRule() { return rule; }
+
+ //COUNT="Count" | AVERAGE="Average" | SUM="Sum" | MINIMUM="Minimum" | MAXIMUM="Maximum"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //COUNT="Count"
+ public EnumLiteralDeclaration getCOUNTEnumLiteralDeclaration_0() { return cCOUNTEnumLiteralDeclaration_0; }
+
+ //"Count"
+ public Keyword getCOUNTCountKeyword_0_0() { return cCOUNTCountKeyword_0_0; }
+
+ //AVERAGE="Average"
+ public EnumLiteralDeclaration getAVERAGEEnumLiteralDeclaration_1() { return cAVERAGEEnumLiteralDeclaration_1; }
+
+ //"Average"
+ public Keyword getAVERAGEAverageKeyword_1_0() { return cAVERAGEAverageKeyword_1_0; }
+
+ //SUM="Sum"
+ public EnumLiteralDeclaration getSUMEnumLiteralDeclaration_2() { return cSUMEnumLiteralDeclaration_2; }
+
+ //"Sum"
+ public Keyword getSUMSumKeyword_2_0() { return cSUMSumKeyword_2_0; }
+
+ //MINIMUM="Minimum"
+ public EnumLiteralDeclaration getMINIMUMEnumLiteralDeclaration_3() { return cMINIMUMEnumLiteralDeclaration_3; }
+
+ //"Minimum"
+ public Keyword getMINIMUMMinimumKeyword_3_0() { return cMINIMUMMinimumKeyword_3_0; }
+
+ //MAXIMUM="Maximum"
+ public EnumLiteralDeclaration getMAXIMUMEnumLiteralDeclaration_4() { return cMAXIMUMEnumLiteralDeclaration_4; }
+
+ //"Maximum"
+ public Keyword getMAXIMUMMaximumKeyword_4_0() { return cMAXIMUMMaximumKeyword_4_0; }
+ }
+
+ private ModelElements pModel;
+ private TestsElements pTests;
+ private ConstraintElements pConstraint;
+ private MeasureElements unknownRuleMeasure;
+ private IntValueElements pIntValue;
+ private RealValueElements pRealValue;
+ private TerminalRule tREAL;
+ private TerminalRule tPLAIN_STRING;
+
+ private final GrammarProvider grammarProvider;
+
+ private TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public ATestGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammarProvider = grammarProvider;
+ this.gaTerminals = gaTerminals;
+ }
+
+ public Grammar getGrammar() {
+ return grammarProvider.getGrammar(this);
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ //Model:
+ // name=STRING? description=PLAIN_STRING? tests=Tests? contraints+=Constraint*;
+ public ModelElements getModelAccess() {
+ return (pModel != null) ? pModel : (pModel = new ModelElements());
+ }
+
+ public ParserRule getModelRule() {
+ return getModelAccess().getRule();
+ }
+
+ //Tests:
+ // "TESTS" importURI=STRING;
+ public TestsElements getTestsAccess() {
+ return (pTests != null) ? pTests : (pTests = new TestsElements());
+ }
+
+ public ParserRule getTestsRule() {
+ return getTestsAccess().getRule();
+ }
+
+ //Constraint:
+ // measure=Measure "(" agent=[SAgent|STRING] ":" attribute=[SAttribute|STRING] (":"
+ // qualifier=[SStateValue|STRING])? ")" ("=" "[" minValue=( IntValue | RealValue ) ","
+ // maxValue=( IntValue | RealValue ) "]");
+ public ConstraintElements getConstraintAccess() {
+ return (pConstraint != null) ? pConstraint : (pConstraint = new ConstraintElements());
+ }
+
+ public ParserRule getConstraintRule() {
+ return getConstraintAccess().getRule();
+ }
+
+ //enum Measure:
+ // COUNT="Count" | AVERAGE="Average" | SUM="Sum" | MINIMUM="Minimum" | MAXIMUM="Maximum";
+ public MeasureElements getMeasureAccess() {
+ return (unknownRuleMeasure != null) ? unknownRuleMeasure : (unknownRuleMeasure = new MeasureElements());
+ }
+
+ public EnumRule getMeasureRule() {
+ return getMeasureAccess().getRule();
+ }
+
+ //IntValue:
+ // value=INT;
+ public IntValueElements getIntValueAccess() {
+ return (pIntValue != null) ? pIntValue : (pIntValue = new IntValueElements());
+ }
+
+ public ParserRule getIntValueRule() {
+ return getIntValueAccess().getRule();
+ }
+
+ //RealValue:
+ // value=REAL;
+ public RealValueElements getRealValueAccess() {
+ return (pRealValue != null) ? pRealValue : (pRealValue = new RealValueElements());
+ }
+
+ public ParserRule getRealValueRule() {
+ return getRealValueAccess().getRule();
+ }
+
+ //terminal REAL:
+ // "-"? INT ("." INT)?;
+ public TerminalRule getREALRule() {
+ return (tREAL != null) ? tREAL : (tREAL = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "REAL"));
+ }
+
+ //terminal PLAIN_STRING:
+ // "\u00AB" ("\\" ("b" | "t" | "n" | "f" | "r" | "\"" | "\'" | "\\") | !("\\" | "\u00AB" | "\u00BB"))*
+ // "\u00BB";
+ public TerminalRule getPLAIN_STRINGRule() {
+ return (tPLAIN_STRING != null) ? tPLAIN_STRING : (tPLAIN_STRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "PLAIN_STRING"));
+ }
+
+ //terminal ID:
+ // "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
+ public TerminalRule getIDRule() {
+ return gaTerminals.getIDRule();
+ }
+
+ //terminal INT returns ecore::EInt:
+ // "0".."9"+;
+ public TerminalRule getINTRule() {
+ return gaTerminals.getINTRule();
+ }
+
+ //terminal STRING:
+ // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" |
+ // "t" | "n" | "f" | "r" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
+ public TerminalRule getSTRINGRule() {
+ return gaTerminals.getSTRINGRule();
+ }
+
+ //terminal ML_COMMENT:
+ // "/ *"->"* /";
+ public TerminalRule getML_COMMENTRule() {
+ return gaTerminals.getML_COMMENTRule();
+ }
+
+ //terminal SL_COMMENT:
+ // "//" !("\n" | "\r")* ("\r"? "\n")?;
+ public TerminalRule getSL_COMMENTRule() {
+ return gaTerminals.getSL_COMMENTRule();
+ }
+
+ //terminal WS:
+ // (" " | "\t" | "\r" | "\n")+;
+ public TerminalRule getWSRule() {
+ return gaTerminals.getWSRule();
+ }
+
+ //terminal ANY_OTHER:
+ // .;
+ public TerminalRule getANY_OTHERRule() {
+ return gaTerminals.getANY_OTHERRule();
+ }
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/validation/AbstractATestJavaValidator.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/validation/AbstractATestJavaValidator.java
new file mode 100644
index 0000000..60381f5
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src-gen/org/eclipse/amp/amf/testing/validation/AbstractATestJavaValidator.java
@@ -0,0 +1,20 @@
+package org.eclipse.amp.amf.testing.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+import org.eclipse.xtext.validation.ComposedChecks;
+
+@ComposedChecks(validators= {org.eclipse.xtext.validation.ImportUriValidator.class})
+public class AbstractATestJavaValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<? extends EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.amp.amf.testing.aTest.ATestPackage.eINSTANCE);
+ return result;
+ }
+
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/model/ares.ecore b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/model/ares.ecore
new file mode 100644
index 0000000..89de90b
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/model/ares.ecore
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ares"
+ nsURI="http://eclipse.org/amp/ares" nsPrefix="ares">
+ <eClassifiers xsi:type="ecore:EClass" name="Run">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="ecore:EClass ../../../org.eclipse.amp.amf.acore/src/model/metaabm.ecore#//SContinuousSpace"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="testModel" lowerBound="1"
+ eType="ecore:EClass ../../src-gen/org/eclipse/amp/amf/testing/ATest.ecore#//Model"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameterModel" eType="ecore:EClass ../../../org.eclipse.amp.amf.parameters/src-gen/org/eclipse/amp/amf/parameters/APar.ecore#//Model"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="result" eType="#//Result"
+ defaultValueLiteral=""/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
+ eType="ecore:EClass ../../../org.eclipse.amp.amf.parameters/src-gen/org/eclipse/amp/amf/parameters/APar.ecore#//Parameter"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="constraints" upperBound="-1"
+ eType="ecore:EClass ../../src-gen/org/eclipse/amp/amf/testing/ATest.ecore#//Constraint"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="started" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="finished" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Result">
+ <eLiterals name="Incomplete" value="1" literal="INCOMPLETE"/>
+ <eLiterals name="Success" value="2" literal="SUCCESS"/>
+ <eLiterals name="Failure" value="3" literal="FAILURE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Failure">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="constraint" eType="ecore:EClass ../../src-gen/org/eclipse/amp/amf/testing/ATest.ecore#//Constraint"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="issue" lowerBound="1" eType="#//Issue"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actualValue" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Issue">
+ <eLiterals name="BelowRange" value="10" literal="BELOW_RANGE"/>
+ <eLiterals name="AboveRange" value="15" literal="ABOVE_RANGE"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/model/ares.genmodel b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/model/ares.genmodel
new file mode 100644
index 0000000..e35e053
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/model/ares.genmodel
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.amp.amf.testing/src"
+ modelPluginID="org.eclipse.amp.amf.testing" modelName="Ares" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="6.0" copyrightFields="false" usedGenPackages="../../../org.eclipse.amp.amf.parameters/src-gen/org/eclipse/amp/amf/parameters/APar.genmodel#//aPar ../../src-gen/org/eclipse/amp/amf/testing/ATest.genmodel#//aTest ../../../org.eclipse.amp.amf.acore/src/model/metaabm.genmodel#//metaabm">
+ <foreignModel>ares.ecore</foreignModel>
+ <genPackages prefix="Ares" basePackage="org.eclipse.amp.amf.testing" disposableProviderFactory="true"
+ generateExampleClass="false" ecorePackage="ares.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="ares.ecore#//Result">
+ <genEnumLiterals ecoreEnumLiteral="ares.ecore#//Result/Incomplete"/>
+ <genEnumLiterals ecoreEnumLiteral="ares.ecore#//Result/Success"/>
+ <genEnumLiterals ecoreEnumLiteral="ares.ecore#//Result/Failure"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="ares.ecore#//Issue">
+ <genEnumLiterals ecoreEnumLiteral="ares.ecore#//Issue/BelowRange"/>
+ <genEnumLiterals ecoreEnumLiteral="ares.ecore#//Issue/AboveRange"/>
+ </genEnums>
+ <genClasses ecoreClass="ares.ecore#//Run">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ares.ecore#//Run/model"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ares.ecore#//Run/testModel"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ares.ecore#//Run/parameterModel"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ares.ecore#//Run/result"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ares.ecore#//Run/parameters"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ares.ecore#//Run/constraints"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ares.ecore#//Run/started"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ares.ecore#//Run/finished"/>
+ </genClasses>
+ <genClasses ecoreClass="ares.ecore#//Failure">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ares.ecore#//Failure/constraint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ares.ecore#//Failure/issue"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ares.ecore#//Failure/actualValue"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATest.xtext b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATest.xtext
new file mode 100644
index 0000000..6285313
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATest.xtext
@@ -0,0 +1,32 @@
+grammar org.eclipse.amp.amf.testing.ATest with org.eclipse.xtext.common.Terminals
+
+generate aTest "http://www.eclipse.org/amp/amf/testing/ATest"
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+import 'platform:/resource/org.eclipse.amp.amf.acore/src/model/metaabm.ecore'
+
+Model :
+ (name=STRING)?
+ (description=PLAIN_STRING)?
+ (tests=Tests)?
+ (contraints+=Constraint)*;
+
+Tests :
+ 'TESTS' importURI=STRING;
+
+Constraint :
+ measure=Measure "(" agent=[SAgent|STRING]":"attribute=[SAttribute|STRING] (":" qualifier=[SStateValue|STRING])? ")" ("=" "[" minValue=(IntValue|RealValue) "," maxValue=(IntValue|RealValue) "]");
+
+enum Measure :
+ COUNT = "Count" | AVERAGE = "Average" | SUM = "Sum" | MINIMUM = "Minimum" | MAXIMUM = "Maximum";
+
+IntValue :
+ value=INT;
+
+RealValue :
+ value=REAL;
+
+terminal REAL :
+ "-"? INT ("." INT)?;
+
+terminal PLAIN_STRING :
+ '«'( '\\' ('b'|'t'|'n'|'f'|'r'|'"'|"'"|'\\') | !('\\'|'«'|'»') )*'»';
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestInterpreter.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestInterpreter.java
new file mode 100644
index 0000000..ea13c21
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestInterpreter.java
@@ -0,0 +1,105 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2009 Metascape, LLC.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Metascape - Initial API and Implementation
+ *
+ * </copyright>
+ *
+ */
+
+package org.eclipse.amp.amf.testing;
+
+import org.eclipse.amp.amf.parameters.AParInterpreter;
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+import org.eclipse.amp.amf.testing.aTest.IntValue;
+import org.eclipse.amp.amf.testing.aTest.Model;
+import org.eclipse.amp.amf.testing.aTest.RealValue;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.ui.statushandlers.StatusManager;
+
+/**
+ *
+ * @author mparker
+ *
+ */
+public class ATestInterpreter {
+
+ Model atestModel;
+
+ AParInterpreter aparInterpreter;
+
+ private IResource modelResource;
+
+ public ATestInterpreter(IResource modelResource) {
+ this.modelResource = modelResource;
+ ResourceSet resources = new ResourceSetImpl();
+ IPath filePath = ((IFile) modelResource).getFullPath();
+ URI atestLoc = URI.createPlatformResourceURI(filePath.toString(), true);
+ Resource atest = resources.getResource(atestLoc, true);
+ atestModel = (Model) atest.getContents().get(0);
+
+ URI aparLoc = atestLoc.trimFileExtension().appendFileExtension("apar");
+ Resource aparAnalog = resources.getResource(aparLoc, true);
+ if (aparAnalog == null) {
+ StatusManager.getManager().handle(
+ new Status(Status.WARNING, "org.eclipse.amp.amf.parameters",
+ "Couldn't locate apar resource."));
+ } else {
+ IWorkspace workspace = ResourcesPlugin.getWorkspace();
+ aparInterpreter = new AParInterpreter(workspace.getRoot()
+ .getFile(new Path(aparLoc.toPlatformString(true))));
+ }
+ }
+
+ public Model getAtestModel() {
+ return atestModel;
+ }
+
+ public AParInterpreter getAparInterpreter() {
+ return aparInterpreter;
+ }
+
+ public IResource getResource() {
+ return modelResource;
+ }
+
+ public String getConstraintString() {
+ String constraintString = "";
+ for (Constraint constraint : atestModel.getContraints()) {
+ constraintString += constraint.getAttribute().getID() + "\t"
+ + valueOf(constraint.getMinValue()) + "\t"
+ + valueOf(constraint.getMinValue()) + "\r";
+ }
+ return constraintString;
+ }
+
+ public double valueOf(EObject constraintValue) {
+ if (constraintValue instanceof IntValue) {
+ return ((IntValue) constraintValue).getValue();
+ } else if (constraintValue instanceof RealValue) {
+ return Double.valueOf(((RealValue) constraintValue).getValue());
+ } else if (constraintValue == null) {
+ return Double.NaN;
+ }
+ throw new RuntimeException("Unexpected value for constraint.");
+ }
+
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestResourceFactory.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestResourceFactory.java
new file mode 100644
index 0000000..3bfeb68
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestResourceFactory.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2009 Metascape, LLC.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Metascape - Initial API and Implementation
+ *
+ * </copyright>
+ *
+ */
+
+package org.eclipse.amp.amf.testing;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.resource.XtextResourceFactory;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+/**
+ *
+ * @author mparker
+ *
+ */
+public class ATestResourceFactory extends XtextResourceFactory {
+
+ /**
+ * @param resourceProvider
+ */
+ @Inject
+ public ATestResourceFactory(Provider<XtextResource> resourceProvider) {
+ super(resourceProvider);
+ XtextResource xtextResource = resourceProvider.get();
+ URI testFileURI = xtextResource.getURI();
+ testFileURI.trimFileExtension().appendFileExtension("apar");
+ resourceProvider.get().getResourceSet().getResource(testFileURI, true);
+ }
+
+ /**
+ * @param uri
+ * @return
+ * @see org.eclipse.xtext.resource.XtextResourceFactory#createResource(org.eclipse.emf.common.util.URI)
+ */
+ public Resource createResource(URI uri) {
+ return super.createResource(uri);
+ }
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestRuntimeModule.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestRuntimeModule.java
new file mode 100644
index 0000000..1ac4f5d
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ATestRuntimeModule.java
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.amp.amf.testing;
+
+import org.eclipse.amp.amf.parameters.scoping.AParImportResolver;
+import org.eclipse.xtext.scoping.impl.ImportUriResolver;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class ATestRuntimeModule extends org.eclipse.amp.amf.testing.AbstractATestRuntimeModule {
+
+ public Class<? extends ImportUriResolver> bindImportUriResolver() {
+ return AParImportResolver.class;
+ }
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/GenerateATest.mwe b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/GenerateATest.mwe
new file mode 100644
index 0000000..46555ce
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/GenerateATest.mwe
@@ -0,0 +1,77 @@
+<workflow>
+ <property file="org/eclipse/amp/amf/testing/GenerateATest.properties"/>
+
+ <property name="runtimeProject" value="../${projectName}"/>
+
+ <bean class="org.eclipse.emf.mwe.utils.StandaloneSetup" platformUri="${runtimeProject}/..">
+ <registerGeneratedEPackage value="org.metaabm.MetaABMPackage"/>
+ <registerGeneratedEPackage value="org.metaabm.act.MetaABMActPackage"/>
+ <registerGeneratedEPackage value="org.metaabm.function.MetaABMFunctionPackage"/>
+ </bean>
+
+ <bean class="org.eclipse.emf.mwe.utils.StandaloneSetup" platformUri="${runtimeProject}/.."/>
+
+ <component class="org.eclipse.emf.mwe.utils.DirectoryCleaner" directory="${runtimeProject}/src-gen"/>
+ <component class="org.eclipse.emf.mwe.utils.DirectoryCleaner" directory="${runtimeProject}.ui/src-gen"/>
+
+ <component class="org.eclipse.xtext.generator.Generator">
+ <pathRtProject value="${runtimeProject}"/>
+ <pathUiProject value="${runtimeProject}.ui"/>
+ <projectNameRt value="${projectName}"/>
+ <projectNameUi value="${projectName}.ui"/>
+
+ <language uri="${grammarURI}" fileExtensions="${file.extensions}">
+ <!-- Java API to access grammar elements (required by several other fragments) -->
+ <fragment class="org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment"/>
+
+ <!-- generates Java API for the generated EPackages -->
+ <fragment class="org.eclipse.xtext.generator.ecore.EcoreGeneratorFragment" genModels="platform:/resource/org.eclipse.amp.amf.acore/src/model/metaabm.genmodel"/>
+
+ <!-- the serialization component -->
+ <fragment class="org.eclipse.xtext.generator.parseTreeConstructor.ParseTreeConstructorFragment"/>
+
+ <!-- a custom ResourceFactory for use with EMF -->
+ <fragment class="org.eclipse.xtext.generator.resourceFactory.ResourceFactoryFragment"
+ fileExtensions="${file.extensions}"/>
+
+ <!-- the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/ -->
+ <fragment class="org.eclipse.xtext.generator.AntlrDelegatingFragment" />
+
+ <!-- If you don't want to use the Antlr fragment for some reason, remove the antlr fragment and uncomment the packrat parser fragment below.
+ <fragment class="org.eclipse.xtext.generator.parser.PackratParserFragment"/>
+ -->
+
+
+ <!-- java-based API for validation -->
+ <fragment class="org.eclipse.xtext.generator.validation.JavaValidatorFragment">
+ <composedCheck value="org.eclipse.xtext.validation.ImportUriValidator"/>
+ </fragment>
+
+
+ <!-- scoping API -->
+ <fragment class="org.eclipse.xtext.generator.scoping.JavaScopingFragment"/>
+
+ <!-- formatter API -->
+ <fragment class="org.eclipse.xtext.generator.formatting.FormatterFragment"/>
+
+ <!-- labeling API -->
+ <fragment class="org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment"/>
+
+ <!-- outline API -->
+ <fragment class="org.eclipse.xtext.ui.generator.outline.TransformerFragment"/>
+ <fragment class="org.eclipse.xtext.ui.generator.outline.OutlineNodeAdapterFactoryFragment"/>
+
+
+ <!-- java-based API for content assistance -->
+ <fragment class="org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment"/>
+ <!-- the following fragment tries to use the Antlr based content assist fragment which can be downloaded from http://www.itemis.com
+ and will be ignored if it's not available. -->
+ <fragment class="org.eclipse.xtext.generator.DelegatingGeneratorFragment"
+ delegate="de.itemis.xtext.antlr.XtextAntlrUiGeneratorFragment"
+ message="You are generating without ANTLR. It is highly recommended to download and use the plugin 'de.itemis.xtext.antlr' \n\t using the update site http://download.itemis.com/updates/.">
+ </fragment>
+ <!-- <fragment class="de.itemis.xtext.antlr.XtextAntlrUiGeneratorFragment"/> -->
+
+ </language>
+ </component>
+</workflow>
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/GenerateATest.properties b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/GenerateATest.properties
new file mode 100644
index 0000000..3dc9e26
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/GenerateATest.properties
@@ -0,0 +1,3 @@
+grammarURI=classpath:/org/eclipse/amp/amf/testing/ATest.xtext
+file.extensions=atest
+projectName=org.eclipse.amp.amf.testing
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/AresFactory.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/AresFactory.java
new file mode 100644
index 0000000..12763d7
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/AresFactory.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AresFactory.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage
+ * @generated
+ */
+public interface AresFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ AresFactory eINSTANCE = org.eclipse.amp.amf.testing.ares.impl.AresFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Run</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Run</em>'.
+ * @generated
+ */
+ Run createRun();
+
+ /**
+ * Returns a new object of class '<em>Failure</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Failure</em>'.
+ * @generated
+ */
+ Failure createFailure();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ AresPackage getAresPackage();
+
+} //AresFactory
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/AresPackage.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/AresPackage.java
new file mode 100644
index 0000000..18af8e6
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/AresPackage.java
@@ -0,0 +1,534 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AresPackage.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.AresFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface AresPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "ares";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://eclipse.org/amp/ares";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "ares";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ AresPackage eINSTANCE = org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl <em>Run</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.impl.RunImpl
+ * @see org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl#getRun()
+ * @generated
+ */
+ int RUN = 0;
+
+ /**
+ * The feature id for the '<em><b>Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN__MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Test Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN__TEST_MODEL = 1;
+
+ /**
+ * The feature id for the '<em><b>Parameter Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN__PARAMETER_MODEL = 2;
+
+ /**
+ * The feature id for the '<em><b>Result</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN__RESULT = 3;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN__PARAMETERS = 4;
+
+ /**
+ * The feature id for the '<em><b>Constraints</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN__CONSTRAINTS = 5;
+
+ /**
+ * The feature id for the '<em><b>Started</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN__STARTED = 6;
+
+ /**
+ * The feature id for the '<em><b>Finished</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN__FINISHED = 7;
+
+ /**
+ * The number of structural features of the '<em>Run</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RUN_FEATURE_COUNT = 8;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.ares.impl.FailureImpl <em>Failure</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.impl.FailureImpl
+ * @see org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl#getFailure()
+ * @generated
+ */
+ int FAILURE = 1;
+
+ /**
+ * The feature id for the '<em><b>Constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAILURE__CONSTRAINT = 0;
+
+ /**
+ * The feature id for the '<em><b>Issue</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAILURE__ISSUE = 1;
+
+ /**
+ * The feature id for the '<em><b>Actual Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAILURE__ACTUAL_VALUE = 2;
+
+ /**
+ * The number of structural features of the '<em>Failure</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAILURE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.ares.Result <em>Result</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.Result
+ * @see org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl#getResult()
+ * @generated
+ */
+ int RESULT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.amp.amf.testing.ares.Issue <em>Issue</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.Issue
+ * @see org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl#getIssue()
+ * @generated
+ */
+ int ISSUE = 3;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.amp.amf.testing.ares.Run <em>Run</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Run</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run
+ * @generated
+ */
+ EClass getRun();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.amp.amf.testing.ares.Run#getModel <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Model</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run#getModel()
+ * @see #getRun()
+ * @generated
+ */
+ EReference getRun_Model();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.amp.amf.testing.ares.Run#getTestModel <em>Test Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Test Model</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run#getTestModel()
+ * @see #getRun()
+ * @generated
+ */
+ EReference getRun_TestModel();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.amp.amf.testing.ares.Run#getParameterModel <em>Parameter Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Parameter Model</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run#getParameterModel()
+ * @see #getRun()
+ * @generated
+ */
+ EReference getRun_ParameterModel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.ares.Run#getResult <em>Result</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Result</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run#getResult()
+ * @see #getRun()
+ * @generated
+ */
+ EAttribute getRun_Result();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.amp.amf.testing.ares.Run#getParameters <em>Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Parameters</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run#getParameters()
+ * @see #getRun()
+ * @generated
+ */
+ EReference getRun_Parameters();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.amp.amf.testing.ares.Run#getConstraints <em>Constraints</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Constraints</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run#getConstraints()
+ * @see #getRun()
+ * @generated
+ */
+ EReference getRun_Constraints();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.ares.Run#getStarted <em>Started</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Started</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run#getStarted()
+ * @see #getRun()
+ * @generated
+ */
+ EAttribute getRun_Started();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.ares.Run#getFinished <em>Finished</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Finished</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Run#getFinished()
+ * @see #getRun()
+ * @generated
+ */
+ EAttribute getRun_Finished();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.amp.amf.testing.ares.Failure <em>Failure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Failure</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Failure
+ * @generated
+ */
+ EClass getFailure();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.amp.amf.testing.ares.Failure#getConstraint <em>Constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Constraint</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Failure#getConstraint()
+ * @see #getFailure()
+ * @generated
+ */
+ EReference getFailure_Constraint();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.ares.Failure#getIssue <em>Issue</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Issue</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Failure#getIssue()
+ * @see #getFailure()
+ * @generated
+ */
+ EAttribute getFailure_Issue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.amp.amf.testing.ares.Failure#getActualValue <em>Actual Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Actual Value</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Failure#getActualValue()
+ * @see #getFailure()
+ * @generated
+ */
+ EAttribute getFailure_ActualValue();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.amp.amf.testing.ares.Result <em>Result</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Result</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Result
+ * @generated
+ */
+ EEnum getResult();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.amp.amf.testing.ares.Issue <em>Issue</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Issue</em>'.
+ * @see org.eclipse.amp.amf.testing.ares.Issue
+ * @generated
+ */
+ EEnum getIssue();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ AresFactory getAresFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl <em>Run</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.impl.RunImpl
+ * @see org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl#getRun()
+ * @generated
+ */
+ EClass RUN = eINSTANCE.getRun();
+
+ /**
+ * The meta object literal for the '<em><b>Model</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RUN__MODEL = eINSTANCE.getRun_Model();
+
+ /**
+ * The meta object literal for the '<em><b>Test Model</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RUN__TEST_MODEL = eINSTANCE.getRun_TestModel();
+
+ /**
+ * The meta object literal for the '<em><b>Parameter Model</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RUN__PARAMETER_MODEL = eINSTANCE.getRun_ParameterModel();
+
+ /**
+ * The meta object literal for the '<em><b>Result</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RUN__RESULT = eINSTANCE.getRun_Result();
+
+ /**
+ * The meta object literal for the '<em><b>Parameters</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RUN__PARAMETERS = eINSTANCE.getRun_Parameters();
+
+ /**
+ * The meta object literal for the '<em><b>Constraints</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RUN__CONSTRAINTS = eINSTANCE.getRun_Constraints();
+
+ /**
+ * The meta object literal for the '<em><b>Started</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RUN__STARTED = eINSTANCE.getRun_Started();
+
+ /**
+ * The meta object literal for the '<em><b>Finished</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RUN__FINISHED = eINSTANCE.getRun_Finished();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.ares.impl.FailureImpl <em>Failure</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.impl.FailureImpl
+ * @see org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl#getFailure()
+ * @generated
+ */
+ EClass FAILURE = eINSTANCE.getFailure();
+
+ /**
+ * The meta object literal for the '<em><b>Constraint</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FAILURE__CONSTRAINT = eINSTANCE.getFailure_Constraint();
+
+ /**
+ * The meta object literal for the '<em><b>Issue</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FAILURE__ISSUE = eINSTANCE.getFailure_Issue();
+
+ /**
+ * The meta object literal for the '<em><b>Actual Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FAILURE__ACTUAL_VALUE = eINSTANCE.getFailure_ActualValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.ares.Result <em>Result</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.Result
+ * @see org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl#getResult()
+ * @generated
+ */
+ EEnum RESULT = eINSTANCE.getResult();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.amp.amf.testing.ares.Issue <em>Issue</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.Issue
+ * @see org.eclipse.amp.amf.testing.ares.impl.AresPackageImpl#getIssue()
+ * @generated
+ */
+ EEnum ISSUE = eINSTANCE.getIssue();
+
+ }
+
+} //AresPackage
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Failure.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Failure.java
new file mode 100644
index 0000000..192c214
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Failure.java
@@ -0,0 +1,113 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Failure.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares;
+
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Failure</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Failure#getConstraint <em>Constraint</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Failure#getIssue <em>Issue</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Failure#getActualValue <em>Actual Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getFailure()
+ * @model
+ * @generated
+ */
+public interface Failure extends EObject {
+ /**
+ * Returns the value of the '<em><b>Constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Constraint</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Constraint</em>' reference.
+ * @see #setConstraint(Constraint)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getFailure_Constraint()
+ * @model
+ * @generated
+ */
+ Constraint getConstraint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Failure#getConstraint <em>Constraint</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Constraint</em>' reference.
+ * @see #getConstraint()
+ * @generated
+ */
+ void setConstraint(Constraint value);
+
+ /**
+ * Returns the value of the '<em><b>Issue</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.amp.amf.testing.ares.Issue}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Issue</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Issue</em>' attribute.
+ * @see org.eclipse.amp.amf.testing.ares.Issue
+ * @see #setIssue(Issue)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getFailure_Issue()
+ * @model required="true"
+ * @generated
+ */
+ Issue getIssue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Failure#getIssue <em>Issue</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Issue</em>' attribute.
+ * @see org.eclipse.amp.amf.testing.ares.Issue
+ * @see #getIssue()
+ * @generated
+ */
+ void setIssue(Issue value);
+
+ /**
+ * Returns the value of the '<em><b>Actual Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actual Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actual Value</em>' attribute.
+ * @see #setActualValue(double)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getFailure_ActualValue()
+ * @model required="true"
+ * @generated
+ */
+ double getActualValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Failure#getActualValue <em>Actual Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Actual Value</em>' attribute.
+ * @see #getActualValue()
+ * @generated
+ */
+ void setActualValue(double value);
+
+} // Failure
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Issue.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Issue.java
new file mode 100644
index 0000000..8871d04
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Issue.java
@@ -0,0 +1,212 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Issue.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Issue</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getIssue()
+ * @model
+ * @generated
+ */
+public enum Issue implements Enumerator {
+ /**
+ * The '<em><b>Below Range</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BELOW_RANGE_VALUE
+ * @generated
+ * @ordered
+ */
+ BELOW_RANGE(10, "BelowRange", "BELOW_RANGE"),
+
+ /**
+ * The '<em><b>Above Range</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ABOVE_RANGE_VALUE
+ * @generated
+ * @ordered
+ */
+ ABOVE_RANGE(15, "AboveRange", "ABOVE_RANGE");
+
+ /**
+ * The '<em><b>Below Range</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Below Range</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BELOW_RANGE
+ * @model name="BelowRange" literal="BELOW_RANGE"
+ * @generated
+ * @ordered
+ */
+ public static final int BELOW_RANGE_VALUE = 10;
+
+ /**
+ * The '<em><b>Above Range</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Above Range</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ABOVE_RANGE
+ * @model name="AboveRange" literal="ABOVE_RANGE"
+ * @generated
+ * @ordered
+ */
+ public static final int ABOVE_RANGE_VALUE = 15;
+
+ /**
+ * An array of all the '<em><b>Issue</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Issue[] VALUES_ARRAY =
+ new Issue[] {
+ BELOW_RANGE,
+ ABOVE_RANGE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Issue</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Issue> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Issue</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Issue get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Issue result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Issue</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Issue getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Issue result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Issue</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Issue get(int value) {
+ switch (value) {
+ case BELOW_RANGE_VALUE: return BELOW_RANGE;
+ case ABOVE_RANGE_VALUE: return ABOVE_RANGE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Issue(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Issue
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Result.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Result.java
new file mode 100644
index 0000000..88f9f41
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Result.java
@@ -0,0 +1,239 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Result.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Result</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getResult()
+ * @model
+ * @generated
+ */
+public enum Result implements Enumerator {
+ /**
+ * The '<em><b>Incomplete</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INCOMPLETE_VALUE
+ * @generated
+ * @ordered
+ */
+ INCOMPLETE(1, "Incomplete", "INCOMPLETE"),
+
+ /**
+ * The '<em><b>Success</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SUCCESS_VALUE
+ * @generated
+ * @ordered
+ */
+ SUCCESS(2, "Success", "SUCCESS"),
+
+ /**
+ * The '<em><b>Failure</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FAILURE_VALUE
+ * @generated
+ * @ordered
+ */
+ FAILURE(3, "Failure", "FAILURE");
+
+ /**
+ * The '<em><b>Incomplete</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Incomplete</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INCOMPLETE
+ * @model name="Incomplete" literal="INCOMPLETE"
+ * @generated
+ * @ordered
+ */
+ public static final int INCOMPLETE_VALUE = 1;
+
+ /**
+ * The '<em><b>Success</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Success</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SUCCESS
+ * @model name="Success" literal="SUCCESS"
+ * @generated
+ * @ordered
+ */
+ public static final int SUCCESS_VALUE = 2;
+
+ /**
+ * The '<em><b>Failure</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Failure</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FAILURE
+ * @model name="Failure" literal="FAILURE"
+ * @generated
+ * @ordered
+ */
+ public static final int FAILURE_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Result</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Result[] VALUES_ARRAY =
+ new Result[] {
+ INCOMPLETE,
+ SUCCESS,
+ FAILURE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Result</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Result> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Result</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Result get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Result result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Result</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Result getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Result result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Result</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Result get(int value) {
+ switch (value) {
+ case INCOMPLETE_VALUE: return INCOMPLETE;
+ case SUCCESS_VALUE: return SUCCESS;
+ case FAILURE_VALUE: return FAILURE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Result(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Result
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Run.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Run.java
new file mode 100644
index 0000000..eed6c61
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/Run.java
@@ -0,0 +1,238 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Run.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares;
+
+import java.util.Date;
+
+import org.eclipse.amp.amf.parameters.aPar.Parameter;
+
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+import org.eclipse.amp.amf.testing.aTest.Model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.metaabm.SContinuousSpace;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Run</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Run#getModel <em>Model</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Run#getTestModel <em>Test Model</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Run#getParameterModel <em>Parameter Model</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Run#getResult <em>Result</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Run#getParameters <em>Parameters</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Run#getConstraints <em>Constraints</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Run#getStarted <em>Started</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.Run#getFinished <em>Finished</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun()
+ * @model
+ * @generated
+ */
+public interface Run extends EObject {
+ /**
+ * Returns the value of the '<em><b>Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Model</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Model</em>' reference.
+ * @see #setModel(SContinuousSpace)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun_Model()
+ * @model required="true"
+ * @generated
+ */
+ SContinuousSpace getModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Run#getModel <em>Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Model</em>' reference.
+ * @see #getModel()
+ * @generated
+ */
+ void setModel(SContinuousSpace value);
+
+ /**
+ * Returns the value of the '<em><b>Test Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Test Model</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Test Model</em>' reference.
+ * @see #setTestModel(Model)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun_TestModel()
+ * @model required="true"
+ * @generated
+ */
+ Model getTestModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Run#getTestModel <em>Test Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Test Model</em>' reference.
+ * @see #getTestModel()
+ * @generated
+ */
+ void setTestModel(Model value);
+
+ /**
+ * Returns the value of the '<em><b>Parameter Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameter Model</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parameter Model</em>' reference.
+ * @see #setParameterModel(org.eclipse.amp.amf.parameters.aPar.Model)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun_ParameterModel()
+ * @model
+ * @generated
+ */
+ org.eclipse.amp.amf.parameters.aPar.Model getParameterModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Run#getParameterModel <em>Parameter Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parameter Model</em>' reference.
+ * @see #getParameterModel()
+ * @generated
+ */
+ void setParameterModel(org.eclipse.amp.amf.parameters.aPar.Model value);
+
+ /**
+ * Returns the value of the '<em><b>Result</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * The literals are from the enumeration {@link org.eclipse.amp.amf.testing.ares.Result}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Result</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Result</em>' attribute.
+ * @see org.eclipse.amp.amf.testing.ares.Result
+ * @see #setResult(Result)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun_Result()
+ * @model default=""
+ * @generated
+ */
+ Result getResult();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Run#getResult <em>Result</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Result</em>' attribute.
+ * @see org.eclipse.amp.amf.testing.ares.Result
+ * @see #getResult()
+ * @generated
+ */
+ void setResult(Result value);
+
+ /**
+ * Returns the value of the '<em><b>Parameters</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.amp.amf.parameters.aPar.Parameter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameters</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parameters</em>' containment reference list.
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun_Parameters()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Parameter> getParameters();
+
+ /**
+ * Returns the value of the '<em><b>Constraints</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.amp.amf.testing.aTest.Constraint}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Constraints</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Constraints</em>' reference list.
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun_Constraints()
+ * @model
+ * @generated
+ */
+ EList<Constraint> getConstraints();
+
+ /**
+ * Returns the value of the '<em><b>Started</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Started</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Started</em>' attribute.
+ * @see #setStarted(Date)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun_Started()
+ * @model
+ * @generated
+ */
+ Date getStarted();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Run#getStarted <em>Started</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Started</em>' attribute.
+ * @see #getStarted()
+ * @generated
+ */
+ void setStarted(Date value);
+
+ /**
+ * Returns the value of the '<em><b>Finished</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Finished</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Finished</em>' attribute.
+ * @see #setFinished(Date)
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#getRun_Finished()
+ * @model
+ * @generated
+ */
+ Date getFinished();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.amp.amf.testing.ares.Run#getFinished <em>Finished</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Finished</em>' attribute.
+ * @see #getFinished()
+ * @generated
+ */
+ void setFinished(Date value);
+
+} // Run
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/AresFactoryImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/AresFactoryImpl.java
new file mode 100644
index 0000000..9d3ae4b
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/AresFactoryImpl.java
@@ -0,0 +1,185 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AresFactoryImpl.java,v 1.1 2009/07/31 21:48:18 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares.impl;
+
+import org.eclipse.amp.amf.testing.ares.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AresFactoryImpl extends EFactoryImpl implements AresFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AresFactory init() {
+ try {
+ AresFactory theAresFactory = (AresFactory)EPackage.Registry.INSTANCE.getEFactory("http://eclipse.org/amp/ares");
+ if (theAresFactory != null) {
+ return theAresFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new AresFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AresFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case AresPackage.RUN: return createRun();
+ case AresPackage.FAILURE: return createFailure();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case AresPackage.RESULT:
+ return createResultFromString(eDataType, initialValue);
+ case AresPackage.ISSUE:
+ return createIssueFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case AresPackage.RESULT:
+ return convertResultToString(eDataType, instanceValue);
+ case AresPackage.ISSUE:
+ return convertIssueToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Run createRun() {
+ RunImpl run = new RunImpl();
+ return run;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Failure createFailure() {
+ FailureImpl failure = new FailureImpl();
+ return failure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Result createResultFromString(EDataType eDataType, String initialValue) {
+ Result result = Result.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertResultToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Issue createIssueFromString(EDataType eDataType, String initialValue) {
+ Issue result = Issue.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertIssueToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AresPackage getAresPackage() {
+ return (AresPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static AresPackage getPackage() {
+ return AresPackage.eINSTANCE;
+ }
+
+} //AresFactoryImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/AresPackageImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/AresPackageImpl.java
new file mode 100644
index 0000000..bc093ef
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/AresPackageImpl.java
@@ -0,0 +1,377 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AresPackageImpl.java,v 1.1 2009/07/31 21:48:18 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares.impl;
+
+import org.eclipse.amp.amf.parameters.aPar.AParPackage;
+
+import org.eclipse.amp.amf.testing.aTest.ATestPackage;
+
+import org.eclipse.amp.amf.testing.ares.AresFactory;
+import org.eclipse.amp.amf.testing.ares.AresPackage;
+import org.eclipse.amp.amf.testing.ares.Failure;
+import org.eclipse.amp.amf.testing.ares.Issue;
+import org.eclipse.amp.amf.testing.ares.Result;
+import org.eclipse.amp.amf.testing.ares.Run;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.metaabm.MetaABMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AresPackageImpl extends EPackageImpl implements AresPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass runEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass failureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum resultEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum issueEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private AresPackageImpl() {
+ super(eNS_URI, AresFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link AresPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static AresPackage init() {
+ if (isInited) return (AresPackage)EPackage.Registry.INSTANCE.getEPackage(AresPackage.eNS_URI);
+
+ // Obtain or create and register package
+ AresPackageImpl theAresPackage = (AresPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof AresPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new AresPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ AParPackage.eINSTANCE.eClass();
+ ATestPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theAresPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theAresPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theAresPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(AresPackage.eNS_URI, theAresPackage);
+ return theAresPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRun() {
+ return runEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRun_Model() {
+ return (EReference)runEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRun_TestModel() {
+ return (EReference)runEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRun_ParameterModel() {
+ return (EReference)runEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRun_Result() {
+ return (EAttribute)runEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRun_Parameters() {
+ return (EReference)runEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRun_Constraints() {
+ return (EReference)runEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRun_Started() {
+ return (EAttribute)runEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRun_Finished() {
+ return (EAttribute)runEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFailure() {
+ return failureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFailure_Constraint() {
+ return (EReference)failureEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFailure_Issue() {
+ return (EAttribute)failureEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFailure_ActualValue() {
+ return (EAttribute)failureEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getResult() {
+ return resultEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getIssue() {
+ return issueEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AresFactory getAresFactory() {
+ return (AresFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ runEClass = createEClass(RUN);
+ createEReference(runEClass, RUN__MODEL);
+ createEReference(runEClass, RUN__TEST_MODEL);
+ createEReference(runEClass, RUN__PARAMETER_MODEL);
+ createEAttribute(runEClass, RUN__RESULT);
+ createEReference(runEClass, RUN__PARAMETERS);
+ createEReference(runEClass, RUN__CONSTRAINTS);
+ createEAttribute(runEClass, RUN__STARTED);
+ createEAttribute(runEClass, RUN__FINISHED);
+
+ failureEClass = createEClass(FAILURE);
+ createEReference(failureEClass, FAILURE__CONSTRAINT);
+ createEAttribute(failureEClass, FAILURE__ISSUE);
+ createEAttribute(failureEClass, FAILURE__ACTUAL_VALUE);
+
+ // Create enums
+ resultEEnum = createEEnum(RESULT);
+ issueEEnum = createEEnum(ISSUE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ MetaABMPackage theMetaABMPackage = (MetaABMPackage)EPackage.Registry.INSTANCE.getEPackage(MetaABMPackage.eNS_URI);
+ ATestPackage theATestPackage = (ATestPackage)EPackage.Registry.INSTANCE.getEPackage(ATestPackage.eNS_URI);
+ AParPackage theAParPackage = (AParPackage)EPackage.Registry.INSTANCE.getEPackage(AParPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(runEClass, Run.class, "Run", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRun_Model(), theMetaABMPackage.getSContinuousSpace(), null, "model", null, 1, 1, Run.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRun_TestModel(), theATestPackage.getModel(), null, "testModel", null, 1, 1, Run.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRun_ParameterModel(), theAParPackage.getModel(), null, "parameterModel", null, 0, 1, Run.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRun_Result(), this.getResult(), "result", "", 0, 1, Run.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRun_Parameters(), theAParPackage.getParameter(), null, "parameters", null, 0, -1, Run.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRun_Constraints(), theATestPackage.getConstraint(), null, "constraints", null, 0, -1, Run.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRun_Started(), ecorePackage.getEDate(), "started", null, 0, 1, Run.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRun_Finished(), ecorePackage.getEDate(), "finished", null, 0, 1, Run.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(failureEClass, Failure.class, "Failure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFailure_Constraint(), theATestPackage.getConstraint(), null, "constraint", null, 0, 1, Failure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFailure_Issue(), this.getIssue(), "issue", null, 1, 1, Failure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFailure_ActualValue(), ecorePackage.getEDouble(), "actualValue", null, 1, 1, Failure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(resultEEnum, Result.class, "Result");
+ addEEnumLiteral(resultEEnum, Result.INCOMPLETE);
+ addEEnumLiteral(resultEEnum, Result.SUCCESS);
+ addEEnumLiteral(resultEEnum, Result.FAILURE);
+
+ initEEnum(issueEEnum, Issue.class, "Issue");
+ addEEnumLiteral(issueEEnum, Issue.BELOW_RANGE);
+ addEEnumLiteral(issueEEnum, Issue.ABOVE_RANGE);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //AresPackageImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/FailureImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/FailureImpl.java
new file mode 100644
index 0000000..12e8ad2
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/FailureImpl.java
@@ -0,0 +1,285 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FailureImpl.java,v 1.1 2009/07/31 21:48:18 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares.impl;
+
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+
+import org.eclipse.amp.amf.testing.ares.AresPackage;
+import org.eclipse.amp.amf.testing.ares.Failure;
+import org.eclipse.amp.amf.testing.ares.Issue;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Failure</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.FailureImpl#getConstraint <em>Constraint</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.FailureImpl#getIssue <em>Issue</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.FailureImpl#getActualValue <em>Actual Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FailureImpl extends EObjectImpl implements Failure {
+ /**
+ * The cached value of the '{@link #getConstraint() <em>Constraint</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConstraint()
+ * @generated
+ * @ordered
+ */
+ protected Constraint constraint;
+
+ /**
+ * The default value of the '{@link #getIssue() <em>Issue</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIssue()
+ * @generated
+ * @ordered
+ */
+ protected static final Issue ISSUE_EDEFAULT = Issue.BELOW_RANGE;
+
+ /**
+ * The cached value of the '{@link #getIssue() <em>Issue</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIssue()
+ * @generated
+ * @ordered
+ */
+ protected Issue issue = ISSUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getActualValue() <em>Actual Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActualValue()
+ * @generated
+ * @ordered
+ */
+ protected static final double ACTUAL_VALUE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getActualValue() <em>Actual Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActualValue()
+ * @generated
+ * @ordered
+ */
+ protected double actualValue = ACTUAL_VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FailureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return AresPackage.Literals.FAILURE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getConstraint() {
+ if (constraint != null && constraint.eIsProxy()) {
+ InternalEObject oldConstraint = (InternalEObject)constraint;
+ constraint = (Constraint)eResolveProxy(oldConstraint);
+ if (constraint != oldConstraint) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, AresPackage.FAILURE__CONSTRAINT, oldConstraint, constraint));
+ }
+ }
+ return constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint basicGetConstraint() {
+ return constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setConstraint(Constraint newConstraint) {
+ Constraint oldConstraint = constraint;
+ constraint = newConstraint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.FAILURE__CONSTRAINT, oldConstraint, constraint));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Issue getIssue() {
+ return issue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIssue(Issue newIssue) {
+ Issue oldIssue = issue;
+ issue = newIssue == null ? ISSUE_EDEFAULT : newIssue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.FAILURE__ISSUE, oldIssue, issue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getActualValue() {
+ return actualValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActualValue(double newActualValue) {
+ double oldActualValue = actualValue;
+ actualValue = newActualValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.FAILURE__ACTUAL_VALUE, oldActualValue, actualValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case AresPackage.FAILURE__CONSTRAINT:
+ if (resolve) return getConstraint();
+ return basicGetConstraint();
+ case AresPackage.FAILURE__ISSUE:
+ return getIssue();
+ case AresPackage.FAILURE__ACTUAL_VALUE:
+ return getActualValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case AresPackage.FAILURE__CONSTRAINT:
+ setConstraint((Constraint)newValue);
+ return;
+ case AresPackage.FAILURE__ISSUE:
+ setIssue((Issue)newValue);
+ return;
+ case AresPackage.FAILURE__ACTUAL_VALUE:
+ setActualValue((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case AresPackage.FAILURE__CONSTRAINT:
+ setConstraint((Constraint)null);
+ return;
+ case AresPackage.FAILURE__ISSUE:
+ setIssue(ISSUE_EDEFAULT);
+ return;
+ case AresPackage.FAILURE__ACTUAL_VALUE:
+ setActualValue(ACTUAL_VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case AresPackage.FAILURE__CONSTRAINT:
+ return constraint != null;
+ case AresPackage.FAILURE__ISSUE:
+ return issue != ISSUE_EDEFAULT;
+ case AresPackage.FAILURE__ACTUAL_VALUE:
+ return actualValue != ACTUAL_VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (issue: ");
+ result.append(issue);
+ result.append(", actualValue: ");
+ result.append(actualValue);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FailureImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/RunImpl.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/RunImpl.java
new file mode 100644
index 0000000..8ce3ccf
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/impl/RunImpl.java
@@ -0,0 +1,557 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RunImpl.java,v 1.1 2009/07/31 21:48:18 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares.impl;
+
+import java.util.Collection;
+import java.util.Date;
+
+import org.eclipse.amp.amf.parameters.aPar.Parameter;
+
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+import org.eclipse.amp.amf.testing.aTest.Model;
+
+import org.eclipse.amp.amf.testing.ares.AresPackage;
+import org.eclipse.amp.amf.testing.ares.Result;
+import org.eclipse.amp.amf.testing.ares.Run;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.metaabm.SContinuousSpace;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Run</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl#getModel <em>Model</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl#getTestModel <em>Test Model</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl#getParameterModel <em>Parameter Model</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl#getResult <em>Result</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl#getParameters <em>Parameters</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl#getConstraints <em>Constraints</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl#getStarted <em>Started</em>}</li>
+ * <li>{@link org.eclipse.amp.amf.testing.ares.impl.RunImpl#getFinished <em>Finished</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RunImpl extends EObjectImpl implements Run {
+ /**
+ * The cached value of the '{@link #getModel() <em>Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModel()
+ * @generated
+ * @ordered
+ */
+ protected SContinuousSpace model;
+
+ /**
+ * The cached value of the '{@link #getTestModel() <em>Test Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTestModel()
+ * @generated
+ * @ordered
+ */
+ protected Model testModel;
+
+ /**
+ * The cached value of the '{@link #getParameterModel() <em>Parameter Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameterModel()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.amp.amf.parameters.aPar.Model parameterModel;
+
+ /**
+ * The default value of the '{@link #getResult() <em>Result</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResult()
+ * @generated
+ * @ordered
+ */
+ protected static final Result RESULT_EDEFAULT = Result.INCOMPLETE;
+
+ /**
+ * The cached value of the '{@link #getResult() <em>Result</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResult()
+ * @generated
+ * @ordered
+ */
+ protected Result result = RESULT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<Parameter> parameters;
+
+ /**
+ * The cached value of the '{@link #getConstraints() <em>Constraints</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConstraints()
+ * @generated
+ * @ordered
+ */
+ protected EList<Constraint> constraints;
+
+ /**
+ * The default value of the '{@link #getStarted() <em>Started</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStarted()
+ * @generated
+ * @ordered
+ */
+ protected static final Date STARTED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStarted() <em>Started</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStarted()
+ * @generated
+ * @ordered
+ */
+ protected Date started = STARTED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFinished() <em>Finished</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFinished()
+ * @generated
+ * @ordered
+ */
+ protected static final Date FINISHED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFinished() <em>Finished</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFinished()
+ * @generated
+ * @ordered
+ */
+ protected Date finished = FINISHED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RunImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return AresPackage.Literals.RUN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SContinuousSpace getModel() {
+ if (model != null && model.eIsProxy()) {
+ InternalEObject oldModel = (InternalEObject)model;
+ model = (SContinuousSpace)eResolveProxy(oldModel);
+ if (model != oldModel) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, AresPackage.RUN__MODEL, oldModel, model));
+ }
+ }
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SContinuousSpace basicGetModel() {
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModel(SContinuousSpace newModel) {
+ SContinuousSpace oldModel = model;
+ model = newModel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.RUN__MODEL, oldModel, model));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model getTestModel() {
+ if (testModel != null && testModel.eIsProxy()) {
+ InternalEObject oldTestModel = (InternalEObject)testModel;
+ testModel = (Model)eResolveProxy(oldTestModel);
+ if (testModel != oldTestModel) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, AresPackage.RUN__TEST_MODEL, oldTestModel, testModel));
+ }
+ }
+ return testModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model basicGetTestModel() {
+ return testModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTestModel(Model newTestModel) {
+ Model oldTestModel = testModel;
+ testModel = newTestModel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.RUN__TEST_MODEL, oldTestModel, testModel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.amp.amf.parameters.aPar.Model getParameterModel() {
+ if (parameterModel != null && parameterModel.eIsProxy()) {
+ InternalEObject oldParameterModel = (InternalEObject)parameterModel;
+ parameterModel = (org.eclipse.amp.amf.parameters.aPar.Model)eResolveProxy(oldParameterModel);
+ if (parameterModel != oldParameterModel) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, AresPackage.RUN__PARAMETER_MODEL, oldParameterModel, parameterModel));
+ }
+ }
+ return parameterModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.amp.amf.parameters.aPar.Model basicGetParameterModel() {
+ return parameterModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParameterModel(org.eclipse.amp.amf.parameters.aPar.Model newParameterModel) {
+ org.eclipse.amp.amf.parameters.aPar.Model oldParameterModel = parameterModel;
+ parameterModel = newParameterModel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.RUN__PARAMETER_MODEL, oldParameterModel, parameterModel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Result getResult() {
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setResult(Result newResult) {
+ Result oldResult = result;
+ result = newResult == null ? RESULT_EDEFAULT : newResult;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.RUN__RESULT, oldResult, result));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Parameter> getParameters() {
+ if (parameters == null) {
+ parameters = new EObjectContainmentEList<Parameter>(Parameter.class, this, AresPackage.RUN__PARAMETERS);
+ }
+ return parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Constraint> getConstraints() {
+ if (constraints == null) {
+ constraints = new EObjectResolvingEList<Constraint>(Constraint.class, this, AresPackage.RUN__CONSTRAINTS);
+ }
+ return constraints;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getStarted() {
+ return started;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStarted(Date newStarted) {
+ Date oldStarted = started;
+ started = newStarted;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.RUN__STARTED, oldStarted, started));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getFinished() {
+ return finished;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFinished(Date newFinished) {
+ Date oldFinished = finished;
+ finished = newFinished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AresPackage.RUN__FINISHED, oldFinished, finished));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case AresPackage.RUN__PARAMETERS:
+ return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case AresPackage.RUN__MODEL:
+ if (resolve) return getModel();
+ return basicGetModel();
+ case AresPackage.RUN__TEST_MODEL:
+ if (resolve) return getTestModel();
+ return basicGetTestModel();
+ case AresPackage.RUN__PARAMETER_MODEL:
+ if (resolve) return getParameterModel();
+ return basicGetParameterModel();
+ case AresPackage.RUN__RESULT:
+ return getResult();
+ case AresPackage.RUN__PARAMETERS:
+ return getParameters();
+ case AresPackage.RUN__CONSTRAINTS:
+ return getConstraints();
+ case AresPackage.RUN__STARTED:
+ return getStarted();
+ case AresPackage.RUN__FINISHED:
+ return getFinished();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case AresPackage.RUN__MODEL:
+ setModel((SContinuousSpace)newValue);
+ return;
+ case AresPackage.RUN__TEST_MODEL:
+ setTestModel((Model)newValue);
+ return;
+ case AresPackage.RUN__PARAMETER_MODEL:
+ setParameterModel((org.eclipse.amp.amf.parameters.aPar.Model)newValue);
+ return;
+ case AresPackage.RUN__RESULT:
+ setResult((Result)newValue);
+ return;
+ case AresPackage.RUN__PARAMETERS:
+ getParameters().clear();
+ getParameters().addAll((Collection<? extends Parameter>)newValue);
+ return;
+ case AresPackage.RUN__CONSTRAINTS:
+ getConstraints().clear();
+ getConstraints().addAll((Collection<? extends Constraint>)newValue);
+ return;
+ case AresPackage.RUN__STARTED:
+ setStarted((Date)newValue);
+ return;
+ case AresPackage.RUN__FINISHED:
+ setFinished((Date)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case AresPackage.RUN__MODEL:
+ setModel((SContinuousSpace)null);
+ return;
+ case AresPackage.RUN__TEST_MODEL:
+ setTestModel((Model)null);
+ return;
+ case AresPackage.RUN__PARAMETER_MODEL:
+ setParameterModel((org.eclipse.amp.amf.parameters.aPar.Model)null);
+ return;
+ case AresPackage.RUN__RESULT:
+ setResult(RESULT_EDEFAULT);
+ return;
+ case AresPackage.RUN__PARAMETERS:
+ getParameters().clear();
+ return;
+ case AresPackage.RUN__CONSTRAINTS:
+ getConstraints().clear();
+ return;
+ case AresPackage.RUN__STARTED:
+ setStarted(STARTED_EDEFAULT);
+ return;
+ case AresPackage.RUN__FINISHED:
+ setFinished(FINISHED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case AresPackage.RUN__MODEL:
+ return model != null;
+ case AresPackage.RUN__TEST_MODEL:
+ return testModel != null;
+ case AresPackage.RUN__PARAMETER_MODEL:
+ return parameterModel != null;
+ case AresPackage.RUN__RESULT:
+ return result != RESULT_EDEFAULT;
+ case AresPackage.RUN__PARAMETERS:
+ return parameters != null && !parameters.isEmpty();
+ case AresPackage.RUN__CONSTRAINTS:
+ return constraints != null && !constraints.isEmpty();
+ case AresPackage.RUN__STARTED:
+ return STARTED_EDEFAULT == null ? started != null : !STARTED_EDEFAULT.equals(started);
+ case AresPackage.RUN__FINISHED:
+ return FINISHED_EDEFAULT == null ? finished != null : !FINISHED_EDEFAULT.equals(finished);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (result: ");
+ result.append(result);
+ result.append(", started: ");
+ result.append(started);
+ result.append(", finished: ");
+ result.append(finished);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RunImpl
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/util/AresAdapterFactory.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/util/AresAdapterFactory.java
new file mode 100644
index 0000000..45dc269
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/util/AresAdapterFactory.java
@@ -0,0 +1,142 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AresAdapterFactory.java,v 1.1 2009/07/31 21:48:20 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares.util;
+
+import org.eclipse.amp.amf.testing.ares.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage
+ * @generated
+ */
+public class AresAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static AresPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AresAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = AresPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AresSwitch<Adapter> modelSwitch =
+ new AresSwitch<Adapter>() {
+ @Override
+ public Adapter caseRun(Run object) {
+ return createRunAdapter();
+ }
+ @Override
+ public Adapter caseFailure(Failure object) {
+ return createFailureAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.amp.amf.testing.ares.Run <em>Run</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.amp.amf.testing.ares.Run
+ * @generated
+ */
+ public Adapter createRunAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.amp.amf.testing.ares.Failure <em>Failure</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.amp.amf.testing.ares.Failure
+ * @generated
+ */
+ public Adapter createFailureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //AresAdapterFactory
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/util/AresSwitch.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/util/AresSwitch.java
new file mode 100644
index 0000000..93b54b3
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/util/AresSwitch.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AresSwitch.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares.util;
+
+import java.util.List;
+
+import org.eclipse.amp.amf.testing.ares.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.amp.amf.testing.ares.AresPackage
+ * @generated
+ */
+public class AresSwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static AresPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AresSwitch() {
+ if (modelPackage == null) {
+ modelPackage = AresPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case AresPackage.RUN: {
+ Run run = (Run)theEObject;
+ T result = caseRun(run);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AresPackage.FAILURE: {
+ Failure failure = (Failure)theEObject;
+ T result = caseFailure(failure);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Run</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Run</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRun(Run object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Failure</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Failure</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFailure(Failure object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //AresSwitch
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/validation/FailureValidator.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/validation/FailureValidator.java
new file mode 100644
index 0000000..d5dd6b6
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/validation/FailureValidator.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FailureValidator.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares.validation;
+
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+
+import org.eclipse.amp.amf.testing.ares.Issue;
+
+/**
+ * A sample validator interface for {@link org.eclipse.amp.amf.testing.ares.Failure}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FailureValidator {
+ boolean validate();
+
+ boolean validateConstraint(Constraint value);
+ boolean validateIssue(Issue value);
+ boolean validateActualValue(double value);
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/validation/RunValidator.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/validation/RunValidator.java
new file mode 100644
index 0000000..f192cad
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/ares/validation/RunValidator.java
@@ -0,0 +1,39 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RunValidator.java,v 1.1 2009/07/31 21:48:19 mparker Exp $
+ */
+package org.eclipse.amp.amf.testing.ares.validation;
+
+import java.util.Date;
+
+import org.eclipse.amp.amf.parameters.aPar.Parameter;
+
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+import org.eclipse.amp.amf.testing.aTest.Model;
+
+import org.eclipse.amp.amf.testing.ares.Result;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.metaabm.SContinuousSpace;
+
+/**
+ * A sample validator interface for {@link org.eclipse.amp.amf.testing.ares.Run}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface RunValidator {
+ boolean validate();
+
+ boolean validateModel(SContinuousSpace value);
+ boolean validateTestModel(Model value);
+ boolean validateParameterModel(org.eclipse.amp.amf.parameters.aPar.Model value);
+ boolean validateResult(Result value);
+ boolean validateParameters(EList<Parameter> value);
+ boolean validateConstraints(EList<Constraint> value);
+ boolean validateStarted(Date value);
+ boolean validateFinished(Date value);
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/formatting/ATestFormatter.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/formatting/ATestFormatter.java
new file mode 100644
index 0000000..a7179bf
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/formatting/ATestFormatter.java
@@ -0,0 +1,25 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.amp.amf.testing.formatting;
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
+/**
+ * This class contains custom formatting description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
+ * on how and when to use it
+ *
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class ATestFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+ org.eclipse.amp.amf.testing.services.ATestGrammarAccess f = (org.eclipse.amp.amf.testing.services.ATestGrammarAccess) getGrammarAccess();
+
+ //...
+ }
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/scoping/ATestImportResolver.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/scoping/ATestImportResolver.java
new file mode 100644
index 0000000..2c05dc2
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/scoping/ATestImportResolver.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2009 Metascape, LLC.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Metascape - Initial API and Implementation
+ *
+ * </copyright>
+ *
+ */
+
+package org.eclipse.amp.amf.testing.scoping;
+
+import static org.eclipse.amp.amf.parameters.scoping.AParImportResolver.convertURI;
+
+import org.eclipse.amp.amf.parameters.scoping.AParImportResolver;
+import org.eclipse.amp.amf.testing.aTest.Tests;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * @author mparker
+ *
+ */
+public class ATestImportResolver extends AParImportResolver {
+ /**
+ * @param object
+ * @return
+ * @see org.eclipse.xtext.scoping.impl.ImportUriResolver#resolve(org.eclipse.emf.ecore.EObject)
+ */
+ public String resolve(EObject object) {
+ if (object instanceof Tests) {
+ Tests model = (Tests) object;
+ model.setImportURI(convertURI(model));
+ }
+ return super.resolve(object);
+ }
+
+ public static String convertURI(Tests tests) {
+ return convertURI(tests, tests.getImportURI());
+ }
+
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/scoping/ATestScopeProvider.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/scoping/ATestScopeProvider.java
new file mode 100644
index 0000000..b639176
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/scoping/ATestScopeProvider.java
@@ -0,0 +1,94 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.amp.amf.testing.scoping;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.amp.amf.parameters.AParInterpreter;
+import org.eclipse.amp.amf.parameters.scoping.AParScopeProvider;
+import org.eclipse.amp.amf.testing.aTest.Constraint;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.ui.statushandlers.StatusManager;
+import org.eclipse.xtext.scoping.IScope;
+import org.eclipse.xtext.scoping.IScopedElement;
+import org.eclipse.xtext.scoping.impl.ScopedElement;
+import org.eclipse.xtext.scoping.impl.SimpleScope;
+import org.eclipse.xtext.xtend.scoping.Scope;
+import org.metaabm.MetaABMPackage;
+import org.metaabm.SAgent;
+import org.metaabm.SContext;
+import org.metaabm.SState;
+import org.metaabm.SStateValue;
+
+/**
+ * This class contains custom scoping description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping
+ * on how and when to use it
+ *
+ */
+public class ATestScopeProvider extends AParScopeProvider {
+
+ SContext context;
+
+ /**
+ * @param object
+ * @param reference
+ * @return
+ * @see org.eclipse.xtext.scoping.impl.DefaultScopeProvider#getScope(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EReference)
+ */
+ public IScope getScope(EObject object, EReference reference) {
+ if (context == null) {
+ ResourceSet resourceSet = object.eResource().getResourceSet();
+ URI testFileURI = object.eResource().getURI();
+ testFileURI = testFileURI.trimFileExtension().appendFileExtension("apar");
+ Resource aparAnalog = resourceSet.getResource(testFileURI, true);
+ if (aparAnalog == null) {
+ StatusManager.getManager().handle(
+ new Status(Status.WARNING, "org.eclipse.amp.amf.parameters",
+ "Couldn't locate engine context."));
+ } else {
+ AParInterpreter interpreter = new AParInterpreter(ResourcesPlugin.getWorkspace().getRoot()
+ .getFile(new Path(testFileURI.toPlatformString(true))));
+ context = interpreter.getTargetModel();
+ }
+ }
+ if (object instanceof Constraint) {
+ Constraint constraint = (Constraint) object;
+ List<IScopedElement> allElems = new ArrayList<IScopedElement>();
+ if (reference.getEType() == MetaABMPackage.eINSTANCE.getSAgent()) {
+ for (SAgent agent : context.getAgents()) {
+ allElems.add(ScopedElement.create(agent.getLabel(), agent));
+ }
+ } else if (reference.getEType() == MetaABMPackage.eINSTANCE.getSAttribute()) {
+ if (constraint.getAgent() != null) {
+ findAttributes(constraint.getAgent(), allElems, "");
+ } else {
+ return Scope.NULLSCOPE;
+ }
+ } else if (reference.getEType() == MetaABMPackage.eINSTANCE.getSStateValue()) {
+ if (constraint.getAttribute() instanceof SState) {
+ SState state = (SState) constraint.getAttribute();
+ for (SStateValue value : state.getOptions()) {
+ allElems.add(ScopedElement.create(value.getLabel(), value));
+ }
+ } else {
+ return Scope.NULLSCOPE;
+ }
+ }
+ SimpleScope attrScope = new SimpleScope(allElems);
+ return attrScope;
+ }
+ return super.getScope(object, reference);
+ }
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/validation/ATestJavaValidator.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/validation/ATestJavaValidator.java
new file mode 100644
index 0000000..35da960
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/src/org/eclipse/amp/amf/testing/validation/ATestJavaValidator.java
@@ -0,0 +1,13 @@
+package org.eclipse.amp.amf.testing.validation;
+
+
+public class ATestJavaValidator extends AbstractATestJavaValidator {
+
+// @Check
+// public void checkTypeNameStartsWithCapital(Type type) {
+// if (!Character.isUpperCase(type.getName().charAt(0))) {
+// warning("Name should start with a capital", MyDslPackage.TYPE__NAME);
+// }
+// }
+
+}
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/text/description.txt b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/text/description.txt
new file mode 100644
index 0000000..de8a1fc
--- /dev/null
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing/text/description.txt
@@ -0,0 +1,32 @@
+Model Ares
+
+This model description is not a real EMF artifact. It was generated by the
+org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
+code generator can be extended.
+This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+
+Package ares <http://eclipse.org/amp/ares>
+
+ Class Run
+ Reference model : SContinuousSpace<<1..1>>
+ Reference testModel : Model<<1..1>>
+ Reference parameterModel : Model
+ Attribute result : Result
+ Reference parameters : Parameter<<0..*>>
+ Reference constraints : Constraint<<0..*>>
+ Attribute started : EDate
+ Attribute finished : EDate
+
+ Class Failure
+ Reference constraint : Constraint
+ Attribute issue : Issue<<1..1>>
+ Attribute actualValue : EDouble<<1..1>>
+
+ Enum Result
+ Literal Incomplete = 1
+ Literal Success = 2
+ Literal Failure = 3
+
+ Enum Issue
+ Literal BelowRange = 10
+ Literal AboveRange = 15