Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd.Willink2013-05-11 14:02:52 +0000
committerEd.Willink2013-05-11 17:39:26 +0000
commit1988586d87a173d10f079a495d20c69e940163a1 (patch)
treeb82149c55d12eff8a858aca499274d28b61cbae0
parenta705a81627ffa8a1f98329125b2976e00203eb19 (diff)
downloadorg.eclipse.qvtd-1988586d87a173d10f079a495d20c69e940163a1.tar.gz
org.eclipse.qvtd-1988586d87a173d10f079a495d20c69e940163a1.tar.xz
org.eclipse.qvtd-1988586d87a173d10f079a495d20c69e940163a1.zip
[unrelated] Introduce QVTi Code Generator
-rw-r--r--plugins/org.eclipse.qvtd.codegen/.classpath8
-rw-r--r--plugins/org.eclipse.qvtd.codegen/.gitignore2
-rw-r--r--plugins/org.eclipse.qvtd.codegen/.project34
-rw-r--r--plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.runtime.prefs2
-rw-r--r--plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.jdt.core.prefs355
-rw-r--r--plugins/org.eclipse.qvtd.codegen/META-INF/MANIFEST.MF17
-rw-r--r--plugins/org.eclipse.qvtd.codegen/about.html43
-rw-r--r--plugins/org.eclipse.qvtd.codegen/build.properties25
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/.gitignore1
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcorePropertyAssignment.java62
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcoreRealizedVariable.java62
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunction.java30
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionCallExp.java62
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionParameter.java62
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGGuardVariable.java91
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMapping.java160
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCall.java82
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCallBinding.java90
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPredicate.java91
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPropertyAssignment.java146
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGRealizedVariable.java91
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTransformation.java74
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTypedModel.java91
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java172
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java4212
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java154
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java154
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionCallExpImpl.java164
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionImpl.java58
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionParameterImpl.java164
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGGuardVariableImpl.java274
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallBindingImpl.java253
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallImpl.java254
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingImpl.java414
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPredicateImpl.java333
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPropertyAssignmentImpl.java415
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGRealizedVariableImpl.java270
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTransformationImpl.java219
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTypedModelImpl.java268
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java249
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java802
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java120
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java102
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractQVTiCGModelVisitor.java44
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java577
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java649
-rw-r--r--plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java49
-rw-r--r--plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore104
-rw-r--r--plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel36
-rw-r--r--plugins/org.eclipse.qvtd.codegen/plugin.properties15
-rw-r--r--plugins/org.eclipse.qvtd.codegen/plugin.xml29
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalysisVisitor.java131
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalyzer.java63
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiBoxingAnalyzer.java118
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaPreVisitor.java128
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaVisitor.java599
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2StringVisitor.java157
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCodeGenerator.java120
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiDependencyVisitor.java114
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiFieldingAnalyzer.java209
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiGlobalContext.java80
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiLocalContext.java99
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiPivot2CGVisitor.java491
-rw-r--r--plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java112
-rw-r--r--releng/org.eclipse.qvtd.build/.launches/GenerateQVTdCGModels.mwe2.launch13
-rw-r--r--releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF3
-rw-r--r--releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe266
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java8
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath1
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF21
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties15
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/plugin.xml33
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/CodeGenTests.java90
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore2
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore2
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel37
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti10
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore2
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtcore.tests/text/.gitignore1
80 files changed, 14934 insertions, 28 deletions
diff --git a/plugins/org.eclipse.qvtd.codegen/.classpath b/plugins/org.eclipse.qvtd.codegen/.classpath
new file mode 100644
index 000000000..f273e98ee
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="emf-gen"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.qvtd.codegen/.gitignore b/plugins/org.eclipse.qvtd.codegen/.gitignore
new file mode 100644
index 000000000..1c6056ea3
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/.gitignore
@@ -0,0 +1,2 @@
+/bin
+/text
diff --git a/plugins/org.eclipse.qvtd.codegen/.project b/plugins/org.eclipse.qvtd.codegen/.project
new file mode 100644
index 000000000..2b82723fb
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.qvtd.codegen</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>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 000000000..5a0ad22d2
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..83233b4ba
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,355 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=20
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=20
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=20
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=20
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=20
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=53
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=53
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=20
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=20
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=33
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=17
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=33
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=17
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=33
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=0
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/plugins/org.eclipse.qvtd.codegen/META-INF/MANIFEST.MF b/plugins/org.eclipse.qvtd.codegen/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..5c2ce00cc
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.qvtd.codegen;singleton:=true
+Bundle-Version: 0.10.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.ocl.examples.codegen;visibility:=reexport,
+ org.eclipse.qvtd.pivot.qvtimperative;visibility:=reexport
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.qvtd.codegen.qvti,
+ org.eclipse.qvtd.codegen.qvticgmodel,
+ org.eclipse.qvtd.codegen.qvticgmodel.impl,
+ org.eclipse.qvtd.codegen.qvticgmodel.util
diff --git a/plugins/org.eclipse.qvtd.codegen/about.html b/plugins/org.eclipse.qvtd.codegen/about.html
new file mode 100644
index 000000000..87b2a5068
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/about.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<pem>September 21, 2008</em></p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+
+ <h3>Third Party Content</h3>
+ <p>The Content includes items that have been sourced from third parties as set out below. If you
+ did not receive this Content directly from the Eclipse Foundation, the following is provided
+ for informational purposes only, and you should look to the Redistributor's license for
+ terms and conditions of use.</p>
+ <p><em>
+ <br><br>
+ <strong>OMG QVT 1.0 specification (08-04-03)</strong> <br>
+ <ul>
+ <li><a href="http://www.omg.org/spec/QVT/1.0/">QVT 1.0 main page</a></li>
+ <li><a href="http://www.omg.org/docs/formal/08-04-03.pdf">QVT 1.0 specification</a></li>
+ <li><a href="http://www.omg.org/">OMG site</a></li>
+ </ul>
+ <br>
+ </em></p>
+ <p>A detailed list of fixes and clarifications with respect to those specifications may be found in <a href="QVTBaseCompliance.html">QVTBaseCompliance.html</a>.</p>
+</body></html> \ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.codegen/build.properties b/plugins/org.eclipse.qvtd.codegen/build.properties
new file mode 100644
index 000000000..a817531a1
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/build.properties
@@ -0,0 +1,25 @@
+# <copyright>
+#
+# Copyright (c) 2013 E.D.Willink and others.
+# 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:
+# E.D.Willink - Initial API and implementation
+#
+# </copyright>
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = emf-gen/,\
+ src/
+output.. = bin/
+src.includes = about.html
+additional.bundles = org.eclipse.jdt.annotation \ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/.gitignore b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/.gitignore
new file mode 100644
index 000000000..182664756
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/.gitignore
@@ -0,0 +1 @@
+/validation
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcorePropertyAssignment.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcorePropertyAssignment.java
new file mode 100644
index 000000000..b10fe5481
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcorePropertyAssignment.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Ecore Property Assignment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment#getEStructuralFeature <em>EStructural Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGEcorePropertyAssignment()
+ * @model
+ * @generated
+ */
+public interface CGEcorePropertyAssignment extends CGPropertyAssignment {
+ /**
+ * Returns the value of the '<em><b>EStructural Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>EStructural Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>EStructural Feature</em>' reference.
+ * @see #setEStructuralFeature(EStructuralFeature)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGEcorePropertyAssignment_EStructuralFeature()
+ * @model resolveProxies="false" required="true"
+ * @generated
+ */
+ EStructuralFeature getEStructuralFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment#getEStructuralFeature <em>EStructural Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>EStructural Feature</em>' reference.
+ * @see #getEStructuralFeature()
+ * @generated
+ */
+ void setEStructuralFeature(EStructuralFeature value);
+
+} // CGEcorePropertyAssignment
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcoreRealizedVariable.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcoreRealizedVariable.java
new file mode 100644
index 000000000..6a5ce5b41
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcoreRealizedVariable.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.emf.ecore.EClassifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Ecore Realized Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable#getEClassifier <em>EClassifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGEcoreRealizedVariable()
+ * @model
+ * @generated
+ */
+public interface CGEcoreRealizedVariable extends CGRealizedVariable {
+ /**
+ * Returns the value of the '<em><b>EClassifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>EClassifier</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>EClassifier</em>' reference.
+ * @see #setEClassifier(EClassifier)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGEcoreRealizedVariable_EClassifier()
+ * @model resolveProxies="false" required="true"
+ * @generated
+ */
+ EClassifier getEClassifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable#getEClassifier <em>EClassifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>EClassifier</em>' reference.
+ * @see #getEClassifier()
+ * @generated
+ */
+ void setEClassifier(EClassifier value);
+
+} // CGEcoreRealizedVariable
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunction.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunction.java
new file mode 100644
index 000000000..436a663f0
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunction.java
@@ -0,0 +1,30 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunction()
+ * @model
+ * @generated
+ */
+public interface CGFunction extends CGOperation {
+} // CGFunction
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionCallExp.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionCallExp.java
new file mode 100644
index 000000000..e6c4fe10b
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionCallExp.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Function Call Exp</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunctionCallExp()
+ * @model
+ * @generated
+ */
+public interface CGFunctionCallExp extends CGOperationCallExp {
+ /**
+ * Returns the value of the '<em><b>Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function</em>' reference.
+ * @see #setFunction(CGFunction)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunctionCallExp_Function()
+ * @model resolveProxies="false" required="true"
+ * @generated
+ */
+ CGFunction getFunction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp#getFunction <em>Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function</em>' reference.
+ * @see #getFunction()
+ * @generated
+ */
+ void setFunction(CGFunction value);
+
+} // CGFunctionCallExp
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionParameter.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionParameter.java
new file mode 100644
index 000000000..a6cfd62df
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionParameter.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Function Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunctionParameter()
+ * @model
+ * @generated
+ */
+public interface CGFunctionParameter extends CGParameter {
+ /**
+ * Returns the value of the '<em><b>Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function</em>' reference.
+ * @see #setFunction(CGFunction)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunctionParameter_Function()
+ * @model resolveProxies="false" required="true"
+ * @generated
+ */
+ CGFunction getFunction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter#getFunction <em>Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function</em>' reference.
+ * @see #getFunction()
+ * @generated
+ */
+ void setFunction(CGFunction value);
+
+} // CGFunctionParameter
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGGuardVariable.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGGuardVariable.java
new file mode 100644
index 000000000..a68c06377
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGGuardVariable.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Guard Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getTypedModel <em>Typed Model</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGGuardVariable()
+ * @model
+ * @generated
+ */
+public interface CGGuardVariable extends CGParameter {
+ /**
+ * Returns the value of the '<em><b>Mapping</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables <em>Guard Variables</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapping</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mapping</em>' container reference.
+ * @see #setMapping(CGMapping)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGGuardVariable_Mapping()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables
+ * @model opposite="guardVariables" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ CGMapping getMapping();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping <em>Mapping</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mapping</em>' container reference.
+ * @see #getMapping()
+ * @generated
+ */
+ void setMapping(CGMapping value);
+
+ /**
+ * Returns the value of the '<em><b>Typed Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Typed 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>Typed Model</em>' reference.
+ * @see #setTypedModel(CGTypedModel)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGGuardVariable_TypedModel()
+ * @model resolveProxies="false" required="true"
+ * @generated
+ */
+ CGTypedModel getTypedModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getTypedModel <em>Typed Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Typed Model</em>' reference.
+ * @see #getTypedModel()
+ * @generated
+ */
+ void setTypedModel(CGTypedModel value);
+
+} // CGGuardVariable
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMapping.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMapping.java
new file mode 100644
index 000000000..25eff5acf
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMapping.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import java.util.List;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation <em>Transformation</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables <em>Guard Variables</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates <em>Predicates</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables <em>Realized Variables</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments <em>Assignments</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls <em>Mapping Calls</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping()
+ * @model
+ * @generated
+ */
+public interface CGMapping extends CGTypedElement {
+
+ /**
+ * Returns the value of the '<em><b>Transformation</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings <em>Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transformation</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transformation</em>' container reference.
+ * @see #setTransformation(CGTransformation)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_Transformation()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings
+ * @model opposite="mappings" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ CGTransformation getTransformation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation <em>Transformation</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transformation</em>' container reference.
+ * @see #getTransformation()
+ * @generated
+ */
+ void setTransformation(CGTransformation value);
+
+ /**
+ * Returns the value of the '<em><b>Guard Variables</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The parameters of this operation, with 'self' as the first parameter.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Guard Variables</em>' containment reference list.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_GuardVariables()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping
+ * @model opposite="mapping" containment="true" ordered="false"
+ * @generated
+ */
+ List<CGGuardVariable> getGuardVariables();
+
+ /**
+ * Returns the value of the '<em><b>Predicates</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Predicates</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>Predicates</em>' containment reference list.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_Predicates()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping
+ * @model opposite="mapping" containment="true"
+ * @generated
+ */
+ List<CGPredicate> getPredicates();
+
+ /**
+ * Returns the value of the '<em><b>Mapping Calls</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapping Calls</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>Mapping Calls</em>' containment reference list.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_MappingCalls()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping
+ * @model opposite="mapping" containment="true"
+ * @generated
+ */
+ List<CGMappingCall> getMappingCalls();
+
+ /**
+ * Returns the value of the '<em><b>Realized Variables</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Realized Variables</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>Realized Variables</em>' containment reference list.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_RealizedVariables()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping
+ * @model opposite="mapping" containment="true"
+ * @generated
+ */
+ List<CGRealizedVariable> getRealizedVariables();
+
+ /**
+ * Returns the value of the '<em><b>Assignments</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Assignments</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>Assignments</em>' containment reference list.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_Assignments()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping
+ * @model opposite="mapping" containment="true"
+ * @generated
+ */
+ List<CGPropertyAssignment> getAssignments();
+} // CGMapping
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCall.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCall.java
new file mode 100644
index 000000000..163f665f8
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCall.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import java.util.List;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Mapping Call</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMappingCallBindings <em>Mapping Call Bindings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCall()
+ * @model
+ * @generated
+ */
+public interface CGMappingCall extends CGValuedElement {
+
+ /**
+ * Returns the value of the '<em><b>Mapping</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls <em>Mapping Calls</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapping</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mapping</em>' container reference.
+ * @see #setMapping(CGMapping)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCall_Mapping()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls
+ * @model opposite="mappingCalls" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ CGMapping getMapping();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping <em>Mapping</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mapping</em>' container reference.
+ * @see #getMapping()
+ * @generated
+ */
+ void setMapping(CGMapping value);
+
+ /**
+ * Returns the value of the '<em><b>Mapping Call Bindings</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapping Call Bindings</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>Mapping Call Bindings</em>' containment reference list.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCall_MappingCallBindings()
+ * @model containment="true"
+ * @generated
+ */
+ List<CGMappingCallBinding> getMappingCallBindings();
+} // CGMappingCall
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCallBinding.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCallBinding.java
new file mode 100644
index 000000000..33d948466
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCallBinding.java
@@ -0,0 +1,90 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Mapping Call Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#getValueOrValues <em>Value Or Values</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#isLoop <em>Loop</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCallBinding()
+ * @model
+ * @generated
+ */
+public interface CGMappingCallBinding extends CGValuedElement {
+ /**
+ * Returns the value of the '<em><b>Value Or Values</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value Or Values</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>Value Or Values</em>' containment reference.
+ * @see #setValueOrValues(CGValuedElement)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCallBinding_ValueOrValues()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ CGValuedElement getValueOrValues();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#getValueOrValues <em>Value Or Values</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value Or Values</em>' containment reference.
+ * @see #getValueOrValues()
+ * @generated
+ */
+ void setValueOrValues(CGValuedElement value);
+
+ /**
+ * Returns the value of the '<em><b>Loop</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Loop</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Loop</em>' attribute.
+ * @see #setLoop(boolean)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCallBinding_Loop()
+ * @model default="false" required="true"
+ * @generated
+ */
+ boolean isLoop();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#isLoop <em>Loop</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Loop</em>' attribute.
+ * @see #isLoop()
+ * @generated
+ */
+ void setLoop(boolean value);
+
+} // CGMappingCallBinding
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPredicate.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPredicate.java
new file mode 100644
index 000000000..abd399eb8
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPredicate.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getConditionExpression <em>Condition Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPredicate()
+ * @model
+ * @generated
+ */
+public interface CGPredicate extends CGValuedElement {
+ /**
+ * Returns the value of the '<em><b>Mapping</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates <em>Predicates</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapping</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mapping</em>' container reference.
+ * @see #setMapping(CGMapping)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPredicate_Mapping()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates
+ * @model opposite="predicates" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ CGMapping getMapping();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping <em>Mapping</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mapping</em>' container reference.
+ * @see #getMapping()
+ * @generated
+ */
+ void setMapping(CGMapping value);
+
+ /**
+ * Returns the value of the '<em><b>Condition Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Condition Expression</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>Condition Expression</em>' containment reference.
+ * @see #setConditionExpression(CGValuedElement)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPredicate_ConditionExpression()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ CGValuedElement getConditionExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getConditionExpression <em>Condition Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Condition Expression</em>' containment reference.
+ * @see #getConditionExpression()
+ * @generated
+ */
+ void setConditionExpression(CGValuedElement value);
+
+} // CGPredicate
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPropertyAssignment.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPropertyAssignment.java
new file mode 100644
index 000000000..d44eae76b
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPropertyAssignment.java
@@ -0,0 +1,146 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.pivot.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Assignment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getSlotValue <em>Slot Value</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getReferredProperty <em>Referred Property</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getInitValue <em>Init Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment()
+ * @model
+ * @generated
+ */
+public interface CGPropertyAssignment extends CGValuedElement {
+ /**
+ * Returns the value of the '<em><b>Mapping</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments <em>Assignments</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapping</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mapping</em>' container reference.
+ * @see #setMapping(CGMapping)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment_Mapping()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments
+ * @model opposite="assignments" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ CGMapping getMapping();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping <em>Mapping</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mapping</em>' container reference.
+ * @see #getMapping()
+ * @generated
+ */
+ void setMapping(CGMapping value);
+
+ /**
+ * Returns the value of the '<em><b>Slot Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Slot 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>Slot Value</em>' containment reference.
+ * @see #setSlotValue(CGValuedElement)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment_SlotValue()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ CGValuedElement getSlotValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getSlotValue <em>Slot Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Slot Value</em>' containment reference.
+ * @see #getSlotValue()
+ * @generated
+ */
+ void setSlotValue(CGValuedElement value);
+
+ /**
+ * Returns the value of the '<em><b>Referred Property</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Referred Property</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Referred Property</em>' attribute.
+ * @see #setReferredProperty(Property)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment_ReferredProperty()
+ * @model dataType="org.eclipse.ocl.examples.codegen.cgmodel.Property" required="true"
+ * @generated
+ */
+ Property getReferredProperty();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getReferredProperty <em>Referred Property</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Referred Property</em>' attribute.
+ * @see #getReferredProperty()
+ * @generated
+ */
+ void setReferredProperty(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Init Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Init 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>Init Value</em>' containment reference.
+ * @see #setInitValue(CGValuedElement)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment_InitValue()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ CGValuedElement getInitValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getInitValue <em>Init Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Init Value</em>' containment reference.
+ * @see #getInitValue()
+ * @generated
+ */
+ void setInitValue(CGValuedElement value);
+
+} // CGAssignment
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGRealizedVariable.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGRealizedVariable.java
new file mode 100644
index 000000000..ddcfb364f
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGRealizedVariable.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Realized Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getTypedModel <em>Typed Model</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGRealizedVariable()
+ * @model
+ * @generated
+ */
+public interface CGRealizedVariable extends CGVariable {
+
+ /**
+ * Returns the value of the '<em><b>Mapping</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables <em>Realized Variables</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapping</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mapping</em>' container reference.
+ * @see #setMapping(CGMapping)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGRealizedVariable_Mapping()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables
+ * @model opposite="realizedVariables" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ CGMapping getMapping();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping <em>Mapping</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mapping</em>' container reference.
+ * @see #getMapping()
+ * @generated
+ */
+ void setMapping(CGMapping value);
+
+ /**
+ * Returns the value of the '<em><b>Typed Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Typed 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>Typed Model</em>' reference.
+ * @see #setTypedModel(CGTypedModel)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGRealizedVariable_TypedModel()
+ * @model resolveProxies="false" required="true"
+ * @generated
+ */
+ CGTypedModel getTypedModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getTypedModel <em>Typed Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Typed Model</em>' reference.
+ * @see #getTypedModel()
+ * @generated
+ */
+ void setTypedModel(CGTypedModel value);
+} // CGRealizedVariable
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTransformation.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTransformation.java
new file mode 100644
index 000000000..b4dc2f28a
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTransformation.java
@@ -0,0 +1,74 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import java.util.List;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Transformation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings <em>Mappings</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels <em>Typed Models</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTransformation()
+ * @model
+ * @generated
+ */
+public interface CGTransformation extends CGClass {
+
+ /**
+ * Returns the value of the '<em><b>Mappings</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation <em>Transformation</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mappings</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>Mappings</em>' containment reference list.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTransformation_Mappings()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation
+ * @model opposite="transformation" containment="true" required="true"
+ * @generated
+ */
+ List<CGMapping> getMappings();
+
+ /**
+ * Returns the value of the '<em><b>Typed Models</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation <em>Transformation</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Typed Models</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>Typed Models</em>' containment reference list.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTransformation_TypedModels()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation
+ * @model opposite="transformation" containment="true"
+ * @generated
+ */
+ List<CGTypedModel> getTypedModels();
+} // CGTransformation
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTypedModel.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTypedModel.java
new file mode 100644
index 000000000..8eb39e6fa
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTypedModel.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Typed Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation <em>Transformation</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getModelIndex <em>Model Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTypedModel()
+ * @model
+ * @generated
+ */
+public interface CGTypedModel extends CGNamedElement {
+ /**
+ * Returns the value of the '<em><b>Transformation</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels <em>Typed Models</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transformation</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transformation</em>' container reference.
+ * @see #setTransformation(CGTransformation)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTypedModel_Transformation()
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels
+ * @model opposite="typedModels" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ CGTransformation getTransformation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation <em>Transformation</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transformation</em>' container reference.
+ * @see #getTransformation()
+ * @generated
+ */
+ void setTransformation(CGTransformation value);
+
+ /**
+ * Returns the value of the '<em><b>Model Index</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Model Index</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Model Index</em>' attribute.
+ * @see #setModelIndex(int)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTypedModel_ModelIndex()
+ * @model
+ * @generated
+ */
+ int getModelIndex();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getModelIndex <em>Model Index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Model Index</em>' attribute.
+ * @see #getModelIndex()
+ * @generated
+ */
+ void setModelIndex(int value);
+
+} // CGTypedModel
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java
new file mode 100644
index 000000000..55983620c
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java
@@ -0,0 +1,172 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.jdt.annotation.NonNull;
+
+/**
+ * <!-- 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.qvtd.codegen.qvticgmodel.QVTiCGModelPackage
+ * @generated
+ */
+public interface QVTiCGModelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @NonNull QVTiCGModelFactory eINSTANCE = org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>CG Ecore Property Assignment</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Ecore Property Assignment</em>'.
+ * @generated
+ */
+ @NonNull CGEcorePropertyAssignment createCGEcorePropertyAssignment();
+
+ /**
+ * Returns a new object of class '<em>CG Ecore Realized Variable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Ecore Realized Variable</em>'.
+ * @generated
+ */
+ @NonNull CGEcoreRealizedVariable createCGEcoreRealizedVariable();
+
+ /**
+ * Returns a new object of class '<em>CG Function</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Function</em>'.
+ * @generated
+ */
+ @NonNull CGFunction createCGFunction();
+
+ /**
+ * Returns a new object of class '<em>CG Function Call Exp</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Function Call Exp</em>'.
+ * @generated
+ */
+ @NonNull CGFunctionCallExp createCGFunctionCallExp();
+
+ /**
+ * Returns a new object of class '<em>CG Function Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Function Parameter</em>'.
+ * @generated
+ */
+ @NonNull CGFunctionParameter createCGFunctionParameter();
+
+ /**
+ * Returns a new object of class '<em>CG Guard Variable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Guard Variable</em>'.
+ * @generated
+ */
+ @NonNull CGGuardVariable createCGGuardVariable();
+
+ /**
+ * Returns a new object of class '<em>CG Property Assignment</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Property Assignment</em>'.
+ * @generated
+ */
+ @NonNull CGPropertyAssignment createCGPropertyAssignment();
+
+ /**
+ * Returns a new object of class '<em>CG Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Mapping</em>'.
+ * @generated
+ */
+ @NonNull CGMapping createCGMapping();
+
+ /**
+ * Returns a new object of class '<em>CG Transformation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Transformation</em>'.
+ * @generated
+ */
+ @NonNull CGTransformation createCGTransformation();
+
+ /**
+ * Returns a new object of class '<em>CG Typed Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Typed Model</em>'.
+ * @generated
+ */
+ @NonNull CGTypedModel createCGTypedModel();
+
+ /**
+ * Returns a new object of class '<em>CG Mapping Call</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Mapping Call</em>'.
+ * @generated
+ */
+ @NonNull CGMappingCall createCGMappingCall();
+
+ /**
+ * Returns a new object of class '<em>CG Mapping Call Binding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Mapping Call Binding</em>'.
+ * @generated
+ */
+ @NonNull CGMappingCallBinding createCGMappingCallBinding();
+
+ /**
+ * Returns a new object of class '<em>CG Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Predicate</em>'.
+ * @generated
+ */
+ @NonNull CGPredicate createCGPredicate();
+
+ /**
+ * Returns a new object of class '<em>CG Realized Variable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CG Realized Variable</em>'.
+ * @generated
+ */
+ @NonNull CGRealizedVariable createCGRealizedVariable();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ @NonNull QVTiCGModelPackage getQVTiCGModelPackage();
+
+} //QVTiCGmodelFactory
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java
new file mode 100644
index 000000000..fccb928fb
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java
@@ -0,0 +1,4212 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGModelPackage;
+
+/**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The CGModel provides a Code Generation friendly form of the OCL Pivot model, with distinct classes
+ * such as LibraryPropertyCallExp and EcorePropertyCallExp for distinct purposes. Additional classes
+ * such as BoxExpr, CatchExpr and CastParameter support rewrite optimizations.
+ * <p>
+ * References to the Pivot model are expressed as attributes with datatype values in order to avoid
+ * confusion as to whether the new or old pivot mosdel is in use while code generating the pivot model.
+ * <!-- end-model-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/OCL/Import ecore='http://www.eclipse.org/emf/2002/Ecore#/'"
+ * @generated
+ */
+public interface QVTiCGModelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @NonNull String eNAME = "qvticgmodel";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @NonNull String eNS_URI = "http://www.eclipse.org/qvti/1.0.0/CG";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @NonNull String eNS_PREFIX = "qvticg";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("null")
+ @NonNull QVTiCGModelPackage eINSTANCE = org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl <em>CG Property Assignment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPropertyAssignment()
+ * @generated
+ */
+ int CG_PROPERTY_ASSIGNMENT = 10;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__PARENT = CGModelPackage.CG_VALUED_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__NAME = CGModelPackage.CG_VALUED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__PIVOT = CGModelPackage.CG_VALUED_ELEMENT__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__PIVOT_TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__REQUIRED = CGModelPackage.CG_VALUED_ELEMENT__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__BOXED = CGModelPackage.CG_VALUED_ELEMENT__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__CAUGHT = CGModelPackage.CG_VALUED_ELEMENT__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__CONSTANT = CGModelPackage.CG_VALUED_ELEMENT__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__DEPENDS_ON = CGModelPackage.CG_VALUED_ELEMENT__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__FALSE = CGModelPackage.CG_VALUED_ELEMENT__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__GLOBAL = CGModelPackage.CG_VALUED_ELEMENT__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__INLINEABLE = CGModelPackage.CG_VALUED_ELEMENT__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__INVALID = CGModelPackage.CG_VALUED_ELEMENT__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__NULL = CGModelPackage.CG_VALUED_ELEMENT__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__NON_NULL = CGModelPackage.CG_VALUED_ELEMENT__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VALUED_ELEMENT__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__SETTABLE = CGModelPackage.CG_VALUED_ELEMENT__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__TRUE = CGModelPackage.CG_VALUED_ELEMENT__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__UNBOXED = CGModelPackage.CG_VALUED_ELEMENT__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__VALUE = CGModelPackage.CG_VALUED_ELEMENT__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__VALUE_NAME = CGModelPackage.CG_VALUED_ELEMENT__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Mapping</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__MAPPING = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Slot Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__SLOT_VALUE = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Referred Property</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Init Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT__INIT_VALUE = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>CG Property Assignment</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT___SET_NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT___SET_NON_NULL = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Property Assignment</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PROPERTY_ASSIGNMENT_OPERATION_COUNT = CGModelPackage.CG_VALUED_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl <em>CG Ecore Property Assignment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcorePropertyAssignment()
+ * @generated
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__PARENT = CG_PROPERTY_ASSIGNMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__NAME = CG_PROPERTY_ASSIGNMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__PIVOT = CG_PROPERTY_ASSIGNMENT__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__PIVOT_TYPE_ID = CG_PROPERTY_ASSIGNMENT__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__TYPE_ID = CG_PROPERTY_ASSIGNMENT__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__REQUIRED = CG_PROPERTY_ASSIGNMENT__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__BOXED = CG_PROPERTY_ASSIGNMENT__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__CAUGHT = CG_PROPERTY_ASSIGNMENT__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__CONSTANT = CG_PROPERTY_ASSIGNMENT__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__DEPENDS_ON = CG_PROPERTY_ASSIGNMENT__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__FALSE = CG_PROPERTY_ASSIGNMENT__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__GLOBAL = CG_PROPERTY_ASSIGNMENT__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__INLINEABLE = CG_PROPERTY_ASSIGNMENT__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__INVALID = CG_PROPERTY_ASSIGNMENT__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__NULL = CG_PROPERTY_ASSIGNMENT__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__NON_INVALID = CG_PROPERTY_ASSIGNMENT__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__NON_NULL = CG_PROPERTY_ASSIGNMENT__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__REFERRED_VALUED_ELEMENT = CG_PROPERTY_ASSIGNMENT__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__SETTABLE = CG_PROPERTY_ASSIGNMENT__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__TRUE = CG_PROPERTY_ASSIGNMENT__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__UNBOXED = CG_PROPERTY_ASSIGNMENT__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__VALUE = CG_PROPERTY_ASSIGNMENT__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__VALUE_NAME = CG_PROPERTY_ASSIGNMENT__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Mapping</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__MAPPING = CG_PROPERTY_ASSIGNMENT__MAPPING;
+
+ /**
+ * The feature id for the '<em><b>Slot Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__SLOT_VALUE = CG_PROPERTY_ASSIGNMENT__SLOT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Referred Property</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY = CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Init Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__INIT_VALUE = CG_PROPERTY_ASSIGNMENT__INIT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>EStructural Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE = CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>CG Ecore Property Assignment</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT_FEATURE_COUNT = CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT___SET_NON_INVALID = CG_PROPERTY_ASSIGNMENT___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT___SET_NON_NULL = CG_PROPERTY_ASSIGNMENT___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Ecore Property Assignment</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_PROPERTY_ASSIGNMENT_OPERATION_COUNT = CG_PROPERTY_ASSIGNMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl <em>CG Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMapping()
+ * @generated
+ */
+ int CG_MAPPING = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl <em>CG Transformation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTransformation()
+ * @generated
+ */
+ int CG_TRANSFORMATION = 12;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment <em>CG Ecore Property Assignment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Ecore Property Assignment</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment
+ * @generated
+ */
+ EClass getCGEcorePropertyAssignment();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment#getEStructuralFeature <em>EStructural Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>EStructural Feature</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment#getEStructuralFeature()
+ * @see #getCGEcorePropertyAssignment()
+ * @generated
+ */
+ EReference getCGEcorePropertyAssignment_EStructuralFeature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable <em>CG Ecore Realized Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Ecore Realized Variable</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable
+ * @generated
+ */
+ EClass getCGEcoreRealizedVariable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable#getEClassifier <em>EClassifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>EClassifier</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable#getEClassifier()
+ * @see #getCGEcoreRealizedVariable()
+ * @generated
+ */
+ EReference getCGEcoreRealizedVariable_EClassifier();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunction <em>CG Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Function</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunction
+ * @generated
+ */
+ EClass getCGFunction();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp <em>CG Function Call Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Function Call Exp</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp
+ * @generated
+ */
+ EClass getCGFunctionCallExp();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp#getFunction <em>Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Function</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp#getFunction()
+ * @see #getCGFunctionCallExp()
+ * @generated
+ */
+ EReference getCGFunctionCallExp_Function();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter <em>CG Function Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Function Parameter</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter
+ * @generated
+ */
+ EClass getCGFunctionParameter();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter#getFunction <em>Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Function</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter#getFunction()
+ * @see #getCGFunctionParameter()
+ * @generated
+ */
+ EReference getCGFunctionParameter_Function();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable <em>CG Guard Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Guard Variable</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable
+ * @generated
+ */
+ EClass getCGGuardVariable();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Mapping</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping()
+ * @see #getCGGuardVariable()
+ * @generated
+ */
+ EReference getCGGuardVariable_Mapping();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getTypedModel <em>Typed Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Typed Model</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getTypedModel()
+ * @see #getCGGuardVariable()
+ * @generated
+ */
+ EReference getCGGuardVariable_TypedModel();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl <em>CG Mapping Call</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCall()
+ * @generated
+ */
+ int CG_MAPPING_CALL = 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl <em>CG Mapping Call Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCallBinding()
+ * @generated
+ */
+ int CG_MAPPING_CALL_BINDING = 8;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl <em>CG Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPredicate()
+ * @generated
+ */
+ int CG_PREDICATE = 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl <em>CG Realized Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGRealizedVariable()
+ * @generated
+ */
+ int CG_REALIZED_VARIABLE = 11;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__PARENT = CGModelPackage.CG_VARIABLE__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__NAME = CGModelPackage.CG_VARIABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__PIVOT = CGModelPackage.CG_VARIABLE__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__PIVOT_TYPE_ID = CGModelPackage.CG_VARIABLE__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__TYPE_ID = CGModelPackage.CG_VARIABLE__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__REQUIRED = CGModelPackage.CG_VARIABLE__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__BOXED = CGModelPackage.CG_VARIABLE__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__CAUGHT = CGModelPackage.CG_VARIABLE__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__CONSTANT = CGModelPackage.CG_VARIABLE__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__DEPENDS_ON = CGModelPackage.CG_VARIABLE__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__FALSE = CGModelPackage.CG_VARIABLE__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__GLOBAL = CGModelPackage.CG_VARIABLE__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__INLINEABLE = CGModelPackage.CG_VARIABLE__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__INVALID = CGModelPackage.CG_VARIABLE__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__NULL = CGModelPackage.CG_VARIABLE__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__NON_INVALID = CGModelPackage.CG_VARIABLE__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__NON_NULL = CGModelPackage.CG_VARIABLE__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VARIABLE__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__SETTABLE = CGModelPackage.CG_VARIABLE__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__TRUE = CGModelPackage.CG_VARIABLE__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__UNBOXED = CGModelPackage.CG_VARIABLE__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__VALUE = CGModelPackage.CG_VARIABLE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__VALUE_NAME = CGModelPackage.CG_VARIABLE__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Init</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__INIT = CGModelPackage.CG_VARIABLE__INIT;
+
+ /**
+ * The feature id for the '<em><b>Mapping</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__MAPPING = CGModelPackage.CG_VARIABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Typed Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE__TYPED_MODEL = CGModelPackage.CG_VARIABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>CG Realized Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE_FEATURE_COUNT = CGModelPackage.CG_VARIABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE___SET_NON_INVALID = CGModelPackage.CG_VARIABLE___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE___SET_NON_NULL = CGModelPackage.CG_VARIABLE___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Realized Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_REALIZED_VARIABLE_OPERATION_COUNT = CGModelPackage.CG_VARIABLE_OPERATION_COUNT + 0;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl <em>CG Ecore Realized Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcoreRealizedVariable()
+ * @generated
+ */
+ int CG_ECORE_REALIZED_VARIABLE = 1;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__PARENT = CG_REALIZED_VARIABLE__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__NAME = CG_REALIZED_VARIABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__PIVOT = CG_REALIZED_VARIABLE__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__PIVOT_TYPE_ID = CG_REALIZED_VARIABLE__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__TYPE_ID = CG_REALIZED_VARIABLE__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__REQUIRED = CG_REALIZED_VARIABLE__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__BOXED = CG_REALIZED_VARIABLE__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__CAUGHT = CG_REALIZED_VARIABLE__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__CONSTANT = CG_REALIZED_VARIABLE__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__DEPENDS_ON = CG_REALIZED_VARIABLE__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__FALSE = CG_REALIZED_VARIABLE__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__GLOBAL = CG_REALIZED_VARIABLE__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__INLINEABLE = CG_REALIZED_VARIABLE__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__INVALID = CG_REALIZED_VARIABLE__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__NULL = CG_REALIZED_VARIABLE__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__NON_INVALID = CG_REALIZED_VARIABLE__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__NON_NULL = CG_REALIZED_VARIABLE__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__REFERRED_VALUED_ELEMENT = CG_REALIZED_VARIABLE__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__SETTABLE = CG_REALIZED_VARIABLE__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__TRUE = CG_REALIZED_VARIABLE__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__UNBOXED = CG_REALIZED_VARIABLE__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__VALUE = CG_REALIZED_VARIABLE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__VALUE_NAME = CG_REALIZED_VARIABLE__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Init</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__INIT = CG_REALIZED_VARIABLE__INIT;
+
+ /**
+ * The feature id for the '<em><b>Mapping</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__MAPPING = CG_REALIZED_VARIABLE__MAPPING;
+
+ /**
+ * The feature id for the '<em><b>Typed Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__TYPED_MODEL = CG_REALIZED_VARIABLE__TYPED_MODEL;
+
+ /**
+ * The feature id for the '<em><b>EClassifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER = CG_REALIZED_VARIABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>CG Ecore Realized Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE_FEATURE_COUNT = CG_REALIZED_VARIABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE___SET_NON_INVALID = CG_REALIZED_VARIABLE___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE___SET_NON_NULL = CG_REALIZED_VARIABLE___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Ecore Realized Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_ECORE_REALIZED_VARIABLE_OPERATION_COUNT = CG_REALIZED_VARIABLE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionImpl <em>CG Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunction()
+ * @generated
+ */
+ int CG_FUNCTION = 2;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__PARENT = CGModelPackage.CG_OPERATION__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__NAME = CGModelPackage.CG_OPERATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__PIVOT = CGModelPackage.CG_OPERATION__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__PIVOT_TYPE_ID = CGModelPackage.CG_OPERATION__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__TYPE_ID = CGModelPackage.CG_OPERATION__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__REQUIRED = CGModelPackage.CG_OPERATION__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__PARAMETERS = CGModelPackage.CG_OPERATION__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__BODY = CGModelPackage.CG_OPERATION__BODY;
+
+ /**
+ * The feature id for the '<em><b>Preconditions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__PRECONDITIONS = CGModelPackage.CG_OPERATION__PRECONDITIONS;
+
+ /**
+ * The feature id for the '<em><b>Postconditions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__POSTCONDITIONS = CGModelPackage.CG_OPERATION__POSTCONDITIONS;
+
+ /**
+ * The feature id for the '<em><b>Containing Class</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION__CONTAINING_CLASS = CGModelPackage.CG_OPERATION__CONTAINING_CLASS;
+
+ /**
+ * The number of structural features of the '<em>CG Function</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_FEATURE_COUNT = CGModelPackage.CG_OPERATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>CG Function</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_OPERATION_COUNT = CGModelPackage.CG_OPERATION_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl <em>CG Function Call Exp</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionCallExp()
+ * @generated
+ */
+ int CG_FUNCTION_CALL_EXP = 3;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__PARENT = CGModelPackage.CG_OPERATION_CALL_EXP__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__NAME = CGModelPackage.CG_OPERATION_CALL_EXP__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__PIVOT = CGModelPackage.CG_OPERATION_CALL_EXP__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__PIVOT_TYPE_ID = CGModelPackage.CG_OPERATION_CALL_EXP__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__TYPE_ID = CGModelPackage.CG_OPERATION_CALL_EXP__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__REQUIRED = CGModelPackage.CG_OPERATION_CALL_EXP__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__BOXED = CGModelPackage.CG_OPERATION_CALL_EXP__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__CAUGHT = CGModelPackage.CG_OPERATION_CALL_EXP__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__CONSTANT = CGModelPackage.CG_OPERATION_CALL_EXP__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__DEPENDS_ON = CGModelPackage.CG_OPERATION_CALL_EXP__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__FALSE = CGModelPackage.CG_OPERATION_CALL_EXP__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__GLOBAL = CGModelPackage.CG_OPERATION_CALL_EXP__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__INLINEABLE = CGModelPackage.CG_OPERATION_CALL_EXP__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__INVALID = CGModelPackage.CG_OPERATION_CALL_EXP__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__NULL = CGModelPackage.CG_OPERATION_CALL_EXP__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__NON_INVALID = CGModelPackage.CG_OPERATION_CALL_EXP__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__NON_NULL = CGModelPackage.CG_OPERATION_CALL_EXP__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_OPERATION_CALL_EXP__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__SETTABLE = CGModelPackage.CG_OPERATION_CALL_EXP__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__TRUE = CGModelPackage.CG_OPERATION_CALL_EXP__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__UNBOXED = CGModelPackage.CG_OPERATION_CALL_EXP__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__VALUE = CGModelPackage.CG_OPERATION_CALL_EXP__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__VALUE_NAME = CGModelPackage.CG_OPERATION_CALL_EXP__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Invalidating</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__INVALIDATING = CGModelPackage.CG_OPERATION_CALL_EXP__INVALIDATING;
+
+ /**
+ * The feature id for the '<em><b>Validating</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__VALIDATING = CGModelPackage.CG_OPERATION_CALL_EXP__VALIDATING;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__SOURCE = CGModelPackage.CG_OPERATION_CALL_EXP__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Referred Operation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__REFERRED_OPERATION = CGModelPackage.CG_OPERATION_CALL_EXP__REFERRED_OPERATION;
+
+ /**
+ * The feature id for the '<em><b>Arguments</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__ARGUMENTS = CGModelPackage.CG_OPERATION_CALL_EXP__ARGUMENTS;
+
+ /**
+ * The feature id for the '<em><b>Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP__FUNCTION = CGModelPackage.CG_OPERATION_CALL_EXP_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>CG Function Call Exp</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP_FEATURE_COUNT = CGModelPackage.CG_OPERATION_CALL_EXP_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP___SET_NON_INVALID = CGModelPackage.CG_OPERATION_CALL_EXP___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP___SET_NON_NULL = CGModelPackage.CG_OPERATION_CALL_EXP___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Function Call Exp</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_CALL_EXP_OPERATION_COUNT = CGModelPackage.CG_OPERATION_CALL_EXP_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl <em>CG Function Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionParameter()
+ * @generated
+ */
+ int CG_FUNCTION_PARAMETER = 4;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__PARENT = CGModelPackage.CG_PARAMETER__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__NAME = CGModelPackage.CG_PARAMETER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__PIVOT = CGModelPackage.CG_PARAMETER__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__PIVOT_TYPE_ID = CGModelPackage.CG_PARAMETER__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__TYPE_ID = CGModelPackage.CG_PARAMETER__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__REQUIRED = CGModelPackage.CG_PARAMETER__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__BOXED = CGModelPackage.CG_PARAMETER__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__CAUGHT = CGModelPackage.CG_PARAMETER__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__CONSTANT = CGModelPackage.CG_PARAMETER__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__DEPENDS_ON = CGModelPackage.CG_PARAMETER__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__FALSE = CGModelPackage.CG_PARAMETER__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__GLOBAL = CGModelPackage.CG_PARAMETER__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__INLINEABLE = CGModelPackage.CG_PARAMETER__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__INVALID = CGModelPackage.CG_PARAMETER__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__NULL = CGModelPackage.CG_PARAMETER__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__NON_INVALID = CGModelPackage.CG_PARAMETER__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__NON_NULL = CGModelPackage.CG_PARAMETER__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_PARAMETER__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__SETTABLE = CGModelPackage.CG_PARAMETER__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__TRUE = CGModelPackage.CG_PARAMETER__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__UNBOXED = CGModelPackage.CG_PARAMETER__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__VALUE = CGModelPackage.CG_PARAMETER__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__VALUE_NAME = CGModelPackage.CG_PARAMETER__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Init</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__INIT = CGModelPackage.CG_PARAMETER__INIT;
+
+ /**
+ * The feature id for the '<em><b>Operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__OPERATION = CGModelPackage.CG_PARAMETER__OPERATION;
+
+ /**
+ * The feature id for the '<em><b>Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER__FUNCTION = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>CG Function Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER_FEATURE_COUNT = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER___SET_NON_INVALID = CGModelPackage.CG_PARAMETER___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER___SET_NON_NULL = CGModelPackage.CG_PARAMETER___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Function Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_FUNCTION_PARAMETER_OPERATION_COUNT = CGModelPackage.CG_PARAMETER_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl <em>CG Guard Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGGuardVariable()
+ * @generated
+ */
+ int CG_GUARD_VARIABLE = 5;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__PARENT = CGModelPackage.CG_PARAMETER__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__NAME = CGModelPackage.CG_PARAMETER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__PIVOT = CGModelPackage.CG_PARAMETER__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__PIVOT_TYPE_ID = CGModelPackage.CG_PARAMETER__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__TYPE_ID = CGModelPackage.CG_PARAMETER__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__REQUIRED = CGModelPackage.CG_PARAMETER__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__BOXED = CGModelPackage.CG_PARAMETER__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__CAUGHT = CGModelPackage.CG_PARAMETER__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__CONSTANT = CGModelPackage.CG_PARAMETER__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__DEPENDS_ON = CGModelPackage.CG_PARAMETER__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__FALSE = CGModelPackage.CG_PARAMETER__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__GLOBAL = CGModelPackage.CG_PARAMETER__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__INLINEABLE = CGModelPackage.CG_PARAMETER__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__INVALID = CGModelPackage.CG_PARAMETER__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__NULL = CGModelPackage.CG_PARAMETER__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__NON_INVALID = CGModelPackage.CG_PARAMETER__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__NON_NULL = CGModelPackage.CG_PARAMETER__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_PARAMETER__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__SETTABLE = CGModelPackage.CG_PARAMETER__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__TRUE = CGModelPackage.CG_PARAMETER__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__UNBOXED = CGModelPackage.CG_PARAMETER__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__VALUE = CGModelPackage.CG_PARAMETER__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__VALUE_NAME = CGModelPackage.CG_PARAMETER__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Init</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__INIT = CGModelPackage.CG_PARAMETER__INIT;
+
+ /**
+ * The feature id for the '<em><b>Operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__OPERATION = CGModelPackage.CG_PARAMETER__OPERATION;
+
+ /**
+ * The feature id for the '<em><b>Mapping</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__MAPPING = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Typed Model</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE__TYPED_MODEL = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>CG Guard Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE_FEATURE_COUNT = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE___SET_NON_INVALID = CGModelPackage.CG_PARAMETER___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE___SET_NON_NULL = CGModelPackage.CG_PARAMETER___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Guard Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_GUARD_VARIABLE_OPERATION_COUNT = CGModelPackage.CG_PARAMETER_OPERATION_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__PARENT = CGModelPackage.CG_TYPED_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__NAME = CGModelPackage.CG_TYPED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__PIVOT = CGModelPackage.CG_TYPED_ELEMENT__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__PIVOT_TYPE_ID = CGModelPackage.CG_TYPED_ELEMENT__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__TYPE_ID = CGModelPackage.CG_TYPED_ELEMENT__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__REQUIRED = CGModelPackage.CG_TYPED_ELEMENT__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Transformation</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__TRANSFORMATION = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Guard Variables</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__GUARD_VARIABLES = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Predicates</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__PREDICATES = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Realized Variables</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__REALIZED_VARIABLES = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Assignments</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__ASSIGNMENTS = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Mapping Calls</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING__MAPPING_CALLS = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>CG Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_FEATURE_COUNT = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 6;
+
+ /**
+ * The number of operations of the '<em>CG Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_OPERATION_COUNT = CGModelPackage.CG_TYPED_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__PARENT = CGModelPackage.CG_VALUED_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__NAME = CGModelPackage.CG_VALUED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__PIVOT = CGModelPackage.CG_VALUED_ELEMENT__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__PIVOT_TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__REQUIRED = CGModelPackage.CG_VALUED_ELEMENT__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__BOXED = CGModelPackage.CG_VALUED_ELEMENT__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__CAUGHT = CGModelPackage.CG_VALUED_ELEMENT__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__CONSTANT = CGModelPackage.CG_VALUED_ELEMENT__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__DEPENDS_ON = CGModelPackage.CG_VALUED_ELEMENT__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__FALSE = CGModelPackage.CG_VALUED_ELEMENT__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__GLOBAL = CGModelPackage.CG_VALUED_ELEMENT__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__INLINEABLE = CGModelPackage.CG_VALUED_ELEMENT__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__INVALID = CGModelPackage.CG_VALUED_ELEMENT__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__NULL = CGModelPackage.CG_VALUED_ELEMENT__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__NON_NULL = CGModelPackage.CG_VALUED_ELEMENT__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VALUED_ELEMENT__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__SETTABLE = CGModelPackage.CG_VALUED_ELEMENT__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__TRUE = CGModelPackage.CG_VALUED_ELEMENT__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__UNBOXED = CGModelPackage.CG_VALUED_ELEMENT__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__VALUE = CGModelPackage.CG_VALUED_ELEMENT__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__VALUE_NAME = CGModelPackage.CG_VALUED_ELEMENT__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Mapping</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__MAPPING = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Mapping Call Bindings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL__MAPPING_CALL_BINDINGS = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>CG Mapping Call</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_FEATURE_COUNT = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL___SET_NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL___SET_NON_NULL = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Mapping Call</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_OPERATION_COUNT = CGModelPackage.CG_VALUED_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__PARENT = CGModelPackage.CG_VALUED_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__NAME = CGModelPackage.CG_VALUED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__PIVOT = CGModelPackage.CG_VALUED_ELEMENT__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__PIVOT_TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__REQUIRED = CGModelPackage.CG_VALUED_ELEMENT__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__BOXED = CGModelPackage.CG_VALUED_ELEMENT__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__CAUGHT = CGModelPackage.CG_VALUED_ELEMENT__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__CONSTANT = CGModelPackage.CG_VALUED_ELEMENT__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__DEPENDS_ON = CGModelPackage.CG_VALUED_ELEMENT__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__FALSE = CGModelPackage.CG_VALUED_ELEMENT__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__GLOBAL = CGModelPackage.CG_VALUED_ELEMENT__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__INLINEABLE = CGModelPackage.CG_VALUED_ELEMENT__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__INVALID = CGModelPackage.CG_VALUED_ELEMENT__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__NULL = CGModelPackage.CG_VALUED_ELEMENT__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__NON_NULL = CGModelPackage.CG_VALUED_ELEMENT__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VALUED_ELEMENT__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__SETTABLE = CGModelPackage.CG_VALUED_ELEMENT__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__TRUE = CGModelPackage.CG_VALUED_ELEMENT__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__UNBOXED = CGModelPackage.CG_VALUED_ELEMENT__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__VALUE = CGModelPackage.CG_VALUED_ELEMENT__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__VALUE_NAME = CGModelPackage.CG_VALUED_ELEMENT__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Value Or Values</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Loop</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING__LOOP = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>CG Mapping Call Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING_FEATURE_COUNT = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING___SET_NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING___SET_NON_NULL = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Mapping Call Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_MAPPING_CALL_BINDING_OPERATION_COUNT = CGModelPackage.CG_VALUED_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__PARENT = CGModelPackage.CG_VALUED_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__NAME = CGModelPackage.CG_VALUED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__PIVOT = CGModelPackage.CG_VALUED_ELEMENT__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__PIVOT_TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__PIVOT_TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Type Id</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__TYPE_ID;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__REQUIRED = CGModelPackage.CG_VALUED_ELEMENT__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>Boxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__BOXED = CGModelPackage.CG_VALUED_ELEMENT__BOXED;
+
+ /**
+ * The feature id for the '<em><b>Caught</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__CAUGHT = CGModelPackage.CG_VALUED_ELEMENT__CAUGHT;
+
+ /**
+ * The feature id for the '<em><b>Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__CONSTANT = CGModelPackage.CG_VALUED_ELEMENT__CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Depends On</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__DEPENDS_ON = CGModelPackage.CG_VALUED_ELEMENT__DEPENDS_ON;
+
+ /**
+ * The feature id for the '<em><b>False</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__FALSE = CGModelPackage.CG_VALUED_ELEMENT__FALSE;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__GLOBAL = CGModelPackage.CG_VALUED_ELEMENT__GLOBAL;
+
+ /**
+ * The feature id for the '<em><b>Inlineable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__INLINEABLE = CGModelPackage.CG_VALUED_ELEMENT__INLINEABLE;
+
+ /**
+ * The feature id for the '<em><b>Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__INVALID = CGModelPackage.CG_VALUED_ELEMENT__INVALID;
+
+ /**
+ * The feature id for the '<em><b>Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__NULL = CGModelPackage.CG_VALUED_ELEMENT__NULL;
+
+ /**
+ * The feature id for the '<em><b>Non Invalid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT__NON_INVALID;
+
+ /**
+ * The feature id for the '<em><b>Non Null</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__NON_NULL = CGModelPackage.CG_VALUED_ELEMENT__NON_NULL;
+
+ /**
+ * The feature id for the '<em><b>Referred Valued Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VALUED_ELEMENT__REFERRED_VALUED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Settable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__SETTABLE = CGModelPackage.CG_VALUED_ELEMENT__SETTABLE;
+
+ /**
+ * The feature id for the '<em><b>True</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__TRUE = CGModelPackage.CG_VALUED_ELEMENT__TRUE;
+
+ /**
+ * The feature id for the '<em><b>Unboxed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__UNBOXED = CGModelPackage.CG_VALUED_ELEMENT__UNBOXED;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__VALUE = CGModelPackage.CG_VALUED_ELEMENT__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Value Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__VALUE_NAME = CGModelPackage.CG_VALUED_ELEMENT__VALUE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Mapping</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__MAPPING = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Condition Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE__CONDITION_EXPRESSION = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>CG Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE_FEATURE_COUNT = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Set Non Invalid</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE___SET_NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_INVALID;
+
+ /**
+ * The operation id for the '<em>Set Non Null</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE___SET_NON_NULL = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_NULL;
+
+ /**
+ * The number of operations of the '<em>CG Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_PREDICATE_OPERATION_COUNT = CGModelPackage.CG_VALUED_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__PARENT = CGModelPackage.CG_CLASS__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__NAME = CGModelPackage.CG_CLASS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__PIVOT = CGModelPackage.CG_CLASS__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Containing Package</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__CONTAINING_PACKAGE = CGModelPackage.CG_CLASS__CONTAINING_PACKAGE;
+
+ /**
+ * The feature id for the '<em><b>Operations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__OPERATIONS = CGModelPackage.CG_CLASS__OPERATIONS;
+
+ /**
+ * The feature id for the '<em><b>Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__PROPERTIES = CGModelPackage.CG_CLASS__PROPERTIES;
+
+ /**
+ * The feature id for the '<em><b>Invariants</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__INVARIANTS = CGModelPackage.CG_CLASS__INVARIANTS;
+
+ /**
+ * The feature id for the '<em><b>Mappings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__MAPPINGS = CGModelPackage.CG_CLASS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Typed Models</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION__TYPED_MODELS = CGModelPackage.CG_CLASS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>CG Transformation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION_FEATURE_COUNT = CGModelPackage.CG_CLASS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>CG Transformation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TRANSFORMATION_OPERATION_COUNT = CGModelPackage.CG_CLASS_OPERATION_COUNT + 0;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl <em>CG Typed Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTypedModel()
+ * @generated
+ */
+ int CG_TYPED_MODEL = 13;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TYPED_MODEL__PARENT = CGModelPackage.CG_NAMED_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TYPED_MODEL__NAME = CGModelPackage.CG_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Pivot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TYPED_MODEL__PIVOT = CGModelPackage.CG_NAMED_ELEMENT__PIVOT;
+
+ /**
+ * The feature id for the '<em><b>Transformation</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TYPED_MODEL__TRANSFORMATION = CGModelPackage.CG_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Model Index</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TYPED_MODEL__MODEL_INDEX = CGModelPackage.CG_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>CG Typed Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TYPED_MODEL_FEATURE_COUNT = CGModelPackage.CG_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>CG Typed Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CG_TYPED_MODEL_OPERATION_COUNT = CGModelPackage.CG_NAMED_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment <em>CG Property Assignment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Property Assignment</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment
+ * @generated
+ */
+ EClass getCGPropertyAssignment();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Mapping</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping()
+ * @see #getCGPropertyAssignment()
+ * @generated
+ */
+ EReference getCGPropertyAssignment_Mapping();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getSlotValue <em>Slot Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Slot Value</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getSlotValue()
+ * @see #getCGPropertyAssignment()
+ * @generated
+ */
+ EReference getCGPropertyAssignment_SlotValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getReferredProperty <em>Referred Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Referred Property</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getReferredProperty()
+ * @see #getCGPropertyAssignment()
+ * @generated
+ */
+ EAttribute getCGPropertyAssignment_ReferredProperty();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getInitValue <em>Init Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Init Value</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getInitValue()
+ * @see #getCGPropertyAssignment()
+ * @generated
+ */
+ EReference getCGPropertyAssignment_InitValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping <em>CG Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Mapping</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping
+ * @generated
+ */
+ EClass getCGMapping();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation <em>Transformation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Transformation</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation()
+ * @see #getCGMapping()
+ * @generated
+ */
+ EReference getCGMapping_Transformation();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables <em>Guard Variables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Guard Variables</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables()
+ * @see #getCGMapping()
+ * @generated
+ */
+ EReference getCGMapping_GuardVariables();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates <em>Predicates</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Predicates</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates()
+ * @see #getCGMapping()
+ * @generated
+ */
+ EReference getCGMapping_Predicates();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls <em>Mapping Calls</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Mapping Calls</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls()
+ * @see #getCGMapping()
+ * @generated
+ */
+ EReference getCGMapping_MappingCalls();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables <em>Realized Variables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Realized Variables</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables()
+ * @see #getCGMapping()
+ * @generated
+ */
+ EReference getCGMapping_RealizedVariables();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments <em>Assignments</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Assignments</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments()
+ * @see #getCGMapping()
+ * @generated
+ */
+ EReference getCGMapping_Assignments();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation <em>CG Transformation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Transformation</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation
+ * @generated
+ */
+ EClass getCGTransformation();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings <em>Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Mappings</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings()
+ * @see #getCGTransformation()
+ * @generated
+ */
+ EReference getCGTransformation_Mappings();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels <em>Typed Models</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Typed Models</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels()
+ * @see #getCGTransformation()
+ * @generated
+ */
+ EReference getCGTransformation_TypedModels();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel <em>CG Typed Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Typed Model</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel
+ * @generated
+ */
+ EClass getCGTypedModel();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation <em>Transformation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Transformation</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation()
+ * @see #getCGTypedModel()
+ * @generated
+ */
+ EReference getCGTypedModel_Transformation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getModelIndex <em>Model Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Model Index</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getModelIndex()
+ * @see #getCGTypedModel()
+ * @generated
+ */
+ EAttribute getCGTypedModel_ModelIndex();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall <em>CG Mapping Call</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Mapping Call</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall
+ * @generated
+ */
+ EClass getCGMappingCall();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Mapping</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping()
+ * @see #getCGMappingCall()
+ * @generated
+ */
+ EReference getCGMappingCall_Mapping();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMappingCallBindings <em>Mapping Call Bindings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Mapping Call Bindings</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMappingCallBindings()
+ * @see #getCGMappingCall()
+ * @generated
+ */
+ EReference getCGMappingCall_MappingCallBindings();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding <em>CG Mapping Call Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Mapping Call Binding</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding
+ * @generated
+ */
+ EClass getCGMappingCallBinding();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#getValueOrValues <em>Value Or Values</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Value Or Values</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#getValueOrValues()
+ * @see #getCGMappingCallBinding()
+ * @generated
+ */
+ EReference getCGMappingCallBinding_ValueOrValues();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#isLoop <em>Loop</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Loop</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#isLoop()
+ * @see #getCGMappingCallBinding()
+ * @generated
+ */
+ EAttribute getCGMappingCallBinding_Loop();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate <em>CG Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Predicate</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate
+ * @generated
+ */
+ EClass getCGPredicate();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Mapping</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping()
+ * @see #getCGPredicate()
+ * @generated
+ */
+ EReference getCGPredicate_Mapping();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getConditionExpression <em>Condition Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Condition Expression</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getConditionExpression()
+ * @see #getCGPredicate()
+ * @generated
+ */
+ EReference getCGPredicate_ConditionExpression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable <em>CG Realized Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CG Realized Variable</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable
+ * @generated
+ */
+ EClass getCGRealizedVariable();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping <em>Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Mapping</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping()
+ * @see #getCGRealizedVariable()
+ * @generated
+ */
+ EReference getCGRealizedVariable_Mapping();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getTypedModel <em>Typed Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Typed Model</em>'.
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getTypedModel()
+ * @see #getCGRealizedVariable()
+ * @generated
+ */
+ EReference getCGRealizedVariable_TypedModel();
+
+ /**
+ * 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
+ */
+ QVTiCGModelFactory getQVTiCGModelFactory();
+
+ /**
+ * <!-- 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 operation 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.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl <em>CG Ecore Property Assignment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcorePropertyAssignment()
+ * @generated
+ */
+ EClass CG_ECORE_PROPERTY_ASSIGNMENT = eINSTANCE.getCGEcorePropertyAssignment();
+
+ /**
+ * The meta object literal for the '<em><b>EStructural Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE = eINSTANCE.getCGEcorePropertyAssignment_EStructuralFeature();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl <em>CG Ecore Realized Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcoreRealizedVariable()
+ * @generated
+ */
+ EClass CG_ECORE_REALIZED_VARIABLE = eINSTANCE.getCGEcoreRealizedVariable();
+
+ /**
+ * The meta object literal for the '<em><b>EClassifier</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER = eINSTANCE.getCGEcoreRealizedVariable_EClassifier();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionImpl <em>CG Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunction()
+ * @generated
+ */
+ EClass CG_FUNCTION = eINSTANCE.getCGFunction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl <em>CG Function Call Exp</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionCallExp()
+ * @generated
+ */
+ EClass CG_FUNCTION_CALL_EXP = eINSTANCE.getCGFunctionCallExp();
+
+ /**
+ * The meta object literal for the '<em><b>Function</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_FUNCTION_CALL_EXP__FUNCTION = eINSTANCE.getCGFunctionCallExp_Function();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl <em>CG Function Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionParameter()
+ * @generated
+ */
+ EClass CG_FUNCTION_PARAMETER = eINSTANCE.getCGFunctionParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Function</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_FUNCTION_PARAMETER__FUNCTION = eINSTANCE.getCGFunctionParameter_Function();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl <em>CG Guard Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGGuardVariable()
+ * @generated
+ */
+ EClass CG_GUARD_VARIABLE = eINSTANCE.getCGGuardVariable();
+
+ /**
+ * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_GUARD_VARIABLE__MAPPING = eINSTANCE.getCGGuardVariable_Mapping();
+
+ /**
+ * The meta object literal for the '<em><b>Typed Model</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_GUARD_VARIABLE__TYPED_MODEL = eINSTANCE.getCGGuardVariable_TypedModel();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl <em>CG Property Assignment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPropertyAssignment()
+ * @generated
+ */
+ EClass CG_PROPERTY_ASSIGNMENT = eINSTANCE.getCGPropertyAssignment();
+
+ /**
+ * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_PROPERTY_ASSIGNMENT__MAPPING = eINSTANCE.getCGPropertyAssignment_Mapping();
+
+ /**
+ * The meta object literal for the '<em><b>Slot Value</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_PROPERTY_ASSIGNMENT__SLOT_VALUE = eINSTANCE.getCGPropertyAssignment_SlotValue();
+
+ /**
+ * The meta object literal for the '<em><b>Referred Property</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY = eINSTANCE.getCGPropertyAssignment_ReferredProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Init Value</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_PROPERTY_ASSIGNMENT__INIT_VALUE = eINSTANCE.getCGPropertyAssignment_InitValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl <em>CG Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMapping()
+ * @generated
+ */
+ EClass CG_MAPPING = eINSTANCE.getCGMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Transformation</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING__TRANSFORMATION = eINSTANCE.getCGMapping_Transformation();
+
+ /**
+ * The meta object literal for the '<em><b>Guard Variables</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING__GUARD_VARIABLES = eINSTANCE.getCGMapping_GuardVariables();
+
+ /**
+ * The meta object literal for the '<em><b>Predicates</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING__PREDICATES = eINSTANCE.getCGMapping_Predicates();
+
+ /**
+ * The meta object literal for the '<em><b>Mapping Calls</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING__MAPPING_CALLS = eINSTANCE.getCGMapping_MappingCalls();
+
+ /**
+ * The meta object literal for the '<em><b>Realized Variables</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING__REALIZED_VARIABLES = eINSTANCE.getCGMapping_RealizedVariables();
+
+ /**
+ * The meta object literal for the '<em><b>Assignments</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING__ASSIGNMENTS = eINSTANCE.getCGMapping_Assignments();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl <em>CG Transformation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTransformation()
+ * @generated
+ */
+ EClass CG_TRANSFORMATION = eINSTANCE.getCGTransformation();
+
+ /**
+ * The meta object literal for the '<em><b>Mappings</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_TRANSFORMATION__MAPPINGS = eINSTANCE.getCGTransformation_Mappings();
+
+ /**
+ * The meta object literal for the '<em><b>Typed Models</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_TRANSFORMATION__TYPED_MODELS = eINSTANCE.getCGTransformation_TypedModels();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl <em>CG Typed Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTypedModel()
+ * @generated
+ */
+ EClass CG_TYPED_MODEL = eINSTANCE.getCGTypedModel();
+
+ /**
+ * The meta object literal for the '<em><b>Transformation</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_TYPED_MODEL__TRANSFORMATION = eINSTANCE.getCGTypedModel_Transformation();
+
+ /**
+ * The meta object literal for the '<em><b>Model Index</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CG_TYPED_MODEL__MODEL_INDEX = eINSTANCE.getCGTypedModel_ModelIndex();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl <em>CG Mapping Call</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCall()
+ * @generated
+ */
+ EClass CG_MAPPING_CALL = eINSTANCE.getCGMappingCall();
+
+ /**
+ * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING_CALL__MAPPING = eINSTANCE.getCGMappingCall_Mapping();
+
+ /**
+ * The meta object literal for the '<em><b>Mapping Call Bindings</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING_CALL__MAPPING_CALL_BINDINGS = eINSTANCE.getCGMappingCall_MappingCallBindings();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl <em>CG Mapping Call Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCallBinding()
+ * @generated
+ */
+ EClass CG_MAPPING_CALL_BINDING = eINSTANCE.getCGMappingCallBinding();
+
+ /**
+ * The meta object literal for the '<em><b>Value Or Values</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES = eINSTANCE.getCGMappingCallBinding_ValueOrValues();
+
+ /**
+ * The meta object literal for the '<em><b>Loop</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CG_MAPPING_CALL_BINDING__LOOP = eINSTANCE.getCGMappingCallBinding_Loop();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl <em>CG Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPredicate()
+ * @generated
+ */
+ EClass CG_PREDICATE = eINSTANCE.getCGPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_PREDICATE__MAPPING = eINSTANCE.getCGPredicate_Mapping();
+
+ /**
+ * The meta object literal for the '<em><b>Condition Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_PREDICATE__CONDITION_EXPRESSION = eINSTANCE.getCGPredicate_ConditionExpression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl <em>CG Realized Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGRealizedVariable()
+ * @generated
+ */
+ EClass CG_REALIZED_VARIABLE = eINSTANCE.getCGRealizedVariable();
+
+ /**
+ * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_REALIZED_VARIABLE__MAPPING = eINSTANCE.getCGRealizedVariable_Mapping();
+
+ /**
+ * The meta object literal for the '<em><b>Typed Model</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CG_REALIZED_VARIABLE__TYPED_MODEL = eINSTANCE.getCGRealizedVariable_TypedModel();
+
+ }
+
+} //QVTiCGmodelPackage
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java
new file mode 100644
index 000000000..d89d559cb
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java
@@ -0,0 +1,154 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Ecore Property Assignment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl#getEStructuralFeature <em>EStructural Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGEcorePropertyAssignmentImpl extends CGPropertyAssignmentImpl implements CGEcorePropertyAssignment {
+ /**
+ * The cached value of the '{@link #getEStructuralFeature() <em>EStructural Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEStructuralFeature()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature eStructuralFeature;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGEcorePropertyAssignmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_ECORE_PROPERTY_ASSIGNMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EStructuralFeature getEStructuralFeature() {
+ return eStructuralFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEStructuralFeature(EStructuralFeature newEStructuralFeature) {
+ EStructuralFeature oldEStructuralFeature = eStructuralFeature;
+ eStructuralFeature = newEStructuralFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE, oldEStructuralFeature, eStructuralFeature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE:
+ return getEStructuralFeature();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE:
+ setEStructuralFeature((EStructuralFeature)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE:
+ setEStructuralFeature((EStructuralFeature)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE:
+ return eStructuralFeature != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGEcorePropertyAssignment(this);
+ }
+
+} //CGEcorePropertyAssignmentImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java
new file mode 100644
index 000000000..581eec809
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java
@@ -0,0 +1,154 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Ecore Realized Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl#getEClassifier <em>EClassifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGEcoreRealizedVariableImpl extends CGRealizedVariableImpl implements CGEcoreRealizedVariable {
+ /**
+ * The cached value of the '{@link #getEClassifier() <em>EClassifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEClassifier()
+ * @generated
+ * @ordered
+ */
+ protected EClassifier eClassifier;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGEcoreRealizedVariableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_ECORE_REALIZED_VARIABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClassifier getEClassifier() {
+ return eClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEClassifier(EClassifier newEClassifier) {
+ EClassifier oldEClassifier = eClassifier;
+ eClassifier = newEClassifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER, oldEClassifier, eClassifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER:
+ return getEClassifier();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER:
+ setEClassifier((EClassifier)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER:
+ setEClassifier((EClassifier)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER:
+ return eClassifier != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGEcoreRealizedVariable(this);
+ }
+
+} //CGEcoreRealizedVariableImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionCallExpImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionCallExpImpl.java
new file mode 100644
index 000000000..2f111d4ed
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionCallExpImpl.java
@@ -0,0 +1,164 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGOperationCallExpImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Function Call Exp</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGFunctionCallExpImpl extends CGOperationCallExpImpl implements CGFunctionCallExp {
+ /**
+ * The cached value of the '{@link #getFunction() <em>Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunction()
+ * @generated
+ * @ordered
+ */
+ protected CGFunction function;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGFunctionCallExpImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_FUNCTION_CALL_EXP;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGFunction getFunction() {
+ return function;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFunction(CGFunction newFunction) {
+ CGFunction oldFunction = function;
+ function = newFunction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION, oldFunction, function));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION:
+ return getFunction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION:
+ setFunction((CGFunction)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION:
+ setFunction((CGFunction)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION:
+ return function != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGFunctionCallExp(this);
+ }
+
+ @Override
+ public boolean isBoxed() {
+ return false;
+ }
+
+ @Override
+ public boolean isUnboxed() {
+ return true;
+ }
+} //CGFunctionCallExpImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionImpl.java
new file mode 100644
index 000000000..83f1af615
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionImpl.java
@@ -0,0 +1,58 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGOperationImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CGFunctionImpl extends CGOperationImpl implements CGFunction {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGFunctionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_FUNCTION;
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGFunction(this);
+ }
+} //CGFunctionImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionParameterImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionParameterImpl.java
new file mode 100644
index 000000000..49214b69e
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionParameterImpl.java
@@ -0,0 +1,164 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGParameterImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Function Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGFunctionParameterImpl extends CGParameterImpl implements CGFunctionParameter {
+ /**
+ * The cached value of the '{@link #getFunction() <em>Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunction()
+ * @generated
+ * @ordered
+ */
+ protected CGFunction function;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGFunctionParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_FUNCTION_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGFunction getFunction() {
+ return function;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFunction(CGFunction newFunction) {
+ CGFunction oldFunction = function;
+ function = newFunction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION, oldFunction, function));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION:
+ return getFunction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION:
+ setFunction((CGFunction)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION:
+ setFunction((CGFunction)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION:
+ return function != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGFunctionParameter(this);
+ }
+
+ @Override
+ public boolean isBoxed() {
+ return false;
+ }
+
+ @Override
+ public boolean isUnboxed() {
+ return true;
+ }
+} //CGFunctionParameterImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGGuardVariableImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGGuardVariableImpl.java
new file mode 100644
index 000000000..206de4fb0
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGGuardVariableImpl.java
@@ -0,0 +1,274 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+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.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGParameterImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Guard Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl#getTypedModel <em>Typed Model</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGGuardVariableImpl extends CGParameterImpl implements CGGuardVariable {
+ /**
+ * The cached value of the '{@link #getTypedModel() <em>Typed Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedModel()
+ * @generated
+ * @ordered
+ */
+ protected CGTypedModel typedModel;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGGuardVariableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_GUARD_VARIABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGMapping getMapping() {
+ if (eContainerFeatureID() != QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING) return null;
+ return (CGMapping)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMapping(CGMapping newMapping) {
+ if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING && newMapping != null)) {
+ if (EcoreUtil.isAncestor(this, newMapping))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newMapping != null)
+ msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES, CGMapping.class, msgs);
+ msgs = basicSetMapping(newMapping, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING, newMapping, newMapping));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGTypedModel getTypedModel() {
+ return typedModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypedModel(CGTypedModel newTypedModel) {
+ CGTypedModel oldTypedModel = typedModel;
+ typedModel = newTypedModel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL, oldTypedModel, typedModel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetMapping((CGMapping)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING:
+ return basicSetMapping(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING:
+ return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES, CGMapping.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING:
+ return getMapping();
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL:
+ return getTypedModel();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING:
+ setMapping((CGMapping)newValue);
+ return;
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL:
+ setTypedModel((CGTypedModel)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING:
+ setMapping((CGMapping)null);
+ return;
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL:
+ setTypedModel((CGTypedModel)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING:
+ return getMapping() != null;
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL:
+ return typedModel != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGGuardVariable(this);
+ }
+
+ @Override
+ public boolean isBoxed() {
+ return false;
+ }
+
+ @Override
+ public boolean isNonNull() {
+ return true;
+ }
+
+ @Override
+ public boolean isNull() {
+ return false;
+ }
+
+ @Override
+ public boolean isUnboxed() {
+ return true;
+ }
+} //CGGuardVariableImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallBindingImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallBindingImpl.java
new file mode 100644
index 000000000..e5fa5b243
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallBindingImpl.java
@@ -0,0 +1,253 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+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.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Mapping Call Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl#getValueOrValues <em>Value Or Values</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl#isLoop <em>Loop</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGMappingCallBindingImpl extends CGValuedElementImpl implements CGMappingCallBinding {
+ /**
+ * The cached value of the '{@link #getValueOrValues() <em>Value Or Values</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValueOrValues()
+ * @generated
+ * @ordered
+ */
+ protected CGValuedElement valueOrValues;
+
+ /**
+ * The default value of the '{@link #isLoop() <em>Loop</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLoop()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOOP_EDEFAULT = false;
+ /**
+ * The cached value of the '{@link #isLoop() <em>Loop</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLoop()
+ * @generated
+ * @ordered
+ */
+ protected boolean loop = LOOP_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGMappingCallBindingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_MAPPING_CALL_BINDING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGValuedElement getValueOrValues() {
+ return valueOrValues;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetValueOrValues(CGValuedElement newValueOrValues, NotificationChain msgs) {
+ CGValuedElement oldValueOrValues = valueOrValues;
+ valueOrValues = newValueOrValues;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES, oldValueOrValues, newValueOrValues);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValueOrValues(CGValuedElement newValueOrValues) {
+ if (newValueOrValues != valueOrValues) {
+ NotificationChain msgs = null;
+ if (valueOrValues != null)
+ msgs = ((InternalEObject)valueOrValues).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES, null, msgs);
+ if (newValueOrValues != null)
+ msgs = ((InternalEObject)newValueOrValues).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES, null, msgs);
+ msgs = basicSetValueOrValues(newValueOrValues, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES, newValueOrValues, newValueOrValues));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLoop() {
+ return loop;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLoop(boolean newLoop) {
+ boolean oldLoop = loop;
+ loop = newLoop;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP, oldLoop, loop));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES:
+ return basicSetValueOrValues(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 QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES:
+ return getValueOrValues();
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP:
+ return isLoop();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES:
+ setValueOrValues((CGValuedElement)newValue);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP:
+ setLoop((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES:
+ setValueOrValues((CGValuedElement)null);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP:
+ setLoop(LOOP_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES:
+ return valueOrValues != null;
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP:
+ return loop != LOOP_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGMappingCallBinding(this);
+ }
+
+ @Override
+ public @NonNull CGValuedElement getReferredValuedElement() {
+ return valueOrValues != null ? valueOrValues : this;
+ }
+
+ @Override
+ public String toString() {
+ return super.toString();
+ }
+} //CGMappingCallBindingImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallImpl.java
new file mode 100644
index 000000000..25fade748
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallImpl.java
@@ -0,0 +1,254 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import java.util.Collection;
+import java.util.List;
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Mapping Call</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl#getMappingCallBindings <em>Mapping Call Bindings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGMappingCallImpl extends CGValuedElementImpl implements CGMappingCall {
+ /**
+ * The cached value of the '{@link #getMappingCallBindings() <em>Mapping Call Bindings</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMappingCallBindings()
+ * @generated
+ * @ordered
+ */
+ protected EList<CGMappingCallBinding> mappingCallBindings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGMappingCallImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_MAPPING_CALL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGMapping getMapping() {
+ if (eContainerFeatureID() != QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING) return null;
+ return (CGMapping)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMapping(CGMapping newMapping) {
+ if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING && newMapping != null)) {
+ if (EcoreUtil.isAncestor(this, newMapping))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newMapping != null)
+ msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS, CGMapping.class, msgs);
+ msgs = basicSetMapping(newMapping, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING, newMapping, newMapping));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<CGMappingCallBinding> getMappingCallBindings() {
+ if (mappingCallBindings == null) {
+ mappingCallBindings = new EObjectContainmentEList<CGMappingCallBinding>(CGMappingCallBinding.class, this, QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS);
+ }
+ return mappingCallBindings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetMapping((CGMapping)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING:
+ return basicSetMapping(null, msgs);
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS:
+ return ((InternalEList<?>)getMappingCallBindings()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING:
+ return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS, CGMapping.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING:
+ return getMapping();
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS:
+ return getMappingCallBindings();
+ }
+ 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 QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING:
+ setMapping((CGMapping)newValue);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS:
+ getMappingCallBindings().clear();
+ getMappingCallBindings().addAll((Collection<? extends CGMappingCallBinding>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING:
+ setMapping((CGMapping)null);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS:
+ getMappingCallBindings().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING:
+ return getMapping() != null;
+ case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS:
+ return mappingCallBindings != null && !mappingCallBindings.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGMappingCall(this);
+ }
+} //CGMappingCallImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingImpl.java
new file mode 100644
index 000000000..ea9c04a29
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingImpl.java
@@ -0,0 +1,414 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+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.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGTypedElementImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getTransformation <em>Transformation</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getGuardVariables <em>Guard Variables</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getPredicates <em>Predicates</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getRealizedVariables <em>Realized Variables</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getAssignments <em>Assignments</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getMappingCalls <em>Mapping Calls</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGMappingImpl extends CGTypedElementImpl implements CGMapping {
+ /**
+ * The cached value of the '{@link #getGuardVariables() <em>Guard Variables</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGuardVariables()
+ * @generated
+ * @ordered
+ */
+ protected EList<CGGuardVariable> guardVariables;
+
+ /**
+ * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPredicates()
+ * @generated
+ * @ordered
+ */
+ protected EList<CGPredicate> predicates;
+
+ /**
+ * The cached value of the '{@link #getRealizedVariables() <em>Realized Variables</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRealizedVariables()
+ * @generated
+ * @ordered
+ */
+ protected EList<CGRealizedVariable> realizedVariables;
+
+ /**
+ * The cached value of the '{@link #getAssignments() <em>Assignments</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAssignments()
+ * @generated
+ * @ordered
+ */
+ protected EList<CGPropertyAssignment> assignments;
+
+ /**
+ * The cached value of the '{@link #getMappingCalls() <em>Mapping Calls</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMappingCalls()
+ * @generated
+ * @ordered
+ */
+ protected EList<CGMappingCall> mappingCalls;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGTransformation getTransformation() {
+ if (eContainerFeatureID() != QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION) return null;
+ return (CGTransformation)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTransformation(CGTransformation newTransformation, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newTransformation, QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransformation(CGTransformation newTransformation) {
+ if (newTransformation != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION && newTransformation != null)) {
+ if (EcoreUtil.isAncestor(this, newTransformation))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newTransformation != null)
+ msgs = ((InternalEObject)newTransformation).eInverseAdd(this, QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS, CGTransformation.class, msgs);
+ msgs = basicSetTransformation(newTransformation, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION, newTransformation, newTransformation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<CGGuardVariable> getGuardVariables() {
+ if (guardVariables == null) {
+ guardVariables = new EObjectContainmentWithInverseEList<CGGuardVariable>(CGGuardVariable.class, this, QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES, QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING);
+ }
+ return guardVariables;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<CGPredicate> getPredicates() {
+ if (predicates == null) {
+ predicates = new EObjectContainmentWithInverseEList<CGPredicate>(CGPredicate.class, this, QVTiCGModelPackage.CG_MAPPING__PREDICATES, QVTiCGModelPackage.CG_PREDICATE__MAPPING);
+ }
+ return predicates;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<CGMappingCall> getMappingCalls() {
+ if (mappingCalls == null) {
+ mappingCalls = new EObjectContainmentWithInverseEList<CGMappingCall>(CGMappingCall.class, this, QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS, QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING);
+ }
+ return mappingCalls;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetTransformation((CGTransformation)otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getGuardVariables()).basicAdd(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__PREDICATES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getPredicates()).basicAdd(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getRealizedVariables()).basicAdd(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getAssignments()).basicAdd(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getMappingCalls()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<CGRealizedVariable> getRealizedVariables() {
+ if (realizedVariables == null) {
+ realizedVariables = new EObjectContainmentWithInverseEList<CGRealizedVariable>(CGRealizedVariable.class, this, QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES, QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING);
+ }
+ return realizedVariables;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<CGPropertyAssignment> getAssignments() {
+ if (assignments == null) {
+ assignments = new EObjectContainmentWithInverseEList<CGPropertyAssignment>(CGPropertyAssignment.class, this, QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING);
+ }
+ return assignments;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION:
+ return basicSetTransformation(null, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES:
+ return ((InternalEList<?>)getGuardVariables()).basicRemove(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__PREDICATES:
+ return ((InternalEList<?>)getPredicates()).basicRemove(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES:
+ return ((InternalEList<?>)getRealizedVariables()).basicRemove(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS:
+ return ((InternalEList<?>)getAssignments()).basicRemove(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS:
+ return ((InternalEList<?>)getMappingCalls()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION:
+ return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS, CGTransformation.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION:
+ return getTransformation();
+ case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES:
+ return getGuardVariables();
+ case QVTiCGModelPackage.CG_MAPPING__PREDICATES:
+ return getPredicates();
+ case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES:
+ return getRealizedVariables();
+ case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS:
+ return getAssignments();
+ case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS:
+ return getMappingCalls();
+ }
+ 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 QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION:
+ setTransformation((CGTransformation)newValue);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES:
+ getGuardVariables().clear();
+ getGuardVariables().addAll((Collection<? extends CGGuardVariable>)newValue);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__PREDICATES:
+ getPredicates().clear();
+ getPredicates().addAll((Collection<? extends CGPredicate>)newValue);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES:
+ getRealizedVariables().clear();
+ getRealizedVariables().addAll((Collection<? extends CGRealizedVariable>)newValue);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS:
+ getAssignments().clear();
+ getAssignments().addAll((Collection<? extends CGPropertyAssignment>)newValue);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS:
+ getMappingCalls().clear();
+ getMappingCalls().addAll((Collection<? extends CGMappingCall>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION:
+ setTransformation((CGTransformation)null);
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES:
+ getGuardVariables().clear();
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__PREDICATES:
+ getPredicates().clear();
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES:
+ getRealizedVariables().clear();
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS:
+ getAssignments().clear();
+ return;
+ case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS:
+ getMappingCalls().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION:
+ return getTransformation() != null;
+ case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES:
+ return guardVariables != null && !guardVariables.isEmpty();
+ case QVTiCGModelPackage.CG_MAPPING__PREDICATES:
+ return predicates != null && !predicates.isEmpty();
+ case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES:
+ return realizedVariables != null && !realizedVariables.isEmpty();
+ case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS:
+ return assignments != null && !assignments.isEmpty();
+ case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS:
+ return mappingCalls != null && !mappingCalls.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGMapping(this);
+ }
+} //CGMappingImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPredicateImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPredicateImpl.java
new file mode 100644
index 000000000..faed630d4
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPredicateImpl.java
@@ -0,0 +1,333 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+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.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl#getConditionExpression <em>Condition Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGPredicateImpl extends CGValuedElementImpl implements CGPredicate {
+ /**
+ * The cached value of the '{@link #getConditionExpression() <em>Condition Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConditionExpression()
+ * @generated
+ * @ordered
+ */
+ protected CGValuedElement conditionExpression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGPredicateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGMapping getMapping() {
+ if (eContainerFeatureID() != QVTiCGModelPackage.CG_PREDICATE__MAPPING) return null;
+ return (CGMapping)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_PREDICATE__MAPPING, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMapping(CGMapping newMapping) {
+ if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_PREDICATE__MAPPING && newMapping != null)) {
+ if (EcoreUtil.isAncestor(this, newMapping))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newMapping != null)
+ msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__PREDICATES, CGMapping.class, msgs);
+ msgs = basicSetMapping(newMapping, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PREDICATE__MAPPING, newMapping, newMapping));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGValuedElement getConditionExpression() {
+ return conditionExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetConditionExpression(CGValuedElement newConditionExpression, NotificationChain msgs) {
+ CGValuedElement oldConditionExpression = conditionExpression;
+ conditionExpression = newConditionExpression;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION, oldConditionExpression, newConditionExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setConditionExpression(CGValuedElement newConditionExpression) {
+ if (newConditionExpression != conditionExpression) {
+ NotificationChain msgs = null;
+ if (conditionExpression != null)
+ msgs = ((InternalEObject)conditionExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION, null, msgs);
+ if (newConditionExpression != null)
+ msgs = ((InternalEObject)newConditionExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION, null, msgs);
+ msgs = basicSetConditionExpression(newConditionExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION, newConditionExpression, newConditionExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PREDICATE__MAPPING:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetMapping((CGMapping)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PREDICATE__MAPPING:
+ return basicSetMapping(null, msgs);
+ case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION:
+ return basicSetConditionExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case QVTiCGModelPackage.CG_PREDICATE__MAPPING:
+ return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__PREDICATES, CGMapping.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PREDICATE__MAPPING:
+ return getMapping();
+ case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION:
+ return getConditionExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PREDICATE__MAPPING:
+ setMapping((CGMapping)newValue);
+ return;
+ case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION:
+ setConditionExpression((CGValuedElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PREDICATE__MAPPING:
+ setMapping((CGMapping)null);
+ return;
+ case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION:
+ setConditionExpression((CGValuedElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PREDICATE__MAPPING:
+ return getMapping() != null;
+ case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION:
+ return conditionExpression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGPredicate(this);
+ }
+
+ @Override
+ public @NonNull CGValuedElement getReferredValuedElement() {
+ return this;
+ }
+
+ @Override
+ public boolean isBoxed() {
+ return true;
+ }
+
+ @Override
+ public boolean isCaught() {
+ return true;
+ }
+
+ @Override
+ public boolean isFalse() {
+ return (conditionExpression != null) && conditionExpression.isConstant() && !conditionExpression.isTrue();
+ }
+
+ @Override
+ public boolean isGlobal() {
+ return false;
+ }
+
+ @Override
+ public boolean isInvalid() {
+ return false;
+ }
+
+ @Override
+ public boolean isNonInvalid() {
+ return true;
+ }
+
+ @Override
+ public boolean isNonNull() {
+ return true;
+ }
+
+ @Override
+ public boolean isNull() {
+ return false;
+ }
+
+ @Override
+ public boolean isTrue() {
+ return (conditionExpression != null) && conditionExpression.isTrue();
+ }
+
+ @Override
+ public boolean isUnboxed() {
+ return true;
+ }
+} //CGPredicateImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPropertyAssignmentImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPropertyAssignmentImpl.java
new file mode 100644
index 000000000..397854ee1
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPropertyAssignmentImpl.java
@@ -0,0 +1,415 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+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.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.ocl.examples.pivot.Property;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Assignment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl#getSlotValue <em>Slot Value</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl#getReferredProperty <em>Referred Property</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl#getInitValue <em>Init Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGPropertyAssignmentImpl extends CGValuedElementImpl implements CGPropertyAssignment {
+ /**
+ * The cached value of the '{@link #getSlotValue() <em>Slot Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSlotValue()
+ * @generated
+ * @ordered
+ */
+ protected CGValuedElement slotValue;
+ /**
+ * The default value of the '{@link #getReferredProperty() <em>Referred Property</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferredProperty()
+ * @generated
+ * @ordered
+ */
+ protected static final Property REFERRED_PROPERTY_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getReferredProperty() <em>Referred Property</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferredProperty()
+ * @generated
+ * @ordered
+ */
+ protected Property referredProperty = REFERRED_PROPERTY_EDEFAULT;
+ /**
+ * The cached value of the '{@link #getInitValue() <em>Init Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitValue()
+ * @generated
+ * @ordered
+ */
+ protected CGValuedElement initValue;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGPropertyAssignmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_PROPERTY_ASSIGNMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGMapping getMapping() {
+ if (eContainerFeatureID() != QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING) return null;
+ return (CGMapping)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMapping(CGMapping newMapping) {
+ if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING && newMapping != null)) {
+ if (EcoreUtil.isAncestor(this, newMapping))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newMapping != null)
+ msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS, CGMapping.class, msgs);
+ msgs = basicSetMapping(newMapping, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING, newMapping, newMapping));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGValuedElement getSlotValue() {
+ return slotValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSlotValue(CGValuedElement newSlotValue, NotificationChain msgs) {
+ CGValuedElement oldSlotValue = slotValue;
+ slotValue = newSlotValue;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE, oldSlotValue, newSlotValue);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSlotValue(CGValuedElement newSlotValue) {
+ if (newSlotValue != slotValue) {
+ NotificationChain msgs = null;
+ if (slotValue != null)
+ msgs = ((InternalEObject)slotValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE, null, msgs);
+ if (newSlotValue != null)
+ msgs = ((InternalEObject)newSlotValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE, null, msgs);
+ msgs = basicSetSlotValue(newSlotValue, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE, newSlotValue, newSlotValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property getReferredProperty() {
+ return referredProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReferredProperty(Property newReferredProperty) {
+ Property oldReferredProperty = referredProperty;
+ referredProperty = newReferredProperty;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY, oldReferredProperty, referredProperty));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGValuedElement getInitValue() {
+ return initValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInitValue(CGValuedElement newInitValue, NotificationChain msgs) {
+ CGValuedElement oldInitValue = initValue;
+ initValue = newInitValue;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE, oldInitValue, newInitValue);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitValue(CGValuedElement newInitValue) {
+ if (newInitValue != initValue) {
+ NotificationChain msgs = null;
+ if (initValue != null)
+ msgs = ((InternalEObject)initValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE, null, msgs);
+ if (newInitValue != null)
+ msgs = ((InternalEObject)newInitValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE, null, msgs);
+ msgs = basicSetInitValue(newInitValue, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE, newInitValue, newInitValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetMapping((CGMapping)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING:
+ return basicSetMapping(null, msgs);
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE:
+ return basicSetSlotValue(null, msgs);
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE:
+ return basicSetInitValue(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING:
+ return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS, CGMapping.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING:
+ return getMapping();
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE:
+ return getSlotValue();
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY:
+ return getReferredProperty();
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE:
+ return getInitValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING:
+ setMapping((CGMapping)newValue);
+ return;
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE:
+ setSlotValue((CGValuedElement)newValue);
+ return;
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY:
+ setReferredProperty((Property)newValue);
+ return;
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE:
+ setInitValue((CGValuedElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING:
+ setMapping((CGMapping)null);
+ return;
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE:
+ setSlotValue((CGValuedElement)null);
+ return;
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY:
+ setReferredProperty(REFERRED_PROPERTY_EDEFAULT);
+ return;
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE:
+ setInitValue((CGValuedElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING:
+ return getMapping() != null;
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE:
+ return slotValue != null;
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY:
+ return REFERRED_PROPERTY_EDEFAULT == null ? referredProperty != null : !REFERRED_PROPERTY_EDEFAULT.equals(referredProperty);
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE:
+ return initValue != 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(" (referredProperty: ");
+ result.append(referredProperty);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGPropertyAssignment(this);
+ }
+
+ @Override
+ public @NonNull CGValuedElement getReferredValuedElement() {
+ return initValue != null ? initValue : this;
+ }
+} //CGAssignmentImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGRealizedVariableImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGRealizedVariableImpl.java
new file mode 100644
index 000000000..f7bb62504
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGRealizedVariableImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+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.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGVariableImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Realized Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl#getMapping <em>Mapping</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl#getTypedModel <em>Typed Model</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGRealizedVariableImpl extends CGVariableImpl implements CGRealizedVariable {
+ /**
+ * The cached value of the '{@link #getTypedModel() <em>Typed Model</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedModel()
+ * @generated
+ * @ordered
+ */
+ protected CGTypedModel typedModel;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGRealizedVariableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_REALIZED_VARIABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGMapping getMapping() {
+ if (eContainerFeatureID() != QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING) return null;
+ return (CGMapping)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMapping(CGMapping newMapping) {
+ if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING && newMapping != null)) {
+ if (EcoreUtil.isAncestor(this, newMapping))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newMapping != null)
+ msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES, CGMapping.class, msgs);
+ msgs = basicSetMapping(newMapping, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING, newMapping, newMapping));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGTypedModel getTypedModel() {
+ return typedModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypedModel(CGTypedModel newTypedModel) {
+ CGTypedModel oldTypedModel = typedModel;
+ typedModel = newTypedModel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL, oldTypedModel, typedModel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetMapping((CGMapping)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING:
+ return basicSetMapping(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING:
+ return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES, CGMapping.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING:
+ return getMapping();
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL:
+ return getTypedModel();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING:
+ setMapping((CGMapping)newValue);
+ return;
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL:
+ setTypedModel((CGTypedModel)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING:
+ setMapping((CGMapping)null);
+ return;
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL:
+ setTypedModel((CGTypedModel)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING:
+ return getMapping() != null;
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL:
+ return typedModel != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGRealizedVariable(this);
+ }
+
+ @Override
+ public @NonNull CGValuedElement getReferredValuedElement() {
+ return this;
+ }
+
+ @Override
+ public boolean isBoxed() {
+ return false;
+ }
+
+ @Override
+ public boolean isUnboxed() {
+ return true;
+ }
+} //CGRealizedVariableImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTransformationImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTransformationImpl.java
new file mode 100644
index 000000000..27408de0f
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTransformationImpl.java
@@ -0,0 +1,219 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+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.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGClassImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Transformation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl#getMappings <em>Mappings</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl#getTypedModels <em>Typed Models</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGTransformationImpl extends CGClassImpl implements CGTransformation {
+ /**
+ * The cached value of the '{@link #getMappings() <em>Mappings</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMappings()
+ * @generated
+ * @ordered
+ */
+ protected EList<CGMapping> mappings;
+ /**
+ * The cached value of the '{@link #getTypedModels() <em>Typed Models</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedModels()
+ * @generated
+ * @ordered
+ */
+ protected EList<CGTypedModel> typedModels;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGTransformationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_TRANSFORMATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<CGMapping> getMappings() {
+ if (mappings == null) {
+ mappings = new EObjectContainmentWithInverseEList<CGMapping>(CGMapping.class, this, QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS, QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION);
+ }
+ return mappings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<CGTypedModel> getTypedModels() {
+ if (typedModels == null) {
+ typedModels = new EObjectContainmentWithInverseEList<CGTypedModel>(CGTypedModel.class, this, QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS, QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION);
+ }
+ return typedModels;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getMappings()).basicAdd(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getTypedModels()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS:
+ return ((InternalEList<?>)getMappings()).basicRemove(otherEnd, msgs);
+ case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS:
+ return ((InternalEList<?>)getTypedModels()).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 QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS:
+ return getMappings();
+ case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS:
+ return getTypedModels();
+ }
+ 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 QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS:
+ getMappings().clear();
+ getMappings().addAll((Collection<? extends CGMapping>)newValue);
+ return;
+ case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS:
+ getTypedModels().clear();
+ getTypedModels().addAll((Collection<? extends CGTypedModel>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS:
+ getMappings().clear();
+ return;
+ case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS:
+ getTypedModels().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS:
+ return mappings != null && !mappings.isEmpty();
+ case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS:
+ return typedModels != null && !typedModels.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGTransformation(this);
+ }
+} //CGTransformationImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTypedModelImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTypedModelImpl.java
new file mode 100644
index 000000000..5e8dd607a
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTypedModelImpl.java
@@ -0,0 +1,268 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+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.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGNamedElementImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Typed Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl#getTransformation <em>Transformation</em>}</li>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl#getModelIndex <em>Model Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGTypedModelImpl extends CGNamedElementImpl implements CGTypedModel {
+ /**
+ * The default value of the '{@link #getModelIndex() <em>Model Index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelIndex()
+ * @generated
+ * @ordered
+ */
+ protected static final int MODEL_INDEX_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getModelIndex() <em>Model Index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelIndex()
+ * @generated
+ * @ordered
+ */
+ protected int modelIndex = MODEL_INDEX_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGTypedModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_TYPED_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGTransformation getTransformation() {
+ if (eContainerFeatureID() != QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION) return null;
+ return (CGTransformation)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTransformation(CGTransformation newTransformation, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newTransformation, QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransformation(CGTransformation newTransformation) {
+ if (newTransformation != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION && newTransformation != null)) {
+ if (EcoreUtil.isAncestor(this, newTransformation))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newTransformation != null)
+ msgs = ((InternalEObject)newTransformation).eInverseAdd(this, QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS, CGTransformation.class, msgs);
+ msgs = basicSetTransformation(newTransformation, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION, newTransformation, newTransformation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getModelIndex() {
+ return modelIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModelIndex(int newModelIndex) {
+ int oldModelIndex = modelIndex;
+ modelIndex = newModelIndex;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX, oldModelIndex, modelIndex));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetTransformation((CGTransformation)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION:
+ return basicSetTransformation(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION:
+ return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS, CGTransformation.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION:
+ return getTransformation();
+ case QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX:
+ return getModelIndex();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION:
+ setTransformation((CGTransformation)newValue);
+ return;
+ case QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX:
+ setModelIndex((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION:
+ setTransformation((CGTransformation)null);
+ return;
+ case QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX:
+ setModelIndex(MODEL_INDEX_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION:
+ return getTransformation() != null;
+ case QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX:
+ return modelIndex != MODEL_INDEX_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGTypedModel(this);
+ }
+
+ @Override
+ public String toString() {
+ return super.toString();
+ }
+} //CGTypedModelImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java
new file mode 100644
index 000000000..9680701ea
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java
@@ -0,0 +1,249 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+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;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.qvtd.codegen.qvticgmodel.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QVTiCGModelFactoryImpl extends EFactoryImpl implements QVTiCGModelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static @NonNull QVTiCGModelFactory init() {
+ try {
+ QVTiCGModelFactory theQVTiCGModelFactory = (QVTiCGModelFactory)EPackage.Registry.INSTANCE.getEFactory(QVTiCGModelPackage.eNS_URI);
+ if (theQVTiCGModelFactory != null) {
+ return theQVTiCGModelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new QVTiCGModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QVTiCGModelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT: return createCGEcorePropertyAssignment();
+ case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE: return createCGEcoreRealizedVariable();
+ case QVTiCGModelPackage.CG_FUNCTION: return createCGFunction();
+ case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP: return createCGFunctionCallExp();
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER: return createCGFunctionParameter();
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE: return createCGGuardVariable();
+ case QVTiCGModelPackage.CG_MAPPING: return createCGMapping();
+ case QVTiCGModelPackage.CG_MAPPING_CALL: return createCGMappingCall();
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING: return createCGMappingCallBinding();
+ case QVTiCGModelPackage.CG_PREDICATE: return createCGPredicate();
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT: return createCGPropertyAssignment();
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE: return createCGRealizedVariable();
+ case QVTiCGModelPackage.CG_TRANSFORMATION: return createCGTransformation();
+ case QVTiCGModelPackage.CG_TYPED_MODEL: return createCGTypedModel();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGEcorePropertyAssignment createCGEcorePropertyAssignment() {
+ CGEcorePropertyAssignmentImpl cgEcorePropertyAssignment = new CGEcorePropertyAssignmentImpl();
+ return cgEcorePropertyAssignment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGEcoreRealizedVariable createCGEcoreRealizedVariable() {
+ CGEcoreRealizedVariableImpl cgEcoreRealizedVariable = new CGEcoreRealizedVariableImpl();
+ return cgEcoreRealizedVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGFunction createCGFunction() {
+ CGFunctionImpl cgFunction = new CGFunctionImpl();
+ return cgFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGFunctionCallExp createCGFunctionCallExp() {
+ CGFunctionCallExpImpl cgFunctionCallExp = new CGFunctionCallExpImpl();
+ return cgFunctionCallExp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGFunctionParameter createCGFunctionParameter() {
+ CGFunctionParameterImpl cgFunctionParameter = new CGFunctionParameterImpl();
+ return cgFunctionParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGGuardVariable createCGGuardVariable() {
+ CGGuardVariableImpl cgGuardVariable = new CGGuardVariableImpl();
+ return cgGuardVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGPropertyAssignment createCGPropertyAssignment() {
+ CGPropertyAssignmentImpl cgPropertyAssignment = new CGPropertyAssignmentImpl();
+ return cgPropertyAssignment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGMapping createCGMapping() {
+ CGMappingImpl cgMapping = new CGMappingImpl();
+ return cgMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGTransformation createCGTransformation() {
+ CGTransformationImpl cgTransformation = new CGTransformationImpl();
+ return cgTransformation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGTypedModel createCGTypedModel() {
+ CGTypedModelImpl cgTypedModel = new CGTypedModelImpl();
+ return cgTypedModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGMappingCall createCGMappingCall() {
+ CGMappingCallImpl cgMappingCall = new CGMappingCallImpl();
+ return cgMappingCall;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGMappingCallBinding createCGMappingCallBinding() {
+ CGMappingCallBindingImpl cgMappingCallBinding = new CGMappingCallBindingImpl();
+ return cgMappingCallBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGPredicate createCGPredicate() {
+ CGPredicateImpl cgPredicate = new CGPredicateImpl();
+ return cgPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public @NonNull CGRealizedVariable createCGRealizedVariable() {
+ CGRealizedVariableImpl cgRealizedVariable = new CGRealizedVariableImpl();
+ return cgRealizedVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("null")
+ public @NonNull QVTiCGModelPackage getQVTiCGModelPackage() {
+ return (QVTiCGModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static @NonNull QVTiCGModelPackage getPackage() {
+ return QVTiCGModelPackage.eINSTANCE;
+ }
+
+} //QVTiCGmodelFactoryImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java
new file mode 100644
index 000000000..d34f74b3c
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java
@@ -0,0 +1,802 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGModelPackage;
+
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelFactory;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QVTiCGModelPackageImpl extends EPackageImpl implements QVTiCGModelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgEcorePropertyAssignmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgEcoreRealizedVariableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgFunctionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgFunctionCallExpEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgFunctionParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgGuardVariableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgPropertyAssignmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgTransformationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgTypedModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgMappingCallEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgMappingCallBindingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cgRealizedVariableEClass = 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.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private QVTiCGModelPackageImpl() {
+ super(eNS_URI, QVTiCGModelFactory.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 QVTiCGModelPackage#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 QVTiCGModelPackage init() {
+ if (isInited) return (QVTiCGModelPackage)EPackage.Registry.INSTANCE.getEPackage(QVTiCGModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ QVTiCGModelPackageImpl theQVTiCGModelPackage = (QVTiCGModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof QVTiCGModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new QVTiCGModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ CGModelPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theQVTiCGModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theQVTiCGModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theQVTiCGModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(QVTiCGModelPackage.eNS_URI, theQVTiCGModelPackage);
+ return theQVTiCGModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGEcorePropertyAssignment() {
+ return cgEcorePropertyAssignmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGEcorePropertyAssignment_EStructuralFeature() {
+ return (EReference)cgEcorePropertyAssignmentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGEcoreRealizedVariable() {
+ return cgEcoreRealizedVariableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGEcoreRealizedVariable_EClassifier() {
+ return (EReference)cgEcoreRealizedVariableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGFunction() {
+ return cgFunctionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGFunctionCallExp() {
+ return cgFunctionCallExpEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGFunctionCallExp_Function() {
+ return (EReference)cgFunctionCallExpEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGFunctionParameter() {
+ return cgFunctionParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGFunctionParameter_Function() {
+ return (EReference)cgFunctionParameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGGuardVariable() {
+ return cgGuardVariableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGGuardVariable_Mapping() {
+ return (EReference)cgGuardVariableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGGuardVariable_TypedModel() {
+ return (EReference)cgGuardVariableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGPropertyAssignment() {
+ return cgPropertyAssignmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGPropertyAssignment_Mapping() {
+ return (EReference)cgPropertyAssignmentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGPropertyAssignment_SlotValue() {
+ return (EReference)cgPropertyAssignmentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCGPropertyAssignment_ReferredProperty() {
+ return (EAttribute)cgPropertyAssignmentEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGPropertyAssignment_InitValue() {
+ return (EReference)cgPropertyAssignmentEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGMapping() {
+ return cgMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMapping_Transformation() {
+ return (EReference)cgMappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMapping_GuardVariables() {
+ return (EReference)cgMappingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMapping_Predicates() {
+ return (EReference)cgMappingEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMapping_MappingCalls() {
+ return (EReference)cgMappingEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMapping_RealizedVariables() {
+ return (EReference)cgMappingEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMapping_Assignments() {
+ return (EReference)cgMappingEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGTransformation() {
+ return cgTransformationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGTransformation_Mappings() {
+ return (EReference)cgTransformationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGTransformation_TypedModels() {
+ return (EReference)cgTransformationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGTypedModel() {
+ return cgTypedModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGTypedModel_Transformation() {
+ return (EReference)cgTypedModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCGTypedModel_ModelIndex() {
+ return (EAttribute)cgTypedModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGMappingCall() {
+ return cgMappingCallEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMappingCall_Mapping() {
+ return (EReference)cgMappingCallEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMappingCall_MappingCallBindings() {
+ return (EReference)cgMappingCallEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGMappingCallBinding() {
+ return cgMappingCallBindingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGMappingCallBinding_ValueOrValues() {
+ return (EReference)cgMappingCallBindingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCGMappingCallBinding_Loop() {
+ return (EAttribute)cgMappingCallBindingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGPredicate() {
+ return cgPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGPredicate_Mapping() {
+ return (EReference)cgPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGPredicate_ConditionExpression() {
+ return (EReference)cgPredicateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCGRealizedVariable() {
+ return cgRealizedVariableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGRealizedVariable_Mapping() {
+ return (EReference)cgRealizedVariableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCGRealizedVariable_TypedModel() {
+ return (EReference)cgRealizedVariableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QVTiCGModelFactory getQVTiCGModelFactory() {
+ return (QVTiCGModelFactory)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
+ cgEcorePropertyAssignmentEClass = createEClass(CG_ECORE_PROPERTY_ASSIGNMENT);
+ createEReference(cgEcorePropertyAssignmentEClass, CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE);
+
+ cgEcoreRealizedVariableEClass = createEClass(CG_ECORE_REALIZED_VARIABLE);
+ createEReference(cgEcoreRealizedVariableEClass, CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER);
+
+ cgFunctionEClass = createEClass(CG_FUNCTION);
+
+ cgFunctionCallExpEClass = createEClass(CG_FUNCTION_CALL_EXP);
+ createEReference(cgFunctionCallExpEClass, CG_FUNCTION_CALL_EXP__FUNCTION);
+
+ cgFunctionParameterEClass = createEClass(CG_FUNCTION_PARAMETER);
+ createEReference(cgFunctionParameterEClass, CG_FUNCTION_PARAMETER__FUNCTION);
+
+ cgGuardVariableEClass = createEClass(CG_GUARD_VARIABLE);
+ createEReference(cgGuardVariableEClass, CG_GUARD_VARIABLE__MAPPING);
+ createEReference(cgGuardVariableEClass, CG_GUARD_VARIABLE__TYPED_MODEL);
+
+ cgMappingEClass = createEClass(CG_MAPPING);
+ createEReference(cgMappingEClass, CG_MAPPING__TRANSFORMATION);
+ createEReference(cgMappingEClass, CG_MAPPING__GUARD_VARIABLES);
+ createEReference(cgMappingEClass, CG_MAPPING__PREDICATES);
+ createEReference(cgMappingEClass, CG_MAPPING__REALIZED_VARIABLES);
+ createEReference(cgMappingEClass, CG_MAPPING__ASSIGNMENTS);
+ createEReference(cgMappingEClass, CG_MAPPING__MAPPING_CALLS);
+
+ cgMappingCallEClass = createEClass(CG_MAPPING_CALL);
+ createEReference(cgMappingCallEClass, CG_MAPPING_CALL__MAPPING);
+ createEReference(cgMappingCallEClass, CG_MAPPING_CALL__MAPPING_CALL_BINDINGS);
+
+ cgMappingCallBindingEClass = createEClass(CG_MAPPING_CALL_BINDING);
+ createEReference(cgMappingCallBindingEClass, CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES);
+ createEAttribute(cgMappingCallBindingEClass, CG_MAPPING_CALL_BINDING__LOOP);
+
+ cgPredicateEClass = createEClass(CG_PREDICATE);
+ createEReference(cgPredicateEClass, CG_PREDICATE__MAPPING);
+ createEReference(cgPredicateEClass, CG_PREDICATE__CONDITION_EXPRESSION);
+
+ cgPropertyAssignmentEClass = createEClass(CG_PROPERTY_ASSIGNMENT);
+ createEReference(cgPropertyAssignmentEClass, CG_PROPERTY_ASSIGNMENT__MAPPING);
+ createEReference(cgPropertyAssignmentEClass, CG_PROPERTY_ASSIGNMENT__SLOT_VALUE);
+ createEAttribute(cgPropertyAssignmentEClass, CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY);
+ createEReference(cgPropertyAssignmentEClass, CG_PROPERTY_ASSIGNMENT__INIT_VALUE);
+
+ cgRealizedVariableEClass = createEClass(CG_REALIZED_VARIABLE);
+ createEReference(cgRealizedVariableEClass, CG_REALIZED_VARIABLE__MAPPING);
+ createEReference(cgRealizedVariableEClass, CG_REALIZED_VARIABLE__TYPED_MODEL);
+
+ cgTransformationEClass = createEClass(CG_TRANSFORMATION);
+ createEReference(cgTransformationEClass, CG_TRANSFORMATION__MAPPINGS);
+ createEReference(cgTransformationEClass, CG_TRANSFORMATION__TYPED_MODELS);
+
+ cgTypedModelEClass = createEClass(CG_TYPED_MODEL);
+ createEReference(cgTypedModelEClass, CG_TYPED_MODEL__TRANSFORMATION);
+ createEAttribute(cgTypedModelEClass, CG_TYPED_MODEL__MODEL_INDEX);
+ }
+
+ /**
+ * <!-- 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
+ CGModelPackage theCGModelPackage = (CGModelPackage)EPackage.Registry.INSTANCE.getEPackage(CGModelPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ cgEcorePropertyAssignmentEClass.getESuperTypes().add(this.getCGPropertyAssignment());
+ cgEcoreRealizedVariableEClass.getESuperTypes().add(this.getCGRealizedVariable());
+ cgFunctionEClass.getESuperTypes().add(theCGModelPackage.getCGOperation());
+ cgFunctionCallExpEClass.getESuperTypes().add(theCGModelPackage.getCGOperationCallExp());
+ cgFunctionParameterEClass.getESuperTypes().add(theCGModelPackage.getCGParameter());
+ cgGuardVariableEClass.getESuperTypes().add(theCGModelPackage.getCGParameter());
+ cgMappingEClass.getESuperTypes().add(theCGModelPackage.getCGTypedElement());
+ cgMappingCallEClass.getESuperTypes().add(theCGModelPackage.getCGValuedElement());
+ cgMappingCallBindingEClass.getESuperTypes().add(theCGModelPackage.getCGValuedElement());
+ cgPredicateEClass.getESuperTypes().add(theCGModelPackage.getCGValuedElement());
+ cgPropertyAssignmentEClass.getESuperTypes().add(theCGModelPackage.getCGValuedElement());
+ cgRealizedVariableEClass.getESuperTypes().add(theCGModelPackage.getCGVariable());
+ cgTransformationEClass.getESuperTypes().add(theCGModelPackage.getCGClass());
+ cgTypedModelEClass.getESuperTypes().add(theCGModelPackage.getCGNamedElement());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(cgEcorePropertyAssignmentEClass, CGEcorePropertyAssignment.class, "CGEcorePropertyAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGEcorePropertyAssignment_EStructuralFeature(), ecorePackage.getEStructuralFeature(), null, "eStructuralFeature", null, 1, 1, CGEcorePropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgEcoreRealizedVariableEClass, CGEcoreRealizedVariable.class, "CGEcoreRealizedVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGEcoreRealizedVariable_EClassifier(), ecorePackage.getEClassifier(), null, "eClassifier", null, 1, 1, CGEcoreRealizedVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgFunctionEClass, CGFunction.class, "CGFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(cgFunctionCallExpEClass, CGFunctionCallExp.class, "CGFunctionCallExp", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGFunctionCallExp_Function(), this.getCGFunction(), null, "function", null, 1, 1, CGFunctionCallExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgFunctionParameterEClass, CGFunctionParameter.class, "CGFunctionParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGFunctionParameter_Function(), this.getCGFunction(), null, "function", null, 1, 1, CGFunctionParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgGuardVariableEClass, CGGuardVariable.class, "CGGuardVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGGuardVariable_Mapping(), this.getCGMapping(), this.getCGMapping_GuardVariables(), "mapping", null, 1, 1, CGGuardVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGGuardVariable_TypedModel(), this.getCGTypedModel(), null, "typedModel", null, 1, 1, CGGuardVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgMappingEClass, CGMapping.class, "CGMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGMapping_Transformation(), this.getCGTransformation(), this.getCGTransformation_Mappings(), "transformation", null, 1, 1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGMapping_GuardVariables(), this.getCGGuardVariable(), this.getCGGuardVariable_Mapping(), "guardVariables", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getCGMapping_Predicates(), this.getCGPredicate(), this.getCGPredicate_Mapping(), "predicates", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGMapping_RealizedVariables(), this.getCGRealizedVariable(), this.getCGRealizedVariable_Mapping(), "realizedVariables", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGMapping_Assignments(), this.getCGPropertyAssignment(), this.getCGPropertyAssignment_Mapping(), "assignments", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGMapping_MappingCalls(), this.getCGMappingCall(), this.getCGMappingCall_Mapping(), "mappingCalls", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgMappingCallEClass, CGMappingCall.class, "CGMappingCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGMappingCall_Mapping(), this.getCGMapping(), this.getCGMapping_MappingCalls(), "mapping", null, 1, 1, CGMappingCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGMappingCall_MappingCallBindings(), this.getCGMappingCallBinding(), null, "mappingCallBindings", null, 0, -1, CGMappingCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgMappingCallBindingEClass, CGMappingCallBinding.class, "CGMappingCallBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGMappingCallBinding_ValueOrValues(), theCGModelPackage.getCGValuedElement(), null, "valueOrValues", null, 1, 1, CGMappingCallBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCGMappingCallBinding_Loop(), ecorePackage.getEBoolean(), "loop", "false", 1, 1, CGMappingCallBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgPredicateEClass, CGPredicate.class, "CGPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGPredicate_Mapping(), this.getCGMapping(), this.getCGMapping_Predicates(), "mapping", null, 1, 1, CGPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGPredicate_ConditionExpression(), theCGModelPackage.getCGValuedElement(), null, "conditionExpression", null, 1, 1, CGPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgPropertyAssignmentEClass, CGPropertyAssignment.class, "CGPropertyAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGPropertyAssignment_Mapping(), this.getCGMapping(), this.getCGMapping_Assignments(), "mapping", null, 1, 1, CGPropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGPropertyAssignment_SlotValue(), theCGModelPackage.getCGValuedElement(), null, "slotValue", null, 1, 1, CGPropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCGPropertyAssignment_ReferredProperty(), theCGModelPackage.getProperty(), "referredProperty", null, 1, 1, CGPropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGPropertyAssignment_InitValue(), theCGModelPackage.getCGValuedElement(), null, "initValue", null, 1, 1, CGPropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgRealizedVariableEClass, CGRealizedVariable.class, "CGRealizedVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGRealizedVariable_Mapping(), this.getCGMapping(), this.getCGMapping_RealizedVariables(), "mapping", null, 1, 1, CGRealizedVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGRealizedVariable_TypedModel(), this.getCGTypedModel(), null, "typedModel", null, 1, 1, CGRealizedVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgTransformationEClass, CGTransformation.class, "CGTransformation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGTransformation_Mappings(), this.getCGMapping(), this.getCGMapping_Transformation(), "mappings", null, 1, -1, CGTransformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCGTransformation_TypedModels(), this.getCGTypedModel(), this.getCGTypedModel_Transformation(), "typedModels", null, 0, -1, CGTransformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cgTypedModelEClass, CGTypedModel.class, "CGTypedModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCGTypedModel_Transformation(), this.getCGTransformation(), this.getCGTransformation_TypedModels(), "transformation", null, 1, 1, CGTypedModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCGTypedModel_ModelIndex(), ecorePackage.getEInt(), "modelIndex", null, 0, 1, CGTypedModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/OCL/Import
+ createImportAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/OCL/Import</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createImportAnnotations() {
+ String source = "http://www.eclipse.org/OCL/Import";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "ecore", "http://www.eclipse.org/emf/2002/Ecore#/"
+ });
+ }
+
+} //QVTiCGmodelPackageImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java
new file mode 100644
index 000000000..8655ae12c
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java
@@ -0,0 +1,120 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * This code is auto-generated
+ * from: model/qvticgmodel.genmodel
+ * by: org.eclipse.ocl.examples.build.acceleo.GenerateVisitor
+ * defined by: org.eclipse.ocl.examples.build.acceleo.generateVisitors.mtl
+ * invoked by: org.eclipse.ocl.examples.build.utilities.*
+ * from: org.eclipse.ocl.examples.build.*.mwe2
+ *
+ * Do not edit it.
+ *
+ * $Id$
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.util;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+
+/**
+ * An AbstractExtendingQVTiCGModelVisitor provides a default implementation for each
+ * visitXxx method that delegates to the visitYyy method of the first
+ * super class, (or transitively its first super class first super class
+ * until a non-interface super-class is found). In the absence of any
+ * suitable first super class, the method delegates to visiting().
+ */
+public abstract class AbstractExtendingQVTiCGModelVisitor<R, C>
+ extends org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractExtendingCGModelVisitor<R, C>
+ implements QVTiCGModelVisitor<R>
+{
+ /**
+ * Initializes me with an initial value for my result.
+ *
+ * @param context my initial result value
+ */
+ protected AbstractExtendingQVTiCGModelVisitor(@NonNull C context) {
+ super(context);
+ }
+
+ @Override
+ public @Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object) {
+ return visitCGPropertyAssignment(object);
+ }
+
+ @Override
+ public @Nullable R visitCGEcoreRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable object) {
+ return visitCGRealizedVariable(object);
+ }
+
+ @Override
+ public @Nullable R visitCGFunction(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunction object) {
+ return visitCGOperation(object);
+ }
+
+ @Override
+ public @Nullable R visitCGFunctionCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp object) {
+ return visitCGOperationCallExp(object);
+ }
+
+ @Override
+ public @Nullable R visitCGFunctionParameter(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public @Nullable R visitCGGuardVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public @Nullable R visitCGMapping(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMapping object) {
+ return visitCGTypedElement(object);
+ }
+
+ @Override
+ public @Nullable R visitCGMappingCall(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public @Nullable R visitCGMappingCallBinding(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public @Nullable R visitCGPredicate(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public @Nullable R visitCGPropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public @Nullable R visitCGRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable object) {
+ return visitCGVariable(object);
+ }
+
+ @Override
+ public @Nullable R visitCGTransformation(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation object) {
+ return visitCGClass(object);
+ }
+
+ @Override
+ public @Nullable R visitCGTypedModel(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel object) {
+ return visitCGNamedElement(object);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java
new file mode 100644
index 000000000..b1ae6a1fb
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java
@@ -0,0 +1,102 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * This code is auto-generated
+ * from: model/qvticgmodel.genmodel
+ * by: org.eclipse.ocl.examples.build.acceleo.GenerateVisitor
+ * defined by: org.eclipse.ocl.examples.build.acceleo.generateVisitors.mtl
+ * invoked by: org.eclipse.ocl.examples.build.utilities.*
+ * from: org.eclipse.ocl.examples.build.*.mwe2
+ *
+ * Do not edit it.
+ *
+ * $Id$
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.util;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+
+/**
+ * An AbstractNullQVTiCGModelVisitor provides a default implementation for each
+ * visitXxx method that returns null.
+ */
+public abstract class AbstractNullQVTiCGModelVisitor<R, C>
+ extends org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractNullCGModelVisitor<R, C> implements QVTiCGModelVisitor<R>
+{
+ /**
+ * Initializes me with an initial value for my result.
+ *
+ * @param context my initial result value
+ */
+ protected AbstractNullQVTiCGModelVisitor(@NonNull C context) {
+ super(context);
+ }
+
+ public @Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object) {
+ return null;
+ }
+
+ public @Nullable R visitCGEcoreRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable object) {
+ return null;
+ }
+
+ public @Nullable R visitCGFunction(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunction object) {
+ return null;
+ }
+
+ public @Nullable R visitCGFunctionCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp object) {
+ return null;
+ }
+
+ public @Nullable R visitCGFunctionParameter(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter object) {
+ return null;
+ }
+
+ public @Nullable R visitCGGuardVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable object) {
+ return null;
+ }
+
+ public @Nullable R visitCGMapping(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMapping object) {
+ return null;
+ }
+
+ public @Nullable R visitCGMappingCall(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall object) {
+ return null;
+ }
+
+ public @Nullable R visitCGMappingCallBinding(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding object) {
+ return null;
+ }
+
+ public @Nullable R visitCGPredicate(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate object) {
+ return null;
+ }
+
+ public @Nullable R visitCGPropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment object) {
+ return null;
+ }
+
+ public @Nullable R visitCGRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable object) {
+ return null;
+ }
+
+ public @Nullable R visitCGTransformation(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation object) {
+ return null;
+ }
+
+ public @Nullable R visitCGTypedModel(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel object) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractQVTiCGModelVisitor.java
new file mode 100644
index 000000000..6718b61ac
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractQVTiCGModelVisitor.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * This code is auto-generated
+ * from: model/qvticgmodel.genmodel
+ * by: org.eclipse.ocl.examples.build.acceleo.GenerateVisitor
+ * defined by: org.eclipse.ocl.examples.build.acceleo.generateVisitors.mtl
+ * invoked by: org.eclipse.ocl.examples.build.utilities.*
+ * from: org.eclipse.ocl.examples.build.*.mwe2
+ *
+ * Do not edit it.
+ *
+ * $Id$
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.util;
+
+import org.eclipse.jdt.annotation.NonNull;
+
+/**
+ */
+public abstract class AbstractQVTiCGModelVisitor<R, C>
+ extends org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractCGModelVisitor<R, C>
+ implements QVTiCGModelVisitor<R>
+{
+ /**
+ * Initializes me with an initial value for my result.
+ *
+ * @param context my initial result value
+ */
+ protected AbstractQVTiCGModelVisitor(@NonNull C context) {
+ super(context);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java
new file mode 100644
index 000000000..87500e31f
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java
@@ -0,0 +1,577 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.util;
+
+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;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGCallExp;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGClass;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable;
+
+import org.eclipse.ocl.examples.domain.elements.Nameable;
+
+import org.eclipse.qvtd.codegen.qvticgmodel.*;
+
+/**
+ * <!-- 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.qvtd.codegen.qvticgmodel.QVTiCGModelPackage
+ * @generated
+ */
+public class QVTiCGModelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static QVTiCGModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QVTiCGModelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = QVTiCGModelPackage.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 QVTiCGModelSwitch<Adapter> modelSwitch =
+ new QVTiCGModelSwitch<Adapter>() {
+ @Override
+ public Adapter caseCGEcorePropertyAssignment(CGEcorePropertyAssignment object) {
+ return createCGEcorePropertyAssignmentAdapter();
+ }
+ @Override
+ public Adapter caseCGEcoreRealizedVariable(CGEcoreRealizedVariable object) {
+ return createCGEcoreRealizedVariableAdapter();
+ }
+ @Override
+ public Adapter caseCGFunction(CGFunction object) {
+ return createCGFunctionAdapter();
+ }
+ @Override
+ public Adapter caseCGFunctionCallExp(CGFunctionCallExp object) {
+ return createCGFunctionCallExpAdapter();
+ }
+ @Override
+ public Adapter caseCGFunctionParameter(CGFunctionParameter object) {
+ return createCGFunctionParameterAdapter();
+ }
+ @Override
+ public Adapter caseCGGuardVariable(CGGuardVariable object) {
+ return createCGGuardVariableAdapter();
+ }
+ @Override
+ public Adapter caseCGMapping(CGMapping object) {
+ return createCGMappingAdapter();
+ }
+ @Override
+ public Adapter caseCGMappingCall(CGMappingCall object) {
+ return createCGMappingCallAdapter();
+ }
+ @Override
+ public Adapter caseCGMappingCallBinding(CGMappingCallBinding object) {
+ return createCGMappingCallBindingAdapter();
+ }
+ @Override
+ public Adapter caseCGPredicate(CGPredicate object) {
+ return createCGPredicateAdapter();
+ }
+ @Override
+ public Adapter caseCGPropertyAssignment(CGPropertyAssignment object) {
+ return createCGPropertyAssignmentAdapter();
+ }
+ @Override
+ public Adapter caseCGRealizedVariable(CGRealizedVariable object) {
+ return createCGRealizedVariableAdapter();
+ }
+ @Override
+ public Adapter caseCGTransformation(CGTransformation object) {
+ return createCGTransformationAdapter();
+ }
+ @Override
+ public Adapter caseCGTypedModel(CGTypedModel object) {
+ return createCGTypedModelAdapter();
+ }
+ @Override
+ public Adapter caseCGElement(CGElement object) {
+ return createCGElementAdapter();
+ }
+ @Override
+ public Adapter caseNameable(Nameable object) {
+ return createNameableAdapter();
+ }
+ @Override
+ public Adapter caseCGNamedElement(CGNamedElement object) {
+ return createCGNamedElementAdapter();
+ }
+ @Override
+ public Adapter caseCGTypedElement(CGTypedElement object) {
+ return createCGTypedElementAdapter();
+ }
+ @Override
+ public Adapter caseCGValuedElement(CGValuedElement object) {
+ return createCGValuedElementAdapter();
+ }
+ @Override
+ public Adapter caseCGVariable(CGVariable object) {
+ return createCGVariableAdapter();
+ }
+ @Override
+ public Adapter caseCGOperation(CGOperation object) {
+ return createCGOperationAdapter();
+ }
+ @Override
+ public Adapter caseCGCallExp(CGCallExp object) {
+ return createCGCallExpAdapter();
+ }
+ @Override
+ public Adapter caseCGOperationCallExp(CGOperationCallExp object) {
+ return createCGOperationCallExpAdapter();
+ }
+ @Override
+ public Adapter caseCGParameter(CGParameter object) {
+ return createCGParameterAdapter();
+ }
+ @Override
+ public Adapter caseCGClass(CGClass object) {
+ return createCGClassAdapter();
+ }
+ @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.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment <em>CG Ecore Property Assignment</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.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment
+ * @generated
+ */
+ public Adapter createCGEcorePropertyAssignmentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable <em>CG Ecore Realized Variable</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.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable
+ * @generated
+ */
+ public Adapter createCGEcoreRealizedVariableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunction <em>CG Function</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.qvtd.codegen.qvticgmodel.CGFunction
+ * @generated
+ */
+ public Adapter createCGFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp <em>CG Function Call Exp</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.qvtd.codegen.qvticgmodel.CGFunctionCallExp
+ * @generated
+ */
+ public Adapter createCGFunctionCallExpAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter <em>CG Function Parameter</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.qvtd.codegen.qvticgmodel.CGFunctionParameter
+ * @generated
+ */
+ public Adapter createCGFunctionParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable <em>CG Guard Variable</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.qvtd.codegen.qvticgmodel.CGGuardVariable
+ * @generated
+ */
+ public Adapter createCGGuardVariableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment <em>CG Property Assignment</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.qvtd.codegen.qvticgmodel.CGPropertyAssignment
+ * @generated
+ */
+ public Adapter createCGPropertyAssignmentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping <em>CG Mapping</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.qvtd.codegen.qvticgmodel.CGMapping
+ * @generated
+ */
+ public Adapter createCGMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation <em>CG Transformation</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.qvtd.codegen.qvticgmodel.CGTransformation
+ * @generated
+ */
+ public Adapter createCGTransformationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel <em>CG Typed 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.qvtd.codegen.qvticgmodel.CGTypedModel
+ * @generated
+ */
+ public Adapter createCGTypedModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall <em>CG Mapping Call</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.qvtd.codegen.qvticgmodel.CGMappingCall
+ * @generated
+ */
+ public Adapter createCGMappingCallAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding <em>CG Mapping Call Binding</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.qvtd.codegen.qvticgmodel.CGMappingCallBinding
+ * @generated
+ */
+ public Adapter createCGMappingCallBindingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate <em>CG Predicate</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.qvtd.codegen.qvticgmodel.CGPredicate
+ * @generated
+ */
+ public Adapter createCGPredicateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable <em>CG Realized Variable</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.qvtd.codegen.qvticgmodel.CGRealizedVariable
+ * @generated
+ */
+ public Adapter createCGRealizedVariableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGElement <em>CG Element</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.ocl.examples.codegen.cgmodel.CGElement
+ * @generated
+ */
+ public Adapter createCGElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.domain.elements.Nameable <em>Nameable</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.ocl.examples.domain.elements.Nameable
+ * @generated
+ */
+ public Adapter createNameableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement <em>CG Named Element</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.ocl.examples.codegen.cgmodel.CGNamedElement
+ * @generated
+ */
+ public Adapter createCGNamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement <em>CG Typed Element</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.ocl.examples.codegen.cgmodel.CGTypedElement
+ * @generated
+ */
+ public Adapter createCGTypedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement <em>CG Valued Element</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.ocl.examples.codegen.cgmodel.CGValuedElement
+ * @generated
+ */
+ public Adapter createCGValuedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGOperation <em>CG Operation</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.ocl.examples.codegen.cgmodel.CGOperation
+ * @generated
+ */
+ public Adapter createCGOperationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGCallExp <em>CG Call Exp</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.ocl.examples.codegen.cgmodel.CGCallExp
+ * @generated
+ */
+ public Adapter createCGCallExpAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp <em>CG Operation Call Exp</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.ocl.examples.codegen.cgmodel.CGOperationCallExp
+ * @generated
+ */
+ public Adapter createCGOperationCallExpAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGParameter <em>CG Parameter</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.ocl.examples.codegen.cgmodel.CGParameter
+ * @generated
+ */
+ public Adapter createCGParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGClass <em>CG Class</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.ocl.examples.codegen.cgmodel.CGClass
+ * @generated
+ */
+ public Adapter createCGClassAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGVariable <em>CG Variable</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.ocl.examples.codegen.cgmodel.CGVariable
+ * @generated
+ */
+ public Adapter createCGVariableAdapter() {
+ 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;
+ }
+
+} //QVTiCGModelAdapterFactory
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java
new file mode 100644
index 000000000..0620f0f78
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java
@@ -0,0 +1,649 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGCallExp;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGClass;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable;
+
+import org.eclipse.ocl.examples.domain.elements.Nameable;
+
+import org.eclipse.qvtd.codegen.qvticgmodel.*;
+
+/**
+ * <!-- 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.qvtd.codegen.qvticgmodel.QVTiCGModelPackage
+ * @generated
+ */
+public class QVTiCGModelSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static QVTiCGModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QVTiCGModelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = QVTiCGModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * 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
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT: {
+ CGEcorePropertyAssignment cgEcorePropertyAssignment = (CGEcorePropertyAssignment)theEObject;
+ T result = caseCGEcorePropertyAssignment(cgEcorePropertyAssignment);
+ if (result == null) result = caseCGPropertyAssignment(cgEcorePropertyAssignment);
+ if (result == null) result = caseCGValuedElement(cgEcorePropertyAssignment);
+ if (result == null) result = caseCGTypedElement(cgEcorePropertyAssignment);
+ if (result == null) result = caseCGNamedElement(cgEcorePropertyAssignment);
+ if (result == null) result = caseCGElement(cgEcorePropertyAssignment);
+ if (result == null) result = caseNameable(cgEcorePropertyAssignment);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE: {
+ CGEcoreRealizedVariable cgEcoreRealizedVariable = (CGEcoreRealizedVariable)theEObject;
+ T result = caseCGEcoreRealizedVariable(cgEcoreRealizedVariable);
+ if (result == null) result = caseCGRealizedVariable(cgEcoreRealizedVariable);
+ if (result == null) result = caseCGVariable(cgEcoreRealizedVariable);
+ if (result == null) result = caseCGValuedElement(cgEcoreRealizedVariable);
+ if (result == null) result = caseCGTypedElement(cgEcoreRealizedVariable);
+ if (result == null) result = caseCGNamedElement(cgEcoreRealizedVariable);
+ if (result == null) result = caseCGElement(cgEcoreRealizedVariable);
+ if (result == null) result = caseNameable(cgEcoreRealizedVariable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_FUNCTION: {
+ CGFunction cgFunction = (CGFunction)theEObject;
+ T result = caseCGFunction(cgFunction);
+ if (result == null) result = caseCGOperation(cgFunction);
+ if (result == null) result = caseCGTypedElement(cgFunction);
+ if (result == null) result = caseCGNamedElement(cgFunction);
+ if (result == null) result = caseCGElement(cgFunction);
+ if (result == null) result = caseNameable(cgFunction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP: {
+ CGFunctionCallExp cgFunctionCallExp = (CGFunctionCallExp)theEObject;
+ T result = caseCGFunctionCallExp(cgFunctionCallExp);
+ if (result == null) result = caseCGOperationCallExp(cgFunctionCallExp);
+ if (result == null) result = caseCGCallExp(cgFunctionCallExp);
+ if (result == null) result = caseCGValuedElement(cgFunctionCallExp);
+ if (result == null) result = caseCGTypedElement(cgFunctionCallExp);
+ if (result == null) result = caseCGNamedElement(cgFunctionCallExp);
+ if (result == null) result = caseCGElement(cgFunctionCallExp);
+ if (result == null) result = caseNameable(cgFunctionCallExp);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER: {
+ CGFunctionParameter cgFunctionParameter = (CGFunctionParameter)theEObject;
+ T result = caseCGFunctionParameter(cgFunctionParameter);
+ if (result == null) result = caseCGParameter(cgFunctionParameter);
+ if (result == null) result = caseCGVariable(cgFunctionParameter);
+ if (result == null) result = caseCGValuedElement(cgFunctionParameter);
+ if (result == null) result = caseCGTypedElement(cgFunctionParameter);
+ if (result == null) result = caseCGNamedElement(cgFunctionParameter);
+ if (result == null) result = caseCGElement(cgFunctionParameter);
+ if (result == null) result = caseNameable(cgFunctionParameter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_GUARD_VARIABLE: {
+ CGGuardVariable cgGuardVariable = (CGGuardVariable)theEObject;
+ T result = caseCGGuardVariable(cgGuardVariable);
+ if (result == null) result = caseCGParameter(cgGuardVariable);
+ if (result == null) result = caseCGVariable(cgGuardVariable);
+ if (result == null) result = caseCGValuedElement(cgGuardVariable);
+ if (result == null) result = caseCGTypedElement(cgGuardVariable);
+ if (result == null) result = caseCGNamedElement(cgGuardVariable);
+ if (result == null) result = caseCGElement(cgGuardVariable);
+ if (result == null) result = caseNameable(cgGuardVariable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_MAPPING: {
+ CGMapping cgMapping = (CGMapping)theEObject;
+ T result = caseCGMapping(cgMapping);
+ if (result == null) result = caseCGTypedElement(cgMapping);
+ if (result == null) result = caseCGNamedElement(cgMapping);
+ if (result == null) result = caseCGElement(cgMapping);
+ if (result == null) result = caseNameable(cgMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_MAPPING_CALL: {
+ CGMappingCall cgMappingCall = (CGMappingCall)theEObject;
+ T result = caseCGMappingCall(cgMappingCall);
+ if (result == null) result = caseCGValuedElement(cgMappingCall);
+ if (result == null) result = caseCGTypedElement(cgMappingCall);
+ if (result == null) result = caseCGNamedElement(cgMappingCall);
+ if (result == null) result = caseCGElement(cgMappingCall);
+ if (result == null) result = caseNameable(cgMappingCall);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING: {
+ CGMappingCallBinding cgMappingCallBinding = (CGMappingCallBinding)theEObject;
+ T result = caseCGMappingCallBinding(cgMappingCallBinding);
+ if (result == null) result = caseCGValuedElement(cgMappingCallBinding);
+ if (result == null) result = caseCGTypedElement(cgMappingCallBinding);
+ if (result == null) result = caseCGNamedElement(cgMappingCallBinding);
+ if (result == null) result = caseCGElement(cgMappingCallBinding);
+ if (result == null) result = caseNameable(cgMappingCallBinding);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_PREDICATE: {
+ CGPredicate cgPredicate = (CGPredicate)theEObject;
+ T result = caseCGPredicate(cgPredicate);
+ if (result == null) result = caseCGValuedElement(cgPredicate);
+ if (result == null) result = caseCGTypedElement(cgPredicate);
+ if (result == null) result = caseCGNamedElement(cgPredicate);
+ if (result == null) result = caseCGElement(cgPredicate);
+ if (result == null) result = caseNameable(cgPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT: {
+ CGPropertyAssignment cgPropertyAssignment = (CGPropertyAssignment)theEObject;
+ T result = caseCGPropertyAssignment(cgPropertyAssignment);
+ if (result == null) result = caseCGValuedElement(cgPropertyAssignment);
+ if (result == null) result = caseCGTypedElement(cgPropertyAssignment);
+ if (result == null) result = caseCGNamedElement(cgPropertyAssignment);
+ if (result == null) result = caseCGElement(cgPropertyAssignment);
+ if (result == null) result = caseNameable(cgPropertyAssignment);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_REALIZED_VARIABLE: {
+ CGRealizedVariable cgRealizedVariable = (CGRealizedVariable)theEObject;
+ T result = caseCGRealizedVariable(cgRealizedVariable);
+ if (result == null) result = caseCGVariable(cgRealizedVariable);
+ if (result == null) result = caseCGValuedElement(cgRealizedVariable);
+ if (result == null) result = caseCGTypedElement(cgRealizedVariable);
+ if (result == null) result = caseCGNamedElement(cgRealizedVariable);
+ if (result == null) result = caseCGElement(cgRealizedVariable);
+ if (result == null) result = caseNameable(cgRealizedVariable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_TRANSFORMATION: {
+ CGTransformation cgTransformation = (CGTransformation)theEObject;
+ T result = caseCGTransformation(cgTransformation);
+ if (result == null) result = caseCGClass(cgTransformation);
+ if (result == null) result = caseCGNamedElement(cgTransformation);
+ if (result == null) result = caseCGElement(cgTransformation);
+ if (result == null) result = caseNameable(cgTransformation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QVTiCGModelPackage.CG_TYPED_MODEL: {
+ CGTypedModel cgTypedModel = (CGTypedModel)theEObject;
+ T result = caseCGTypedModel(cgTypedModel);
+ if (result == null) result = caseCGNamedElement(cgTypedModel);
+ if (result == null) result = caseCGElement(cgTypedModel);
+ if (result == null) result = caseNameable(cgTypedModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Ecore Property Assignment</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>CG Ecore Property Assignment</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGEcorePropertyAssignment(CGEcorePropertyAssignment object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Ecore Realized Variable</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>CG Ecore Realized Variable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGEcoreRealizedVariable(CGEcoreRealizedVariable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Function</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>CG Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGFunction(CGFunction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Function Call Exp</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>CG Function Call Exp</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGFunctionCallExp(CGFunctionCallExp object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Function Parameter</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>CG Function Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGFunctionParameter(CGFunctionParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Guard Variable</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>CG Guard Variable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGGuardVariable(CGGuardVariable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Property Assignment</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>CG Property Assignment</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGPropertyAssignment(CGPropertyAssignment object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Mapping</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>CG Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGMapping(CGMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Transformation</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>CG Transformation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGTransformation(CGTransformation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Typed 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>CG Typed Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGTypedModel(CGTypedModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Mapping Call</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>CG Mapping Call</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGMappingCall(CGMappingCall object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Mapping Call Binding</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>CG Mapping Call Binding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGMappingCallBinding(CGMappingCallBinding object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Predicate</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>CG Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGPredicate(CGPredicate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Realized Variable</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>CG Realized Variable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGRealizedVariable(CGRealizedVariable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Element</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>CG Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGElement(CGElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Nameable</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>Nameable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNameable(Nameable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Named Element</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>CG Named Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGNamedElement(CGNamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Typed Element</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>CG Typed Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGTypedElement(CGTypedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Valued Element</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>CG Valued Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGValuedElement(CGValuedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Operation</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>CG Operation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGOperation(CGOperation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Call Exp</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>CG Call Exp</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGCallExp(CGCallExp object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Operation Call Exp</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>CG Operation Call Exp</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGOperationCallExp(CGOperationCallExp object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Parameter</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>CG Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGParameter(CGParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Class</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>CG Class</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGClass(CGClass object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CG Variable</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>CG Variable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCGVariable(CGVariable 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
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //QVTiCGModelSwitch
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java
new file mode 100644
index 000000000..44f836029
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java
@@ -0,0 +1,49 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * This code is auto-generated
+ * from: model/qvticgmodel.genmodel
+ * by: org.eclipse.ocl.examples.build.acceleo.GenerateVisitor
+ * defined by: org.eclipse.ocl.examples.build.acceleo.generateVisitors.mtl
+ * invoked by: org.eclipse.ocl.examples.build.utilities.*
+ * from: org.eclipse.ocl.examples.build.*.mwe2
+ *
+ * Do not edit it.
+ *
+ * $Id$
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.util;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+
+/**
+ */
+public interface QVTiCGModelVisitor<R> extends org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor<R>
+{
+ @Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object);
+ @Nullable R visitCGEcoreRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable object);
+ @Nullable R visitCGFunction(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunction object);
+ @Nullable R visitCGFunctionCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp object);
+ @Nullable R visitCGFunctionParameter(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter object);
+ @Nullable R visitCGGuardVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable object);
+ @Nullable R visitCGMapping(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMapping object);
+ @Nullable R visitCGMappingCall(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall object);
+ @Nullable R visitCGMappingCallBinding(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding object);
+ @Nullable R visitCGPredicate(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate object);
+ @Nullable R visitCGPropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment object);
+ @Nullable R visitCGRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable object);
+ @Nullable R visitCGTransformation(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation object);
+ @Nullable R visitCGTypedModel(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel object);
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore
new file mode 100644
index 000000000..c6552fe1d
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore
@@ -0,0 +1,104 @@
+<?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="qvticgmodel" nsURI="http://www.eclipse.org/qvti/1.0.0/CG" nsPrefix="qvticg">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The CGModel provides a Code Generation friendly form of the OCL Pivot model, with distinct classes&#xA;such as LibraryPropertyCallExp and EcorePropertyCallExp for distinct purposes. Additional classes&#xA;such as BoxExpr, CatchExpr and CastParameter support rewrite optimizations.&#xA;&lt;p>&#xA;References to the Pivot model are expressed as attributes with datatype values in order to avoid&#xA;confusion as to whether the new or old pivot mosdel is in use while code generating the pivot model."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/OCL/Import">
+ <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="CGEcorePropertyAssignment" eSuperTypes="#//CGPropertyAssignment">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeature" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"
+ resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGEcoreRealizedVariable" eSuperTypes="#//CGRealizedVariable">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifier" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClassifier" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGFunction" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGOperation"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CGFunctionCallExp" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGOperationCallExp">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
+ eType="#//CGFunction" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGFunctionParameter" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGParameter">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
+ eType="#//CGFunction" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGGuardVariable" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGParameter">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/guardVariables"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typedModel" lowerBound="1"
+ eType="#//CGTypedModel" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGMapping" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGTypedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformation" lowerBound="1"
+ eType="#//CGTransformation" resolveProxies="false" eOpposite="#//CGTransformation/mappings"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="guardVariables" ordered="false"
+ upperBound="-1" eType="#//CGGuardVariable" containment="true" resolveProxies="false"
+ eOpposite="#//CGGuardVariable/mapping">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The parameters of this operation, with 'self' as the first parameter."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1"
+ eType="#//CGPredicate" containment="true" resolveProxies="false" eOpposite="#//CGPredicate/mapping"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="realizedVariables" upperBound="-1"
+ eType="#//CGRealizedVariable" containment="true" resolveProxies="false" eOpposite="#//CGRealizedVariable/mapping"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="assignments" upperBound="-1"
+ eType="#//CGPropertyAssignment" containment="true" resolveProxies="false"
+ eOpposite="#//CGPropertyAssignment/mapping"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mappingCalls" upperBound="-1"
+ eType="#//CGMappingCall" containment="true" resolveProxies="false" eOpposite="#//CGMappingCall/mapping"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGMappingCall" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/mappingCalls"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mappingCallBindings" upperBound="-1"
+ eType="#//CGMappingCallBinding" containment="true" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGMappingCallBinding" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="valueOrValues" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement"
+ containment="true" resolveProxies="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loop" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGPredicate" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/predicates"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="conditionExpression" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement"
+ containment="true" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGPropertyAssignment" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/assignments"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="slotValue" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement"
+ containment="true" resolveProxies="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referredProperty" lowerBound="1"
+ eType="ecore:EDataType ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initValue" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement"
+ containment="true" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGRealizedVariable" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGVariable">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/realizedVariables"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typedModel" lowerBound="1"
+ eType="#//CGTypedModel" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGTransformation" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGClass">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mappings" lowerBound="1"
+ upperBound="-1" eType="#//CGMapping" containment="true" resolveProxies="false"
+ eOpposite="#//CGMapping/transformation"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typedModels" upperBound="-1"
+ eType="#//CGTypedModel" containment="true" resolveProxies="false" eOpposite="#//CGTypedModel/transformation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGTypedModel" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGNamedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformation" lowerBound="1"
+ eType="#//CGTransformation" resolveProxies="false" eOpposite="#//CGTransformation/typedModels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel
new file mode 100644
index 000000000..923340de5
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel
@@ -0,0 +1,36 @@
+<?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" copyrightText="&lt;copyright>&#xD;&#xA;&#xD;&#xA;Copyright (c) 2013 E.D.Willink and others.&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA; E.D.Willink - Initial API and implementation&#xD;&#xA;&#xD;&#xA;&lt;/copyright>"
+ modelDirectory="/org.eclipse.qvtd.codegen/emf-gen" editDirectory="/org.eclipse.qvtd.codegen.edit/emf-gen"
+ editorDirectory="/org.eclipse.qvtd.codegen.editor/emf-gen" modelPluginID="org.eclipse.qvtd.codegen"
+ modelName="QVTiCGmodel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ suppressEMFTypes="true" testsDirectory="/org.eclipse.qvtd.codegen.tests/emf-gen"
+ booleanFlagsReservedBits="8" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false" usedGenPackages="../../org.eclipse.ocl.examples.codegen/model/cgmodel.genmodel#//cgmodel"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>qvticgmodel.ecore</foreignModel>
+ <genPackages prefix="QVTiCGModel" basePackage="org.eclipse.qvtd.codegen" disposableProviderFactory="true"
+ ecorePackage="qvticgmodel.ecore#/">
+ <genClasses ecoreClass="qvticgmodel.ecore#//CGPropertyAssignment">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGPropertyAssignment/initValue"/>
+ </genClasses>
+ <genClasses ecoreClass="qvticgmodel.ecore#//CGMapping">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMapping/predicates"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMapping/realizedVariables"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMapping/assignments"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMapping/mappingCalls"/>
+ </genClasses>
+ <genClasses ecoreClass="qvticgmodel.ecore#//CGTransformation"/>
+ <genClasses ecoreClass="qvticgmodel.ecore#//CGMappingCall">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMappingCall/mappingCallBindings"/>
+ </genClasses>
+ <genClasses ecoreClass="qvticgmodel.ecore#//CGMappingCallBinding">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMappingCallBinding/valueOrValues"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute qvticgmodel.ecore#//CGMappingCallBinding/loop"/>
+ </genClasses>
+ <genClasses ecoreClass="qvticgmodel.ecore#//CGPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGPredicate/conditionExpression"/>
+ </genClasses>
+ <genClasses ecoreClass="qvticgmodel.ecore#//CGRealizedVariable"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.qvtd.codegen/plugin.properties b/plugins/org.eclipse.qvtd.codegen/plugin.properties
new file mode 100644
index 000000000..0e39d115d
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/plugin.properties
@@ -0,0 +1,15 @@
+# <copyright>
+#
+# Copyright (c) 2013 E.D.Willink and others.
+# 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:
+# E.D.Willink - Initial API and implementation
+#
+# </copyright>
+
+pluginName = QVTimperative Code Generator (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.qvtd.codegen/plugin.xml b/plugins/org.eclipse.qvtd.codegen/plugin.xml
new file mode 100644
index 000000000..1a9a5195c
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/plugin.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+
+ Copyright (c) 2013 E.D.Willink and others.
+ 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:
+ E.D.Willink - Initial API and implementation
+
+ </copyright>
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated qvticgmodel -->
+ <package
+ uri="http://www.eclipse.org/qvti/1.0.0/CG"
+ class="org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage"
+ genModel="model/qvticgmodel.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalysisVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalysisVisitor.java
new file mode 100644
index 000000000..eafa8784f
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalysisVisitor.java
@@ -0,0 +1,131 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.analyzer.AnalysisVisitor;
+import org.eclipse.ocl.examples.codegen.generator.GlobalContext;
+import org.eclipse.ocl.examples.codegen.generator.LocalContext;
+import org.eclipse.ocl.examples.pivot.OperationCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+import org.eclipse.qvtd.pivot.qvtbase.Function;
+
+public class QVTiAnalysisVisitor extends AnalysisVisitor implements QVTiCGModelVisitor<Object>
+{
+ public QVTiAnalysisVisitor(@NonNull QVTiAnalyzer analyzer) {
+ super(analyzer);
+ }
+
+ @Override
+ public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
+ return visitCGPropertyAssignment(object);
+ }
+
+ @Override
+ public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) {
+ return visitCGRealizedVariable(object);
+ }
+
+ @Override
+ public Object visitCGFunction(@NonNull CGFunction object) {
+ return visitCGOperation(object);
+ }
+
+ @Override
+ public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp cgFunctionCallExp) {
+ Function pFunction = (Function) ((OperationCallExp)cgFunctionCallExp.getPivot()).getReferredOperation();
+ if (pFunction != null) {
+ CGFunction cgFunction = ((QVTiAnalyzer)context).getFunction(pFunction);
+ cgFunctionCallExp.setFunction(cgFunction);
+ }
+ return visitCGOperationCallExp(cgFunctionCallExp);
+ }
+
+ @Override
+ public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Object visitCGGuardVariable(@NonNull CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Object visitCGMapping(@NonNull CGMapping object) {
+ return visitCGTypedElement(object);
+ }
+
+ @Override
+ public Object visitCGMappingCall(@NonNull CGMappingCall object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding cgMappingCallBinding) {
+ visitCGValuedElement(cgMappingCallBinding);
+ GlobalContext globalContext = context.getCodeGenerator().getGlobalContext();
+ LocalContext localContext = globalContext.getLocalContext(cgMappingCallBinding);
+ if (localContext != null) {
+ cgMappingCallBinding.setValueName(localContext.getNameManagerContext().getSymbolName(cgMappingCallBinding, cgMappingCallBinding.getName()));
+ }
+ return null;
+ }
+
+ @Override
+ public Object visitCGPredicate(@NonNull CGPredicate object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGRealizedVariable(@NonNull CGRealizedVariable cgRealizedVariable) {
+ visitCGVariable(cgRealizedVariable);
+ GlobalContext globalContext = context.getCodeGenerator().getGlobalContext();
+ LocalContext localContext = globalContext.getLocalContext(cgRealizedVariable);
+ if (localContext != null) {
+ localContext.setNames(cgRealizedVariable, cgRealizedVariable);
+ }
+ return null;
+ }
+
+ @Override
+ public Object visitCGTransformation(@NonNull CGTransformation object) {
+ return visitCGClass(object);
+ }
+
+ @Override
+ public Object visitCGTypedModel(@NonNull CGTypedModel object) {
+ return visitCGNamedElement(object);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalyzer.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalyzer.java
new file mode 100644
index 000000000..07a9e8f0f
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalyzer.java
@@ -0,0 +1,63 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.ocl.examples.codegen.analyzer.CodeGenAnalyzer;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.pivot.qvtbase.Function;
+import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
+import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
+
+public class QVTiAnalyzer extends CodeGenAnalyzer
+{
+ private final @NonNull Map<Function, CGFunction> cgFunctions = new HashMap<Function, CGFunction>();
+ private final @NonNull Map<Mapping, CGMapping> cgMappings = new HashMap<Mapping, CGMapping>();
+ private final @NonNull Map<TypedModel, CGTypedModel> cgTypedModels = new HashMap<TypedModel, CGTypedModel>();
+
+ public QVTiAnalyzer(@NonNull QVTiCodeGenerator codeGenerator) {
+ super(codeGenerator);
+ }
+
+ public void addFunction(@NonNull Function pFunction, @NonNull CGFunction cgFunction) {
+ cgFunctions.put(pFunction, cgFunction);
+ }
+
+ public void addMapping(@NonNull Mapping pMapping, @NonNull CGMapping cgMapping) {
+ cgMappings.put(pMapping, cgMapping);
+ }
+
+ public void addTypedModel(@NonNull TypedModel pTypedModel, @NonNull CGTypedModel cgTypedModel) {
+ cgTypedModels.put(pTypedModel, cgTypedModel);
+ }
+
+ public @Nullable CGFunction getFunction(@NonNull Function pFunction) {
+ return cgFunctions.get(pFunction);
+ }
+
+ public @Nullable CGMapping getMapping(@NonNull Mapping pMapping) {
+ return cgMappings.get(pMapping);
+ }
+
+ public @Nullable CGTypedModel getTypedModel(@NonNull TypedModel pTypedModel) {
+ return cgTypedModels.get(pTypedModel);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiBoxingAnalyzer.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiBoxingAnalyzer.java
new file mode 100644
index 000000000..b16e51859
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiBoxingAnalyzer.java
@@ -0,0 +1,118 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.analyzer.BoxingAnalyzer;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+public class QVTiBoxingAnalyzer extends BoxingAnalyzer implements QVTiCGModelVisitor<Object>
+{
+
+ public QVTiBoxingAnalyzer(@NonNull QVTiAnalyzer analyzer) {
+ super(analyzer);
+ }
+
+ @Override
+ public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
+ return visitCGPropertyAssignment(object);
+ }
+
+ @Override
+ public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) {
+ return visitCGRealizedVariable(object);
+ }
+
+ @Override
+ public Object visitCGFunction(@NonNull CGFunction cgFunction) {
+ visitCGOperation(cgFunction);
+ rewriteAsUnboxed(cgFunction.getBody());
+ return null;
+ }
+
+ @Override
+ public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp cgFunctionCallExp) {
+ visitCGOperationCallExp(cgFunctionCallExp);
+ for (CGValuedElement cgArgument : cgFunctionCallExp.getArguments()) {
+ rewriteAsUnboxed(cgArgument);
+ }
+ return null;
+ }
+
+ @Override
+ public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Object visitCGGuardVariable(@NonNull CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Object visitCGMapping(@NonNull CGMapping cgMapping) {
+ return visitCGTypedElement(cgMapping);
+ }
+
+ @Override
+ public Object visitCGMappingCall(@NonNull CGMappingCall cgMappingCall) {
+ return visitCGValuedElement(cgMappingCall);
+ }
+
+ @Override
+ public Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding cgMappingCallBinding) {
+ return visitCGValuedElement(cgMappingCallBinding);
+ }
+
+ @Override
+ public Object visitCGPredicate(@NonNull CGPredicate cgPredicate) {
+ return visitCGValuedElement(cgPredicate);
+ }
+
+ @Override
+ public Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment cgPropertyAssignment) {
+ return visitCGValuedElement(cgPropertyAssignment);
+ }
+
+ @Override
+ public Object visitCGRealizedVariable(@NonNull CGRealizedVariable cgRealizedVariable) {
+ return visitCGVariable(cgRealizedVariable);
+ }
+
+ @Override
+ public Object visitCGTransformation(@NonNull CGTransformation cgTransformation) {
+ return visitCGClass(cgTransformation);
+ }
+
+ @Override
+ public Object visitCGTypedModel(@NonNull CGTypedModel object) {
+ return visitCGNamedElement(object);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaPreVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaPreVisitor.java
new file mode 100644
index 000000000..472fe7761
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaPreVisitor.java
@@ -0,0 +1,128 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.ocl.examples.codegen.java.CG2JavaPreVisitor;
+import org.eclipse.ocl.examples.pivot.Property;
+import org.eclipse.ocl.examples.pivot.Type;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
+
+public class QVTiCG2JavaPreVisitor extends CG2JavaPreVisitor implements QVTiCGModelVisitor<Object>
+{
+ public QVTiCG2JavaPreVisitor(@NonNull QVTiGlobalContext javaContext) {
+ super(javaContext);
+ }
+
+ @Override
+ public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
+ return visitCGPropertyAssignment(object);
+ }
+
+ @Override
+ public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) {
+ return visitCGRealizedVariable(object);
+ }
+
+ @Override
+ public Object visitCGFunction(@NonNull CGFunction object) {
+ return visitCGOperation(object);
+ }
+
+ @Override
+ public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) {
+ return visitCGOperationCallExp(object);
+ }
+
+ @Override
+ public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public @Nullable Object visitCGMapping(@NonNull CGMapping cgMapping) {
+ localContext = context.getLocalContext(cgMapping);
+ try {
+ return visitCGTypedElement(cgMapping);
+ }
+ finally {
+ localContext = null;
+ }
+ }
+
+ @Override
+ public Object visitCGGuardVariable(@NonNull CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Object visitCGMappingCall(@NonNull CGMappingCall object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGPredicate(@NonNull CGPredicate object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment cgPropertyAssignment) {
+ Property pReferredProperty = cgPropertyAssignment.getReferredProperty();
+ if (pReferredProperty != null) {
+ localContext.getExecutorProperty(pReferredProperty);
+ }
+ return visitCGValuedElement(cgPropertyAssignment);
+ }
+
+ @Override
+ public Object visitCGRealizedVariable(@NonNull CGRealizedVariable cgRealizedVariable) {
+ Type pType = ((RealizedVariable)cgRealizedVariable.getPivot()).getType();
+ if (pType != null) {
+ localContext.getExecutorType(pType);
+ }
+ return visitCGVariable(cgRealizedVariable);
+ }
+
+ @Override
+ public Object visitCGTransformation(@NonNull CGTransformation object) {
+ return visitCGClass(object);
+ }
+
+ @Override
+ public Object visitCGTypedModel(@NonNull CGTypedModel object) {
+ return visitCGNamedElement(object);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaVisitor.java
new file mode 100644
index 000000000..6f48b172d
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaVisitor.java
@@ -0,0 +1,599 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.ocl.examples.codegen.analyzer.DependencyVisitor;
+import org.eclipse.ocl.examples.codegen.analyzer.NameManager;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGExecutorProperty;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGModelFactory;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGPackage;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGTypeId;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.java.CG2JavaPreVisitor;
+import org.eclipse.ocl.examples.codegen.java.CG2JavaVisitor;
+import org.eclipse.ocl.examples.codegen.java.JavaDependencyVisitor;
+import org.eclipse.ocl.examples.codegen.java.JavaLocalContext;
+import org.eclipse.ocl.examples.codegen.java.JavaTypeDescriptor;
+import org.eclipse.ocl.examples.domain.evaluation.AbstractTransformation;
+import org.eclipse.ocl.examples.domain.evaluation.DomainEvaluator;
+import org.eclipse.ocl.examples.domain.utilities.DomainUtil;
+import org.eclipse.ocl.examples.domain.values.util.ValuesUtil;
+import org.eclipse.ocl.examples.pivot.Operation;
+import org.eclipse.ocl.examples.pivot.Parameter;
+import org.eclipse.ocl.examples.pivot.Property;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+import org.eclipse.qvtd.pivot.qvtbase.Transformation;
+import org.eclipse.qvtd.pivot.qvtcorebase.Area;
+import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
+import org.eclipse.qvtd.pivot.qvtcorebase.utilities.QVTcoreBaseUtil;
+import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
+import org.eclipse.qvtd.pivot.qvtimperative.MappingCall;
+
+/**
+ * A CG2JavaClassVisitor supports generation of an OCL expression as the LibraryOperation INSTANCE of a Java Class.
+ */
+public class QVTiCG2JavaVisitor extends CG2JavaVisitor implements QVTiCGModelVisitor<Object>
+{
+ protected final @NonNull QVTiAnalyzer analyzer;
+ protected final @NonNull Transformation transformation;
+ protected final @NonNull CGPackage cgPackage;
+ protected final @NonNull CGTransformation cgTransformation;
+
+ public QVTiCG2JavaVisitor(@NonNull QVTiCodeGenerator codeGenerator,
+ @NonNull Transformation transformation, String packageName, String className) {
+ super(codeGenerator);
+ this.analyzer = codeGenerator.getAnalyzer();
+ this.transformation = transformation;
+ this.cgPackage = CGModelFactory.eINSTANCE.createCGPackage();
+ cgPackage.setName(packageName);
+ QVTiPivot2CGVisitor pivot2CGVisitor = new QVTiPivot2CGVisitor(analyzer, getGlobalContext());
+ this.cgTransformation = (CGTransformation) DomainUtil.nonNullState(transformation.accept(pivot2CGVisitor));
+ cgPackage.getClasses().add(cgTransformation);
+ Resource resource = new XMIResourceImpl(URI.createURI("cg.xmi"));
+ resource.getContents().add(cgPackage);
+ analyzer.analyze(cgPackage);
+ }
+
+ protected void appendModelIndex(@Nullable CGTypedModel cgTypedModel) {
+ if (cgTypedModel == null) {
+ js.append("-1/*null*/");
+ }
+ else {
+ js.append(cgTypedModel.getModelIndex() + "/*" + cgTypedModel.getName() + "*/");
+ }
+ }
+
+ protected void doAddRealization(@NonNull CGRealizedVariable cgRealizedVariable) {
+ RealizedVariable pRealizedVariable = (RealizedVariable)cgRealizedVariable.getPivot();
+ Area pArea = QVTcoreBaseUtil.getContainingArea(pRealizedVariable);
+ if (pArea != null) {
+ BottomPattern pBottomPattern = pArea.getBottomPattern();
+ if (pBottomPattern != null) {
+ for (Assignment pAssignment : pBottomPattern.getAssignment()) {
+ if (pAssignment instanceof PropertyAssignment) {
+ Property pProperty = ((PropertyAssignment)pAssignment).getTargetProperty();
+ if (pProperty != null) {
+ Property pOppositeProperty = pProperty.getOpposite();
+ if ((pOppositeProperty != null) && pOppositeProperty.isComposite()) {
+// FIXME must check for null asssignment and correct target return;
+ }
+ }
+ }
+ }
+ }
+ }
+ CGTypedModel cgTypedModel = cgRealizedVariable.getTypedModel();
+ //
+ js.append("modelObjects[");
+ appendModelIndex(cgTypedModel);
+ js.append("].add(");
+ js.appendValueName(cgRealizedVariable);
+ js.append(");\n");
+ }
+
+ protected void doConstructor(@NonNull CGTransformation cgTransformation) {
+ String evaluatorName = ((QVTiGlobalContext)globalContext).getEvaluatorParameter().getName();
+ String className = cgTransformation.getName();
+ //
+ js.append("public " + className + "(final ");
+ js.appendIsRequired(true);
+ js.append(" ");
+ js.appendClassReference(DomainEvaluator.class);
+ js.append(" " + evaluatorName + ") {\n");
+ js.pushIndentation(null);
+ js.append("super(" + evaluatorName + ", new String[] {");
+ boolean isFirst = true;
+ for (CGTypedModel cgTypedModel : cgTransformation.getTypedModels()) {
+ if (!isFirst) {
+ js.append(", ");
+ }
+ String name = cgTypedModel.getName();
+ js.appendString(name != null ? name : "");
+ isFirst = false;
+ }
+ js.append("});\n");
+ js.popIndentation();
+ js.append("}\n");
+ }
+
+ protected void doGlobals(@NonNull CGTransformation cgTransformation) {
+ DependencyVisitor dependencyVisitor = context.createDependencyVisitor();
+ dependencyVisitor.visitAll(globalContext.getGlobals());
+ dependencyVisitor.visitAll(cgTransformation.getOperations());
+ Iterable<CGValuedElement> sortedDependencies = dependencyVisitor.getSortedDependencies();
+ generateGlobals(sortedDependencies);
+ }
+
+/* public boolean run() {
+ for (EObject eObject : getObjectsByType(0, HSVTreePackage.Literals.HSV_NODE)) {
+ HSV2MiddleRoot((HSVNode) eObject);
+ }
+ return true;
+ } */
+
+ @SuppressWarnings("null")
+ protected void doRun(@NonNull CGTransformation cgTransformation) {
+ CGMapping cgRootMapping = cgTransformation.getMappings().get(0);
+ List<CGGuardVariable> cgGuardVariables = cgRootMapping.getGuardVariables();
+ NameManager nameManager = globalContext.getNameManager();
+ Map<CGParameter, String> listNames = new HashMap<CGParameter, String>();
+ for (CGGuardVariable cgGuardVariable : cgGuardVariables) {
+ String nameHint = "LIST_" + cgGuardVariable.getValueName();
+ String listName = nameManager.getGlobalSymbolName(null, nameHint);
+ listNames.put(cgGuardVariable, listName);
+ }
+ //
+ js.append("public boolean run() {\n");
+ js.pushIndentation(null);
+ for (@NonNull CGGuardVariable cgGuardVariable : cgGuardVariables) {
+ JavaTypeDescriptor typeDescriptor = context.getJavaTypeDescriptor(cgGuardVariable);
+ EClassifier eClassifier = DomainUtil.nonNullState(typeDescriptor.getEClassifier());
+ String qualifiedPackageInterfaceName = genModelHelper.getQualifiedPackageInterfaceName(eClassifier.getEPackage());
+ String classifierLiteralName = genModelHelper.getLiteralName(eClassifier);
+ js.appendClassReference(List.class, typeDescriptor);
+ js.append(" ");
+ js.append(listNames.get(cgGuardVariable));
+ js.append(" = getObjectsByType(");
+ js.appendClassReference(typeDescriptor);
+ js.append(".class, ");
+ appendModelIndex(cgGuardVariable.getTypedModel());
+ js.append(", ");
+ js.appendClassReference(qualifiedPackageInterfaceName);
+ js.append(".Literals." + classifierLiteralName);
+ js.append(");\n");
+ }
+ for (CGGuardVariable cgGuardVariable : cgGuardVariables) {
+ js.append("for (");
+ js.appendClassReference(cgGuardVariable);
+ js.append(" ");
+ js.appendValueName(cgGuardVariable);
+ js.append(" : ");
+ js.append(listNames.get(cgGuardVariable));
+ js.append(") {\n");
+ js.pushIndentation(null);
+ }
+ js.append(cgRootMapping.getName());
+ js.append("(");
+ boolean isFirst = true;
+ for (CGGuardVariable cgGuardVariable : cgGuardVariables) {
+ if (!isFirst) {
+ js.append(", ");
+ }
+ js.appendValueName(cgGuardVariable);
+ isFirst = false;
+ }
+ js.append(");\n");
+ for (@SuppressWarnings("unused") CGGuardVariable cgGuardVariable : cgGuardVariables) {
+ js.popIndentation();
+ js.append("}\n");
+ }
+ js.append("return true;\n");
+ js.popIndentation();
+ js.append("}\n");
+ }
+
+ protected CGPackage generate() {
+ CG2JavaPreVisitor cg2PreVisitor = context.createCG2JavaPreVisitor();
+ cgPackage.accept(cg2PreVisitor);
+ safeVisit(cgPackage);
+ return cgPackage;
+ }
+
+ protected @NonNull QVTiGlobalContext getGlobalContext() {
+ return (QVTiGlobalContext) globalContext;
+ }
+
+ protected @NonNull QVTiLocalContext getLocalContext() {
+ return (QVTiLocalContext) localContext;
+ }
+
+ @Override
+ @Nullable
+ public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment cgPropertyAssignment) {
+// Property pivotProperty = cgPropertyCallExp.getReferredProperty();
+// CGTypeId cgTypeId = analyzer.getTypeId(pivotProperty.getOwningType().getTypeId());
+// JavaTypeDescriptor requiredTypeDescriptor = context.getJavaTypeDescriptor(cgTypeId, false);
+ EStructuralFeature eStructuralFeature = cgPropertyAssignment.getEStructuralFeature();
+ CGValuedElement cgSlot = getExpression(cgPropertyAssignment.getSlotValue());
+ String setAccessor = genModelHelper.getSetAccessor(eStructuralFeature);
+ CGValuedElement cgInit = getExpression(cgPropertyAssignment.getInitValue());
+// Class<?> requiredJavaClass = requiredTypeDescriptor.getJavaClass();
+// Method leastDerivedMethod = requiredJavaClass != null ? getLeastDerivedMethod(requiredJavaClass, getAccessor) : null;
+// Class<?> unboxedSourceClass = leastDerivedMethod != null ? leastDerivedMethod.getDeclaringClass() : requiredJavaClass;
+ //
+ js.appendLocalStatements(cgSlot);
+ js.appendLocalStatements(cgInit);
+ //
+ js.appendValueName(cgSlot);
+ js.append(".");
+ js.append(setAccessor);
+ js.append("(");
+ js.appendValueName(cgInit);
+ js.append(");\n");
+ return null;
+ }
+
+ @Override
+ @Nullable
+ public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable cgRealizedVariable) {
+ EClassifier eClassifier = cgRealizedVariable.getEClassifier();
+ EPackage ePackage = eClassifier.getEPackage();
+ String javaClass = genModelHelper.getQualifiedFactoryInterfaceName(ePackage);
+ //
+ js.appendDeclaration(cgRealizedVariable);
+ js.append(" = ");
+ js.appendClassReference(javaClass);
+// js.appendReferenceTo(localContext.getExecutorType(cgRealizedVariable.getPivotTypeId()));
+ js.append(".eINSTANCE.create");
+ js.append(eClassifier.getName()); // FIXME accessor
+ js.append("();\n");
+ //
+ doAddRealization(cgRealizedVariable);
+ return null;
+ }
+
+ @Override
+ @Nullable
+ public Object visitCGFunction(@NonNull CGFunction cgFunction) {
+ JavaLocalContext localContext2 = globalContext.getLocalContext(cgFunction);
+ if (localContext2 != null) {
+ localContext = localContext2;
+ try {
+ List<CGParameter> cgParameters = cgFunction.getParameters();
+ CGValuedElement body = getExpression(cgFunction.getBody());
+ //
+ js.append("protected ");
+ js.appendIsRequired(cgFunction.isRequired());
+ // js.append(" ");
+ // js.appendIsCaught(!cgOperation.isInvalid(), cgOperation.isInvalid());
+ js.append(" ");
+ CGTypeId cgTypeId = cgFunction.getTypeId();
+ JavaTypeDescriptor javaTypeDescriptor = context.getJavaTypeDescriptor(cgTypeId, false);
+ js.appendClassReference(javaTypeDescriptor);
+ js.append(" ");
+ js.append(cgFunction.getName());
+ js.append("(");
+ boolean isFirst = true;
+ for (@SuppressWarnings("null")@NonNull CGParameter cgParameter : cgParameters) {
+ if (!isFirst) {
+ js.append(", ");
+ }
+ js.appendDeclaration(cgParameter);
+ isFirst = false;
+ }
+ js.append(") {\n");
+ js.pushIndentation(null);
+ js.appendCastParameters(localContext2, cgParameters);
+ JavaDependencyVisitor dependencyVisitor = new JavaDependencyVisitor(localContext2);
+ dependencyVisitor.visit(body);
+ dependencyVisitor.visitAll(localContext2.getLocalVariables());
+ Iterable<CGValuedElement> sortedDependencies = dependencyVisitor.getSortedDependencies();
+ for (CGValuedElement cgElement : sortedDependencies) {
+ if (!cgElement.isInlineable() && cgElement.isConstant() && !cgElement.isGlobal()) {
+ cgElement.accept(this);
+ }
+ }
+ // FIXME merge locals into AST as LetExps.
+ if (cgFunction.getBody() != null) {
+ js.appendLocalStatements(body);
+ if (body.isInvalid()) {
+ js.append("throw ");
+ }
+ else {
+ js.append("return ");
+ }
+ js.appendValueName(body);
+ js.append(";\n");
+ }
+ else { // FIXME Fudge for body-less functions
+ js.append("return null;\n");
+ }
+ js.popIndentation();
+ js.append("}\n");
+ }
+ finally {
+ localContext = null;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ @Nullable
+ public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp cgFunctionCallExp) {
+ Operation pOperation = cgFunctionCallExp.getReferredOperation();
+ List<CGValuedElement> cgArguments = cgFunctionCallExp.getArguments();
+ List<Parameter> pParameters = pOperation.getOwnedParameter();
+ //
+ for (@SuppressWarnings("null")@NonNull CGValuedElement cgArgument : cgArguments) {
+ CGValuedElement argument = getExpression(cgArgument);
+ js.appendLocalStatements(argument);
+ }
+ //
+ js.appendDeclaration(cgFunctionCallExp);
+ js.append(" = ");
+ js.append(cgFunctionCallExp.getFunction().getName());
+ js.append("(");
+ int iMax = Math.min(pParameters.size(), cgArguments.size());
+ for (int i = 0; i < iMax; i++) {
+ if (i > 0) {
+ js.append(", ");
+ }
+ CGValuedElement cgArgument = cgArguments.get(i);
+ CGValuedElement argument = getExpression(cgArgument);
+ Parameter pParameter = pParameters.get(i);
+ CGTypeId cgParameterTypeId = analyzer.getTypeId(pParameter.getTypeId());
+ JavaTypeDescriptor parameterTypeDescriptor = context.getJavaTypeDescriptor(cgParameterTypeId, false);
+ js.appendReferenceTo(parameterTypeDescriptor, argument);
+ }
+ js.append(");\n");
+ return null;
+ }
+
+ @Override
+ @Nullable
+ public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ @Nullable
+ public Object visitCGGuardVariable(@NonNull CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public @Nullable Object visitCGMapping(@NonNull CGMapping cgMapping) {
+ JavaLocalContext localContext2 = globalContext.getLocalContext(cgMapping);
+ if (localContext2 != null) {
+ localContext = localContext2;
+ try {
+ List<CGGuardVariable> cgGuardVariables = cgMapping.getGuardVariables();
+ //
+ js.appendCommentWithOCL(null, cgMapping.getPivot());
+ js.append("protected boolean " + cgMapping.getName() + "(");
+ boolean isFirst = true;
+ for (@SuppressWarnings("null")@NonNull CGGuardVariable cgGuardVariable : cgGuardVariables) {
+ if (!isFirst) {
+ js.append(", ");
+ }
+ js.appendDeclaration(cgGuardVariable);
+ isFirst = false;
+ }
+ js.append(") {\n");
+ js.pushIndentation(null);
+// js.appendCastParameters(localContext2, cgGuardVariables);
+ DependencyVisitor dependencyVisitor = context.createDependencyVisitor(localContext2);
+ dependencyVisitor.visitAll(localContext2.getLocalVariables());
+ Iterable<CGValuedElement> sortedDependencies = dependencyVisitor.getSortedDependencies();
+ for (CGValuedElement cgElement : sortedDependencies) {
+ if (!cgElement.isInlineable() && cgElement.isConstant() && !cgElement.isGlobal()) {
+ cgElement.accept(this);
+ }
+ }
+ // FIXME merge locals into AST as LetExps.
+ js.append("// guards\n");
+ for (CGPredicate cgPredicate : cgMapping.getPredicates()) {
+ cgPredicate.accept(this);
+ }
+ js.append("// creations\n");
+ for (CGRealizedVariable cgRealizedVariable : cgMapping.getRealizedVariables()) {
+ cgRealizedVariable.accept(this);
+ }
+ js.append("// assignments\n");
+ for (CGPropertyAssignment cgAssignment : cgMapping.getAssignments()) {
+ cgAssignment.accept(this);
+ }
+ js.append("// mapping calls\n");
+ for (CGMappingCall cgMappingCall : cgMapping.getMappingCalls()) {
+ cgMappingCall.accept(this);
+ }
+ js.append("return true;\n");
+ js.popIndentation();
+ js.append("}\n");
+ }
+ finally {
+ localContext = null;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public @Nullable Object visitCGMappingCall(@NonNull CGMappingCall cgMappingCall) {
+ MappingCall pMappingCall = (MappingCall) cgMappingCall.getPivot();
+ Mapping pReferredMapping = pMappingCall.getReferredMapping();
+ CGMapping cgReferredMapping = analyzer.getMapping(pReferredMapping);
+ if (cgReferredMapping == null) {
+ return null;
+ }
+ List<CGMappingCallBinding> cgMappingCallBindings = cgMappingCall.getMappingCallBindings();
+ for (CGMappingCallBinding cgMappingCallBinding : cgMappingCallBindings) {
+ js.appendLocalStatements(cgMappingCallBinding.getValueOrValues());
+ }
+ for (CGMappingCallBinding cgMappingCallBinding : cgMappingCallBindings) {
+ if (cgMappingCallBinding.isLoop()) {
+ js.append("for (");
+ js.appendClassReference(cgMappingCallBinding);
+ js.append(" ");
+ js.appendValueName(cgMappingCallBinding);
+ js.append(" : ");
+ js.appendValueName(cgMappingCallBinding.getValueOrValues());
+ js.append(") {\n");
+ js.pushIndentation(null);
+ }
+ }
+ js.append(cgReferredMapping.getName() + "(");
+ boolean isFirst = true;
+ for (CGMappingCallBinding cgMappingCallBinding : cgMappingCallBindings) {
+ if (!isFirst) {
+ js.append(", ");
+ }
+ if (cgMappingCallBinding.isLoop()) {
+ js.appendValueName(cgMappingCallBinding);
+ }
+ else {
+ js.appendValueName(cgMappingCallBinding.getValueOrValues());
+ }
+ isFirst = false;
+ }
+ js.append(");\n");
+ for (CGMappingCallBinding cgMappingCallBinding : cgMappingCallBindings) {
+ if (cgMappingCallBinding.isLoop()) {
+ js.popIndentation();
+ js.append("}\n");
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public @Nullable Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) {
+ return null;
+ }
+
+ @Override
+ public @Nullable Object visitCGPredicate(@NonNull CGPredicate cgPredicate) {
+ CGValuedElement cgConditionExpression = cgPredicate.getConditionExpression();
+ js.appendLocalStatements(cgConditionExpression);
+ js.append("if (");
+ js.appendValueName(cgConditionExpression);
+ js.append(" != ");
+ js.appendClassReference(ValuesUtil.class);
+ js.append(".TRUE_VALUE) {\n");
+ js.pushIndentation(null);
+ js.append("return false;\n");
+ js.popIndentation();
+ js.append("}\n");
+ return null;
+ }
+
+ @Override
+ public @Nullable Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment cgPropertyAssignment) {
+ CGExecutorProperty cgExecutorProperty = localContext.getExecutorProperty(cgPropertyAssignment.getReferredProperty());
+ js.appendLocalStatements(cgPropertyAssignment.getInitValue());
+ js.appendValueName(cgExecutorProperty);
+ js.append(".initValue(");
+ js.appendValueName(cgPropertyAssignment.getInitValue());
+ js.append(");\n");
+ return null;
+ }
+
+ @Override
+ public @Nullable Object visitCGRealizedVariable(@NonNull CGRealizedVariable cgRealizedVariable) {
+ js.appendDeclaration(cgRealizedVariable);
+ js.append(" = ");
+ js.appendReferenceTo(localContext.getExecutorType(cgRealizedVariable.getPivotTypeId()));
+ js.append(".createInstance();\n");
+ //
+ doAddRealization(cgRealizedVariable);
+ return null;
+ }
+
+ @Override
+ public @Nullable Object visitCGTransformation(@NonNull CGTransformation cgTransformation) {
+ String className = cgTransformation.getName();
+ js.append("/**\n");
+ js.append(" * The " + className + " transformation:\n");
+ js.append(" * <p>\n");
+ js.append(" * Construct with an evaluator\n");
+ js.append(" * <br>\n");
+ js.append(" * Populate each input model with {@link addRootObjects(String,List)}\n");
+ js.append(" * <br>\n");
+ js.append(" * {@link run()}\n");
+ js.append(" * <br>\n");
+ js.append(" * Extract each output model with {@link getRootObjects(String)}\n");
+ js.append(" */\n");
+ js.append("@SuppressWarnings(\"nls\")\n");
+ js.append("public class " + className + " extends ");
+ js.appendClassReference(AbstractTransformation.class);
+ js.append("\n");
+ js.append("{\n");
+ js.pushIndentation(null);
+ doGlobals(cgTransformation);
+ js.append("\n");
+ doConstructor(cgTransformation);
+ js.append("\n");
+ doRun(cgTransformation);
+ for (CGOperation cgOperation : cgTransformation.getOperations()) {
+ js.append("\n");
+ cgOperation.accept(this);
+ }
+ for (CGMapping cgMapping : cgTransformation.getMappings()) {
+ js.append("\n");
+ cgMapping.accept(this);
+ }
+ js.popIndentation();
+ js.append("}\n");
+ return null;
+ }
+
+ @Override
+ @Nullable
+ public Object visitCGTypedModel(@NonNull CGTypedModel object) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2StringVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2StringVisitor.java
new file mode 100644
index 000000000..1be5257f6
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2StringVisitor.java
@@ -0,0 +1,157 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.ocl.examples.codegen.analyzer.CG2StringVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+public class QVTiCG2StringVisitor extends CG2StringVisitor implements QVTiCGModelVisitor<String>
+{
+ private static final class MyFactory implements CG2StringVisitor.Factory
+ {
+ private MyFactory() {
+ CG2StringVisitor.addFactory(this);
+ }
+
+ @Override
+ public @NonNull CG2StringVisitor createToStringVisitor() {
+ return new QVTiCG2StringVisitor();
+ }
+
+ @Override
+ public @NonNull EPackage getEPackage() {
+ QVTiCGModelPackage eInstance = QVTiCGModelPackage.eINSTANCE;
+ assert eInstance != null;
+ return eInstance;
+ }
+ }
+
+ public static @NonNull QVTiCG2StringVisitor.Factory FACTORY = new MyFactory();
+
+ protected QVTiCG2StringVisitor() {}
+
+ @Override
+ @Nullable
+ public String visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
+ return visitCGPropertyAssignment(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) {
+ return visitCGRealizedVariable(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGFunction(@NonNull CGFunction object) {
+ return visitCGOperation(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) {
+ return visitCGOperationCallExp(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGFunctionParameter(@NonNull CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGGuardVariable(@NonNull CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGMapping(@NonNull CGMapping cgMapping) {
+ appendQualifiedName(cgMapping.getTransformation(), ".", cgMapping);
+ append("(");
+ boolean isFirst = true;
+ for (CGGuardVariable cgGuardVariable : cgMapping.getGuardVariables()) {
+ if (!isFirst) {
+ append(",");
+ }
+ appendElementType(cgGuardVariable);
+ isFirst = false;
+ }
+ append(")");
+ return null;
+ }
+
+ @Override
+ @Nullable
+ public String visitCGMappingCall(@NonNull CGMappingCall object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGPredicate(@NonNull CGPredicate object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGRealizedVariable(@NonNull CGRealizedVariable object) {
+ return visitCGVariable(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGTransformation(@NonNull CGTransformation object) {
+ return visitCGClass(object);
+ }
+
+ @Override
+ @Nullable
+ public String visitCGTypedModel(@NonNull CGTypedModel object) {
+ return visitCGNamedElement(object);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCodeGenerator.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCodeGenerator.java
new file mode 100644
index 000000000..a22b2da84
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCodeGenerator.java
@@ -0,0 +1,120 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+
+
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.analyzer.AnalysisVisitor;
+import org.eclipse.ocl.examples.codegen.analyzer.BoxingAnalyzer;
+import org.eclipse.ocl.examples.codegen.analyzer.DependencyVisitor;
+import org.eclipse.ocl.examples.codegen.analyzer.FieldingAnalyzer;
+import org.eclipse.ocl.examples.codegen.java.CG2JavaPreVisitor;
+import org.eclipse.ocl.examples.codegen.java.ImportUtils;
+import org.eclipse.ocl.examples.codegen.java.JavaCodeGenerator;
+import org.eclipse.ocl.examples.codegen.java.JavaLocalContext;
+import org.eclipse.ocl.examples.pivot.manager.MetaModelManager;
+import org.eclipse.qvtd.pivot.qvtbase.Transformation;
+
+/**
+ * OCL2JavaClass supports generation of the content of a JavaClassFile with a ststic INSTANCE to provide the polymorphic implementation
+ * of an ExpressionInOCL.
+ */
+public class QVTiCodeGenerator extends JavaCodeGenerator
+{
+ protected final @NonNull QVTiAnalyzer cgAnalyzer;
+ protected final @NonNull Transformation transformation;
+ protected final @NonNull QVTiCG2JavaVisitor generator;
+// protected final @NonNull CGPackage cgPackage;
+
+ public QVTiCodeGenerator(@NonNull MetaModelManager metaModelManager, @NonNull Transformation transformation, @NonNull String packageName, boolean useNullAnnotations) {
+ super(metaModelManager);
+ QVTiCG2StringVisitor.FACTORY.getClass();
+ getOptions().setUseNullAnnotations(useNullAnnotations);
+ cgAnalyzer = new QVTiAnalyzer(this);
+ this.transformation = transformation;
+// this.genPackage = genPackage;
+ this.generator = new QVTiCG2JavaVisitor(this, transformation, packageName, transformation.getName());
+ /*this.cgPackage =*/ generator.generate();
+ }
+
+ @Override
+ public @NonNull AnalysisVisitor createAnalysisVisitor() {
+ return new QVTiAnalysisVisitor(cgAnalyzer);
+ }
+
+ @Override
+ public @NonNull BoxingAnalyzer createBoxingAnalyzer() {
+ return new QVTiBoxingAnalyzer(cgAnalyzer);
+ }
+
+ @Override
+ public @NonNull CG2JavaPreVisitor createCG2JavaPreVisitor() {
+ return new QVTiCG2JavaPreVisitor(getGlobalContext());
+ }
+
+ @Override
+ public DependencyVisitor createDependencyVisitor() {
+ return new QVTiDependencyVisitor(cgAnalyzer, getGlobalContext());
+ }
+
+ @Override
+ public DependencyVisitor createDependencyVisitor(@NonNull JavaLocalContext localContext) {
+ return new QVTiDependencyVisitor((QVTiLocalContext) localContext);
+ }
+
+ @Override
+ public @NonNull FieldingAnalyzer createFieldingAnalyzer() {
+ return new QVTiFieldingAnalyzer(cgAnalyzer);
+ }
+
+ @Override
+ protected @NonNull QVTiGlobalContext createGlobalContext() {
+ return new QVTiGlobalContext(this);
+ }
+
+ public @NonNull String generateClassFile() {
+ // QVTiCG2JavaClassVisitor generator = QVTiCG2JavaClassVisitor.generate(this, transformation, packageName, className);
+ Set<String> allImports = generator.getAllImports();
+ Map<String, String> long2ShortImportNames = ImportUtils.getLong2ShortImportNames(allImports);
+ return ImportUtils.resolveImports(generator.toString(), long2ShortImportNames);
+ }
+
+ @Override
+ public @NonNull QVTiAnalyzer getAnalyzer() {
+ return cgAnalyzer;
+ }
+
+ @Override
+ public @NonNull QVTiGlobalContext getGlobalContext() {
+ return (QVTiGlobalContext) super.getGlobalContext();
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiDependencyVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiDependencyVisitor.java
new file mode 100644
index 000000000..fdd7e2831
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiDependencyVisitor.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.java.JavaDependencyVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+public class QVTiDependencyVisitor extends JavaDependencyVisitor implements QVTiCGModelVisitor<Object>
+{
+ public QVTiDependencyVisitor(@NonNull QVTiAnalyzer analyzer, @NonNull QVTiGlobalContext globalContext) {
+ super(analyzer, globalContext);
+ }
+
+ public QVTiDependencyVisitor(@NonNull QVTiLocalContext localContext) {
+ super(localContext);
+ }
+
+ @Override
+ public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
+ return visitCGPropertyAssignment(object);
+ }
+
+ @Override
+ public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) {
+ return visitCGRealizedVariable(object);
+ }
+
+ @Override
+ public Object visitCGFunction(@NonNull CGFunction object) {
+ return visitCGOperation(object);
+ }
+
+ @Override
+ public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) {
+ return visitCGOperationCallExp(object);
+ }
+
+ @Override
+ public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Object visitCGGuardVariable(@NonNull CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Object visitCGMapping(@NonNull CGMapping object) {
+ return visitCGTypedElement(object);
+ }
+
+ @Override
+ public Object visitCGMappingCall(@NonNull CGMappingCall object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGPredicate(@NonNull CGPredicate object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Object visitCGRealizedVariable(@NonNull CGRealizedVariable object) {
+ return visitCGVariable(object);
+ }
+
+ @Override
+ public Object visitCGTransformation(@NonNull CGTransformation object) {
+ return visitCGClass(object);
+ }
+
+ @Override
+ public Object visitCGTypedModel(@NonNull CGTypedModel object) {
+ return visitCGNamedElement(object);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiFieldingAnalyzer.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiFieldingAnalyzer.java
new file mode 100644
index 000000000..b9635f9fb
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiFieldingAnalyzer.java
@@ -0,0 +1,209 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import java.util.Set;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.ocl.examples.codegen.analyzer.FieldingAnalyzer;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+public class QVTiFieldingAnalyzer extends FieldingAnalyzer
+{
+ public static class QVTiAnalysisVisitor extends AnalysisVisitor implements QVTiCGModelVisitor<Set<CGVariable>>
+ {
+ public QVTiAnalysisVisitor(@NonNull QVTiFieldingAnalyzer context) {
+ super(context);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
+ return visitCGPropertyAssignment(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) {
+ return visitCGRealizedVariable(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGFunction(@NonNull CGFunction object) {
+ return visitCGOperation(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) {
+ return visitCGOperationCallExp(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGFunctionParameter(@NonNull CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGGuardVariable(@NonNull CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGMapping(@NonNull CGMapping object) {
+ return visitCGTypedElement(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGMappingCall(@NonNull CGMappingCall object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGPredicate(@NonNull CGPredicate object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGRealizedVariable(@NonNull CGRealizedVariable object) {
+ return visitCGVariable(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGTransformation(@NonNull CGTransformation object) {
+ return visitCGClass(object);
+ }
+
+ @Override
+ public @Nullable Set<CGVariable> visitCGTypedModel(@NonNull CGTypedModel object) {
+ return visitCGNamedElement(object);
+ }
+ }
+
+ public static class QVTiRewriteVisitor extends RewriteVisitor implements QVTiCGModelVisitor<Boolean>
+ {
+ public QVTiRewriteVisitor(@NonNull QVTiAnalyzer context, @NonNull Set<CGVariable> caughtVariables) {
+ super(context, caughtVariables);
+ }
+
+ @Override
+ public Boolean visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
+ return visitCGPropertyAssignment(object);
+ }
+
+ @Override
+ public Boolean visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) {
+ return visitCGRealizedVariable(object);
+ }
+
+ @Override
+ public Boolean visitCGFunction(@NonNull CGFunction object) {
+ return visitCGOperation(object);
+ }
+
+ @Override
+ public Boolean visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) {
+ return visitCGOperationCallExp(object);
+ }
+
+ @Override
+ public Boolean visitCGFunctionParameter(@NonNull CGFunctionParameter object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Boolean visitCGGuardVariable(@NonNull CGGuardVariable object) {
+ return visitCGParameter(object);
+ }
+
+ @Override
+ public Boolean visitCGMapping(@NonNull CGMapping object) {
+ return visitCGTypedElement(object);
+ }
+
+ @Override
+ public Boolean visitCGMappingCall(@NonNull CGMappingCall object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Boolean visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Boolean visitCGPredicate(@NonNull CGPredicate cgPredicate) {
+ rewriteAsCaught(cgPredicate.getConditionExpression());
+ return true;
+ }
+
+ @Override
+ public Boolean visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) {
+ return visitCGValuedElement(object);
+ }
+
+ @Override
+ public Boolean visitCGRealizedVariable(@NonNull CGRealizedVariable object) {
+ return visitCGVariable(object);
+ }
+
+ @Override
+ public Boolean visitCGTransformation(@NonNull CGTransformation object) {
+ return visitCGClass(object);
+ }
+
+ @Override
+ public Boolean visitCGTypedModel(@NonNull CGTypedModel object) {
+ return visitCGNamedElement(object);
+ }
+ }
+
+ public QVTiFieldingAnalyzer(@NonNull QVTiAnalyzer analyzer) {
+ super(analyzer);
+ }
+
+ @Override
+ protected @NonNull AnalysisVisitor createAnalysisVisitor() {
+ return new QVTiAnalysisVisitor(this);
+ }
+
+ @Override
+ protected @NonNull RewriteVisitor createRewriteVisitor(@NonNull Set<CGVariable> caughtVariables) {
+ return new QVTiRewriteVisitor((QVTiAnalyzer) analyzer, caughtVariables);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiGlobalContext.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiGlobalContext.java
new file mode 100644
index 000000000..65ed5a2de
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiGlobalContext.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGModelFactory;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.java.JavaCodeGenerator;
+import org.eclipse.ocl.examples.codegen.java.JavaConstants;
+import org.eclipse.ocl.examples.codegen.java.JavaGlobalContext;
+
+/**
+ * A JUnitGlobalContext maintains the Java-specific global context for generation of code.
+ */
+public class QVTiGlobalContext extends JavaGlobalContext
+{
+ private /*@LazyNonNull*/ CGValuedElement evaluatorParameter = null;
+ private /*@LazyNonNull*/ CGValuedElement idResolver = null;
+
+ public QVTiGlobalContext(@NonNull JavaCodeGenerator codeGenerator) {
+ super(codeGenerator);
+ nameManager.reserveName(JavaConstants.EVALUATOR_NAME, null);
+ nameManager.reserveName("modelObjects", null);
+ }
+
+ @Override
+ public @NonNull QVTiLocalContext createNestedContext(@NonNull CGElement cgScope) {
+ return new QVTiLocalContext(this, cgScope);
+ }
+
+ public @NonNull CGValuedElement getEvaluatorParameter() {
+ CGValuedElement evaluatorParameter2 = evaluatorParameter;
+ if (evaluatorParameter2 == null) {
+ evaluatorParameter = evaluatorParameter2 = CGModelFactory.eINSTANCE.createCGParameter();
+ evaluatorParameter2.setName(JavaConstants.EVALUATOR_NAME);
+ evaluatorParameter2.setValueName(JavaConstants.EVALUATOR_NAME);
+ evaluatorParameter2.setTypeId(analyzer.getTypeId(JavaConstants.EVALUATOR_TYPE_ID));
+ }
+ return evaluatorParameter2;
+ }
+
+ public @NonNull CGValuedElement getIdResolverVariable() {
+ CGValuedElement idResolver2 = idResolver;
+ if (idResolver2 == null) {
+ idResolver = idResolver2 = CGModelFactory.eINSTANCE.createCGParameter();
+ idResolver2.setName(JavaConstants.ID_RESOLVER_NAME);
+ idResolver2.setValueName(JavaConstants.ID_RESOLVER_NAME);
+ idResolver2.setTypeId(analyzer.getTypeId(JavaConstants.ID_RESOLVER_TYPE_ID));
+ }
+ return idResolver2;
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiLocalContext.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiLocalContext.java
new file mode 100644
index 000000000..d0bf795e9
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiLocalContext.java
@@ -0,0 +1,99 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGCastParameter;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.java.JavaConstants;
+import org.eclipse.ocl.examples.codegen.java.JavaLocalContext;
+
+/**
+ * A JavaLocalContext maintains the Java-specific context for generation of coide from a CGOperation.
+ */
+public class QVTiLocalContext extends JavaLocalContext
+{
+ public QVTiLocalContext(@NonNull QVTiGlobalContext globalContext, @NonNull CGElement cgScope) {
+ super(globalContext, cgScope);
+ }
+
+ public QVTiLocalContext(@NonNull QVTiLocalContext parentContext, @NonNull CGElement cgScope) {
+ super(parentContext, cgScope);
+ }
+
+ @Override
+ public @NonNull QVTiLocalContext createNestedContext(@NonNull CGElement cgScope) {
+ return new QVTiLocalContext(this, cgScope);
+ }
+
+ /*
+ * If the self parameter has a known type other than Object, we add a CGCastParamter that casts the passed parameter self_0:Object to a better self.
+ * Otherwise we just rename the passed parameter to be self. The self parameter is of course maintained in the outer name context.
+ */
+ @Override
+ public @NonNull CGParameter getCastParameter(@NonNull CGParameter cgParameter) {
+ if (cgParameter instanceof CGCastParameter) {
+ return cgParameter;
+ }
+ if (JavaConstants.SELF_NAME.equals(cgParameter.getName())) {
+ JavaLocalContext parentContext2 = parentContext;
+ if (parentContext2 != null) {
+ return parentContext2.getCastParameter(cgParameter);
+ }
+ else {
+ CGParameter cgCastParameter = basicGetCastParameter(cgParameter);
+ if (cgCastParameter == null) {
+ cgCastParameter = createCastParameter(cgParameter);
+ cgCastParameter.setValueName(globalContext.getSelfName());
+ addCastParameter(cgParameter, cgCastParameter);
+ }
+ return cgCastParameter;
+ }
+ }
+ return super.getCastParameter(cgParameter);
+ }
+
+ @Override
+ public @NonNull CGValuedElement getEvaluatorParameter() {
+ return getGlobalContext().getEvaluatorParameter();
+ }
+
+ @Override
+ public @NonNull QVTiGlobalContext getGlobalContext() {
+ return (QVTiGlobalContext) globalContext;
+ }
+
+ @Override
+ public @NonNull CGValuedElement getIdResolverVariable() {
+ return getGlobalContext().getIdResolverVariable();
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiPivot2CGVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiPivot2CGVisitor.java
new file mode 100644
index 000000000..78bdb6df3
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiPivot2CGVisitor.java
@@ -0,0 +1,491 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvti;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.ocl.examples.codegen.analyzer.Pivot2CGVisitor;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.ocl.examples.codegen.generator.GenModelException;
+import org.eclipse.ocl.examples.domain.ids.TypeId;
+import org.eclipse.ocl.examples.domain.library.LibraryProperty;
+import org.eclipse.ocl.examples.domain.utilities.DomainUtil;
+import org.eclipse.ocl.examples.pivot.ExpressionInOCL;
+import org.eclipse.ocl.examples.pivot.NamedElement;
+import org.eclipse.ocl.examples.pivot.OCLExpression;
+import org.eclipse.ocl.examples.pivot.OpaqueExpression;
+import org.eclipse.ocl.examples.pivot.Operation;
+import org.eclipse.ocl.examples.pivot.OperationCallExp;
+import org.eclipse.ocl.examples.pivot.Parameter;
+import org.eclipse.ocl.examples.pivot.Property;
+import org.eclipse.ocl.examples.pivot.Type;
+import org.eclipse.ocl.examples.pivot.Variable;
+import org.eclipse.ocl.examples.pivot.utilities.PivotUtil;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelFactory;
+import org.eclipse.qvtd.pivot.qvtbase.BaseModel;
+import org.eclipse.qvtd.pivot.qvtbase.Domain;
+import org.eclipse.qvtd.pivot.qvtbase.Function;
+import org.eclipse.qvtd.pivot.qvtbase.FunctionParameter;
+import org.eclipse.qvtd.pivot.qvtbase.Pattern;
+import org.eclipse.qvtd.pivot.qvtbase.Predicate;
+import org.eclipse.qvtd.pivot.qvtbase.Rule;
+import org.eclipse.qvtd.pivot.qvtbase.Transformation;
+import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
+import org.eclipse.qvtd.pivot.qvtbase.Unit;
+import org.eclipse.qvtd.pivot.qvtcorebase.Area;
+import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
+import org.eclipse.qvtd.pivot.qvtcorebase.CorePattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.EnforcementOperation;
+import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
+import org.eclipse.qvtd.pivot.qvtcorebase.VariableAssignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.utilities.QVTcoreBaseUtil;
+import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
+import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
+import org.eclipse.qvtd.pivot.qvtimperative.MappingCall;
+import org.eclipse.qvtd.pivot.qvtimperative.MappingCallBinding;
+import org.eclipse.qvtd.pivot.qvtimperative.util.QVTimperativeVisitor;
+
+public final class QVTiPivot2CGVisitor extends Pivot2CGVisitor implements QVTimperativeVisitor<CGNamedElement>
+{
+ protected final @NonNull QVTiAnalyzer analyzer;
+ protected final @NonNull QVTiGlobalContext globalContext;
+
+ public QVTiPivot2CGVisitor(@NonNull QVTiAnalyzer analyzer, @NonNull QVTiGlobalContext globalContext) {
+ super(analyzer);
+ this.analyzer = analyzer;
+ this.globalContext = globalContext;
+ }
+
+ protected void createMappingCalls(@NonNull Mapping pMapping, @NonNull CGMapping cgMapping) {
+ for (MappingCall pMappingCall : pMapping.getMappingCall()) {
+ CGMappingCall cgMappingCall = doVisit(CGMappingCall.class, pMappingCall);
+ cgMapping.getMappingCalls().add(cgMappingCall);
+ }
+ }
+
+ protected void doBottoms(@NonNull Mapping pMapping, @NonNull CGMapping cgMapping) {
+ List<BottomPattern> pBottomPatterns = new ArrayList<BottomPattern>();
+ {
+ BottomPattern pBottomPattern = pMapping.getBottomPattern();
+ if (pBottomPattern != null) {
+ pBottomPatterns.add(pBottomPattern);
+ }
+ for (@SuppressWarnings("null")@NonNull Domain pDomain : pMapping.getDomain()) {
+ if (pDomain instanceof CoreDomain) {
+ pBottomPattern = ((CoreDomain)pDomain).getBottomPattern();
+ if (pBottomPattern != null) {
+ pBottomPatterns.add(pBottomPattern);
+ }
+ }
+ }
+ }
+ List<RealizedVariable> pRealizedVariables = new ArrayList<RealizedVariable>();
+ for (@SuppressWarnings("null")@NonNull BottomPattern pBottomPattern : pBottomPatterns) {
+ pRealizedVariables.addAll(pBottomPattern.getRealizedVariable());
+ }
+ Collections.sort(pRealizedVariables, new Comparator<NamedElement>()
+ {
+ @Override
+ public int compare(NamedElement o1, NamedElement o2) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ });
+ List<CGRealizedVariable> cgRealizedVariables = cgMapping.getRealizedVariables();
+ for (@SuppressWarnings("null")@NonNull RealizedVariable pRealizedVariable : pRealizedVariables) {
+ CGRealizedVariable cgVariable = getRealizedVariable(pRealizedVariable);
+ cgRealizedVariables.add(cgVariable);
+ }
+ List<CGPropertyAssignment> cgAssignments = cgMapping.getAssignments();
+ for (@SuppressWarnings("null")@NonNull BottomPattern pBottomPattern : pBottomPatterns) {
+ for (@SuppressWarnings("null")@NonNull Assignment pAssignment : pBottomPattern.getAssignment()) {
+ cgAssignments.add(doVisit(CGPropertyAssignment.class, pAssignment));
+ }
+ }
+ }
+
+ protected void doGuards(@NonNull Mapping pMapping, @NonNull CGMapping cgMapping) {
+ List<GuardPattern> guardPatterns = new ArrayList<GuardPattern>();
+ {
+ GuardPattern pGuardPattern = pMapping.getGuardPattern();
+ if (pGuardPattern != null) {
+ guardPatterns.add(pGuardPattern);
+ }
+ for (@SuppressWarnings("null")@NonNull Domain pDomain : pMapping.getDomain()) {
+ if (pDomain instanceof CoreDomain) {
+ GuardPattern guardPattern = ((CoreDomain)pDomain).getGuardPattern();
+ if (guardPattern != null) {
+ guardPatterns.add(guardPattern);
+ }
+ }
+ }
+ }
+ List<Variable> pGuardVariables = new ArrayList<Variable>();
+ for (@SuppressWarnings("null")@NonNull GuardPattern pGuardPattern : guardPatterns) {
+ pGuardVariables.addAll(pGuardPattern.getVariable());
+ }
+ Collections.sort(pGuardVariables, new Comparator<NamedElement>()
+ {
+ @Override
+ public int compare(NamedElement o1, NamedElement o2) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ });
+ List<CGGuardVariable> cgGuardVariables = new ArrayList<CGGuardVariable>();
+ for (@SuppressWarnings("null")@NonNull Variable pGuardVariable : pGuardVariables) {
+ CGGuardVariable cgParameter = getGuardVariable(pGuardVariable);
+ cgGuardVariables.add(cgParameter);
+ }
+ Collections.sort(cgGuardVariables, new Comparator<CGGuardVariable>()
+ {
+ @Override
+ public int compare(CGGuardVariable o1, CGGuardVariable o2) {
+ String n1 = o1.getName();
+ String n2 = o2.getName();
+ return n1.compareTo(n2);
+ }
+ });
+ cgMapping.getGuardVariables().addAll(cgGuardVariables);
+ List<CGPredicate> cgGuardExpressions = cgMapping.getPredicates();
+ for (@SuppressWarnings("null")@NonNull GuardPattern pGuardPattern : guardPatterns) {
+ for (@SuppressWarnings("null")@NonNull Predicate pPredicate : pGuardPattern.getPredicate()) {
+ cgGuardExpressions.add(doVisit(CGPredicate.class, pPredicate));
+ }
+ }
+ }
+
+ public @NonNull CGFunctionParameter getFunctionParameter(@NonNull FunctionParameter aParameter) {
+ CGFunctionParameter cgFunctionParameter = (CGFunctionParameter)getVariablesStack().getParameter(aParameter);
+ if (cgFunctionParameter == null) {
+ cgFunctionParameter = QVTiCGModelFactory.eINSTANCE.createCGFunctionParameter();
+ context.setNames(cgFunctionParameter, aParameter);
+ setPivot(cgFunctionParameter, aParameter);
+ cgFunctionParameter.setTypeId(context.getTypeId(aParameter.getTypeId()));
+ addParameter(aParameter, cgFunctionParameter);
+ }
+ return cgFunctionParameter;
+ }
+
+ public @NonNull CGGuardVariable getGuardVariable(@NonNull Variable pParameter) {
+ CGGuardVariable cgGuardVariable = (CGGuardVariable) getVariablesStack().getParameter(pParameter);
+ if (cgGuardVariable == null) {
+ cgGuardVariable = QVTiCGModelFactory.eINSTANCE.createCGGuardVariable();
+ context.setNames(cgGuardVariable, pParameter);
+ setPivot(cgGuardVariable, pParameter);
+ cgGuardVariable.setTypeId(context.getTypeId(pParameter.getTypeId()));
+ cgGuardVariable.setTypedModel(getTypedModel(pParameter));
+ addParameter(pParameter, cgGuardVariable);
+ }
+ return cgGuardVariable;
+ }
+
+ public @NonNull CGRealizedVariable getRealizedVariable(@NonNull RealizedVariable pRealizedVariable) {
+ Variables variablesStack = getVariablesStack();
+ CGRealizedVariable cgVariable = (CGRealizedVariable) variablesStack.getVariable(pRealizedVariable);
+ if (cgVariable == null) {
+ Type pivotType = DomainUtil.nonNullModel(pRealizedVariable.getType());
+ EClassifier eClassifier = (EClassifier) pivotType.getETarget();
+ if (eClassifier != null) {
+ CGEcoreRealizedVariable cgEcoreRealizedVariable = QVTiCGModelFactory.eINSTANCE.createCGEcoreRealizedVariable();
+ cgEcoreRealizedVariable.setEClassifier(eClassifier);
+ cgVariable = cgEcoreRealizedVariable;
+ }
+ if (cgVariable == null) {
+ cgVariable = QVTiCGModelFactory.eINSTANCE.createCGRealizedVariable();
+ }
+ setPivot(cgVariable, pRealizedVariable);
+ cgVariable.setTypedModel(getTypedModel(pRealizedVariable));
+ variablesStack.putVariable(pRealizedVariable, cgVariable);
+ }
+ return cgVariable;
+ }
+
+ protected @NonNull CGTypedModel getTypedModel(@NonNull Variable pVariable) {
+ Area pArea = DomainUtil.nonNullState(QVTcoreBaseUtil.getContainingArea(pVariable));
+ TypedModel pTypedModel = null;
+ if (pArea instanceof Domain) {
+ pTypedModel = DomainUtil.nonNullState(((Domain)pArea).getTypedModel());
+ }
+ else {
+ Transformation pTransformation = ((Mapping)pArea).getTransformation();
+ pTypedModel = DomainUtil.nonNullState(pTransformation.getModelParameter(null));
+ }
+ return DomainUtil.nonNullState(analyzer.getTypedModel(pTypedModel));
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitAssignment(@NonNull Assignment object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitBaseModel(@NonNull BaseModel object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitBottomPattern(@NonNull BottomPattern object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitCoreDomain(@NonNull CoreDomain object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitCorePattern(@NonNull CorePattern object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitDomain(@NonNull Domain object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitEnforcementOperation(@NonNull EnforcementOperation object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitFunction(@NonNull Function pFunction) {
+ CGFunction cgFunction = QVTiCGModelFactory.eINSTANCE.createCGFunction();
+ setPivot(cgFunction, pFunction);
+ cgFunction.setRequired(pFunction.isRequired());
+ for (Parameter pParameter : pFunction.getOwnedParameter()) {
+ cgFunction.getParameters().add(doVisit(CGParameter.class, pParameter));
+ }
+ OpaqueExpression specification = pFunction.getBodyExpression();
+ if (specification != null) {
+ ExpressionInOCL expressionInOCL = PivotUtil.getExpressionInOCL(pFunction, specification);
+ if (expressionInOCL != null) {
+ Variable contextVariable = expressionInOCL.getContextVariable();
+ if (contextVariable != null) {
+ getSelfParameter(contextVariable);
+ }
+ for (@SuppressWarnings("null")@NonNull Variable parameterVariable : expressionInOCL.getParameterVariable()) {
+ getParameter(parameterVariable);
+ }
+ cgFunction.setBody(doVisit(CGValuedElement.class, expressionInOCL.getBodyExpression()));
+ }
+ }
+ analyzer.addFunction(pFunction, cgFunction);
+ return cgFunction;
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitFunctionParameter(@NonNull FunctionParameter pFunctionParameter) {
+ return getFunctionParameter(pFunctionParameter);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitGuardPattern(@NonNull GuardPattern object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitImperativeModel(@NonNull ImperativeModel object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitMapping(@NonNull Mapping pMapping) {
+ CGMapping cgMapping = QVTiCGModelFactory.eINSTANCE.createCGMapping();
+ setPivot(cgMapping, pMapping);
+ analyzer.addMapping(pMapping, cgMapping);
+ doGuards(pMapping, cgMapping);
+ doBottoms(pMapping, cgMapping);
+ createMappingCalls(pMapping, cgMapping);
+ return cgMapping;
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitMappingCall(@NonNull MappingCall pMappingCall) {
+ CGMappingCall cgMappingCall = QVTiCGModelFactory.eINSTANCE.createCGMappingCall();
+ setPivot(cgMappingCall, pMappingCall);
+ List<CGMappingCallBinding> cgMappingCallBindings = new ArrayList<CGMappingCallBinding>();
+ for (MappingCallBinding pMappingCallBinding : pMappingCall.getBinding()) {
+ CGMappingCallBinding cgMappingCallBinding = doVisit(CGMappingCallBinding.class, pMappingCallBinding);
+ cgMappingCallBindings.add(cgMappingCallBinding);
+ }
+ Collections.sort(cgMappingCallBindings, new Comparator<CGMappingCallBinding>()
+ {
+ @Override
+ public int compare(CGMappingCallBinding o1, CGMappingCallBinding o2) {
+ String n1 = o1.getName();
+ String n2 = o2.getName();
+ return n1.compareTo(n2);
+ }
+ });
+ cgMappingCall.getMappingCallBindings().addAll(cgMappingCallBindings);
+ return cgMappingCall;
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitMappingCallBinding(@NonNull MappingCallBinding pMappingCallBinding) {
+ CGMappingCallBinding cgMappingCallBinding = QVTiCGModelFactory.eINSTANCE.createCGMappingCallBinding();
+// setPivot(cgMappingCallBinding, pMappingCallBinding);
+ cgMappingCallBinding.setName(pMappingCallBinding.getBoundVariable().getName());
+ cgMappingCallBinding.setLoop(pMappingCallBinding.isIsLoop());
+ cgMappingCallBinding.setValueOrValues(doVisit(CGValuedElement.class, pMappingCallBinding.getValue()));
+ cgMappingCallBinding.setTypeId(analyzer.getTypeId(pMappingCallBinding.getBoundVariable().getTypeId()));
+// cgMappingCallBinding.setValueName(localnamepMappingCallBinding.getBoundVariable().getName());
+ return cgMappingCallBinding;
+ }
+
+ @Override
+ public @NonNull
+ CGValuedElement visitOperationCallExp(@NonNull OperationCallExp element) {
+ Operation pOperation = element.getReferredOperation();
+ if (pOperation instanceof Function) {
+ CGFunctionCallExp cgFunctionCallExp = QVTiCGModelFactory.eINSTANCE.createCGFunctionCallExp();
+ cgFunctionCallExp.setReferredOperation(pOperation);
+ setPivot(cgFunctionCallExp, element);
+ cgFunctionCallExp.setRequired(pOperation.isRequired());
+ for (OCLExpression pArgument : element.getArgument()) {
+ CGValuedElement cgArgument = doVisit(CGValuedElement.class, pArgument);
+ cgFunctionCallExp.getArguments().add(cgArgument);
+ }
+// cgOperationCallExp.setOperation(getOperation(element.getReferredOperation()));
+ return cgFunctionCallExp;
+ }
+ else {
+ return super.visitOperationCallExp(element);
+ }
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitPattern(@NonNull Pattern object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitPredicate(@NonNull Predicate pPredicate) {
+ CGPredicate cgPredicate = QVTiCGModelFactory.eINSTANCE.createCGPredicate();
+// setPivot(cgPredicate, pPredicate);
+// cgPredicate.setName(pPredicate.getName());
+ cgPredicate.setTypeId(analyzer.getTypeId(TypeId.BOOLEAN));
+// cgMappingCallBinding.setValueName(localnamepMappingCallBinding.getBoundVariable().getName());
+ cgPredicate.setConditionExpression(doVisit(CGValuedElement.class, pPredicate.getConditionExpression()));
+ return cgPredicate;
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitPropertyAssignment(@NonNull PropertyAssignment pPropertyAssignment) {
+ Property pivotProperty = DomainUtil.nonNullModel(pPropertyAssignment.getTargetProperty());
+ LibraryProperty libraryProperty = metaModelManager.getImplementation(pivotProperty);
+ CGPropertyAssignment cgPropertyAssignment = null;
+ if (isEcoreProperty(libraryProperty)) {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature) pivotProperty.getETarget();
+ if (eStructuralFeature != null) {
+ try {
+ genModelHelper.getGetAccessor(eStructuralFeature);
+ CGEcorePropertyAssignment cgEcorePropertyAssignment = QVTiCGModelFactory.eINSTANCE.createCGEcorePropertyAssignment();
+ cgEcorePropertyAssignment.setEStructuralFeature(eStructuralFeature);
+ cgPropertyAssignment = cgEcorePropertyAssignment;
+ } catch (GenModelException e) {
+ }
+ }
+ }
+ if (cgPropertyAssignment == null) {
+ cgPropertyAssignment = QVTiCGModelFactory.eINSTANCE.createCGPropertyAssignment();
+ }
+// setPivot(cgPropertyAssignment, pPredicate);
+ cgPropertyAssignment.setSlotValue(doVisit(CGValuedElement.class, pPropertyAssignment.getSlotExpression()));
+ cgPropertyAssignment.setReferredProperty(pPropertyAssignment.getTargetProperty());
+// cgPredicate.setName(pPredicate.getName());
+ cgPropertyAssignment.setTypeId(analyzer.getTypeId(TypeId.OCL_VOID));
+// cgMappingCallBinding.setValueName(localnamepMappingCallBinding.getBoundVariable().getName());
+ cgPropertyAssignment.setInitValue(doVisit(CGValuedElement.class, pPropertyAssignment.getValue()));
+ return cgPropertyAssignment;
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitRealizedVariable(@NonNull RealizedVariable object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitRule(@NonNull Rule object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitVariableAssignment(@NonNull VariableAssignment object) {
+ return visiting(object);
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitTransformation(@NonNull Transformation element) {
+ CGTransformation cgTransformation = QVTiCGModelFactory.eINSTANCE.createCGTransformation();
+ setPivot(cgTransformation, element);
+ List<CGTypedModel> cgTypedModels = cgTransformation.getTypedModels();
+ for (TypedModel pTypedModel : element.getModelParameter()) {
+ CGTypedModel cgTypedModel = doVisit(CGTypedModel.class, pTypedModel);
+ cgTypedModel.setModelIndex(cgTypedModels.size());
+ cgTypedModels.add(cgTypedModel);
+ }
+ for (Rule pivotRule : element.getRule()) {
+ CGMapping cgMapping = doVisit(CGMapping.class, pivotRule);
+ cgTransformation.getMappings().add(cgMapping);
+ }
+ for (Operation pivotOperation : element.getOwnedOperation()) {
+ CGOperation cgOperation = doVisit(CGOperation.class, pivotOperation);
+ cgTransformation.getOperations().add(cgOperation);
+ }
+ return cgTransformation;
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitTypedModel(@NonNull TypedModel pTypedModel) {
+ CGTypedModel cgTypedModel = QVTiCGModelFactory.eINSTANCE.createCGTypedModel();
+ setPivot(cgTypedModel, pTypedModel);
+ analyzer.addTypedModel(pTypedModel, cgTypedModel);
+ return cgTypedModel;
+ }
+
+ @Override
+ public @Nullable CGNamedElement visitUnit(@NonNull Unit object) {
+ return visiting(object);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java
index 027dd941f..af840a4a4 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java
@@ -15,8 +15,18 @@
package org.eclipse.qvtd.pivot.qvtimperative.utilities;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.pivot.Variable;
import org.eclipse.ocl.examples.pivot.prettyprint.PrettyPrinter;
import org.eclipse.ocl.examples.pivot.util.AbstractVisitor;
+import org.eclipse.qvtd.pivot.qvtbase.Domain;
+import org.eclipse.qvtd.pivot.qvtbase.Predicate;
+import org.eclipse.qvtd.pivot.qvtcorebase.Area;
+import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
+import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
import org.eclipse.qvtd.pivot.qvtcorebase.utilities.QVTcoreBasePrettyPrintVisitor;
import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
@@ -45,23 +55,113 @@ public class QVTimperativePrettyPrintVisitor extends QVTcoreBasePrettyPrintVisit
super(context);
}
+ private void doArea(Area pArea) {
+ context.append(" (");
+ safeVisit(pArea.getGuardPattern());
+ context.append(")\n{");
+ safeVisit(pArea.getBottomPattern());
+ context.append("}\n");
+ }
+
+ @Override
+ public Object visitBottomPattern(@NonNull BottomPattern pBottomPattern) {
+ for (RealizedVariable pRealizedVariable : pBottomPattern.getRealizedVariable()) {
+ safeVisit(pRealizedVariable);
+ }
+ context.append(" |\n");
+ for (Assignment pAssignment : pBottomPattern.getAssignment()) {
+ safeVisit(pAssignment);
+ }
+ return null;
+ }
+
+ @Override
+ public Object visitGuardPattern(@NonNull GuardPattern pGuardPattern) {
+ for (Variable pVariable : pGuardPattern.getVariable()) {
+ safeVisit(pVariable);
+ }
+ context.append(" |\n");
+ for (Predicate pPredicate : pGuardPattern.getPredicate()) {
+ safeVisit(pPredicate);
+ }
+ return null;
+ }
+
public Object visitImperativeModel(@NonNull ImperativeModel object) {
// TODO Auto-generated method stub
return null;
}
- public Object visitMapping(@NonNull Mapping object) {
- // TODO Auto-generated method stub
+ public Object visitMapping(@NonNull Mapping pMapping) {
+ context.append("map ");
+ context.appendName(pMapping);
+ context.append(" in ");
+ context.appendName(pMapping.getTransformation());
+ context.append(") {\n");
+ context.push("", "");
+ for (Domain pDomain : pMapping.getDomain()) {
+ if (pDomain instanceof CoreDomain) {
+ context.appendName(pDomain);
+ doArea((CoreDomain)pDomain);
+ }
+ }
+ context.append("where");
+ doArea(pMapping);
+ for (MappingCall pMappingCall : pMapping.getMappingCall()) {
+ safeVisit(pMappingCall);
+ }
+ context.pop();
+ context.append("\n}");
return null;
}
- public Object visitMappingCall(@NonNull MappingCall object) {
- // TODO Auto-generated method stub
+ public Object visitMappingCall(@NonNull MappingCall pMappingCall) {
+ context.append("map ");
+ context.appendName(pMappingCall.getReferredMapping());
+ context.append(" {\n");
+ context.push("", "");
+ for (MappingCallBinding mappingCallBinding : pMappingCall.getBinding()) {
+ safeVisit(mappingCallBinding);
+ }
+ context.append("}");
+ context.pop();
return null;
}
- public Object visitMappingCallBinding(@NonNull MappingCallBinding object) {
- // TODO Auto-generated method stub
+ public Object visitMappingCallBinding(@NonNull MappingCallBinding bMappingCallBinding) {
+ context.appendName(bMappingCallBinding.getBoundVariable());
+ context.append(bMappingCallBinding.isIsLoop() ? " <= " : " := ");
+ safeVisit(bMappingCallBinding.getValue());
+ context.append(";\n");
+ return null;
+ }
+
+ @Override
+ public Object visitPredicate(@NonNull Predicate pPredicate) {
+ safeVisit(pPredicate.getConditionExpression());
+ return null;
+ }
+
+ @Override
+ public Object visitPropertyAssignment(@NonNull PropertyAssignment pPropertyAssignment) {
+ safeVisit(pPropertyAssignment.getSlotExpression());
+ context.append(" = ");
+ safeVisit(pPropertyAssignment.getValue());
+ context.append(";\n");
+ return null;
+ }
+
+ @Override
+ public Object visitRealizedVariable(@NonNull RealizedVariable pRealizedVariable) {
+ context.append("realize ");
+ visitVariable(pRealizedVariable);
+ return null;
+ }
+
+ @Override
+ public Object visitVariable(@NonNull Variable pVariable) {
+ super.visitVariable(pVariable);
+ context.append(";\n");
return null;
}
}
diff --git a/releng/org.eclipse.qvtd.build/.launches/GenerateQVTdCGModels.mwe2.launch b/releng/org.eclipse.qvtd.build/.launches/GenerateQVTdCGModels.mwe2.launch
new file mode 100644
index 000000000..7ddb4c74f
--- /dev/null
+++ b/releng/org.eclipse.qvtd.build/.launches/GenerateQVTdCGModels.mwe2.launch
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.qvtd.build"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.qvtd.build"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF b/releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF
index 7d03c277b..817807a5c 100644
--- a/releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF
+++ b/releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF
@@ -28,7 +28,8 @@ Require-Bundle: org.eclipse.xtext,
org.eclipse.ocl.examples.xtext.oclstdlib,
org.eclipse.qvtd.xtext.qvtcore;visibility:=reexport,
org.eclipse.qvtd.xtext.qvtimperative;visibility:=reexport,
- org.eclipse.qvtd.xtext.qvtrelation;visibility:=reexport
+ org.eclipse.qvtd.xtext.qvtrelation;visibility:=reexport,
+ org.eclipse.qvtd.codegen;bundle-version="0.10.0"
Import-Package: org.apache.commons.logging,
org.apache.log4j
Bundle-Vendor: %providerName
diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe2 b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe2
new file mode 100644
index 000000000..40dde418b
--- /dev/null
+++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe2
@@ -0,0 +1,66 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2010 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: GenerateXtextModels.mwe2,v 1.2 2011/01/24 20:54:27 ewillink Exp $
+ *
+ * Run As->MWE2 Workflow to regenerate the Xtest CST models.
+ */
+module GenerateQVTdXtextModels
+
+import org.eclipse.ocl.examples.build.utilities.*
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.emf.ecore.resource.impl.*
+
+/**
+ * Generate the Concrete Syntax Models used by the Xtext editors.
+ */
+Workflow {
+ bean = ResourceSetImpl : resourceSet {}
+ bean = StandaloneSetup { resourceSet = resourceSet
+ platformUri = ".."
+// platformUri = "./META-INF" // A local folder to minimize workspace searching
+ scanClassPath = true // But we do need to search the plugin-space
+ registerGeneratedEPackage = "org.eclipse.xtext.common.types.TypesPackage"
+ uriMap = Mapping {
+ from = "platform:/plugin/org.eclipse.emf.ecore/"
+ to = "platform:/resource/org.eclipse.emf.ecore/"
+ }
+ uriMap = Mapping {
+ from = "platform:/plugin/org.eclipse.ocl.examples.pivot/"
+ to = "platform:/resource/org.eclipse.ocl.examples.pivot/"
+ }
+ uriMap = Mapping {
+ from = "platform:/plugin/org.eclipse.ocl.examples.xtext.base/"
+ to = "platform:/resource/org.eclipse.ocl.examples.xtext.base/"
+ }
+ }
+ bean = GenModelSetup { resourceSet = resourceSet }
+ bean = UMLGenModelSetup { resourceSet = resourceSet }
+ component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
+ genModel = "/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel"
+ }
+ component = DerivedCGModelVisitorCodeGenerator { resourceSet = resourceSet
+ projectName = "org.eclipse.qvtd.codegen"
+ genModelFile = "model/qvticgmodel.genmodel"
+ javaFolder = "emf-gen"
+ modelPackageName = "org.eclipse.qvtd.codegen.qvticgmodel"
+ visitorPackageName = "org.eclipse.qvtd.codegen.qvticgmodel.util"
+ visitorClassName = "QVTiCGModelVisitor"
+ superVisitorPackageName = "org.eclipse.ocl.examples.codegen.cgmodel.util"
+ superVisitorClassName = "CGModelVisitor"
+ visitablePackageName = "org.eclipse.ocl.examples.codegen.cgmodel"
+ visitableClassName= "CGElement"
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java
index 7fda20494..baa52c21f 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java
@@ -77,10 +77,10 @@ public class LoadTestCase extends XtextTestCase
return pivotResource;
}
finally {
- if (adapter != null) {
- adapter.dispose();
- adapter.getMetaModelManager().dispose();
- }
+// if (adapter != null) {
+// adapter.dispose();
+// adapter.getMetaModelManager().dispose();
+// }
}
}
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath
index 64c5e31b7..59cf3977c 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath
@@ -3,5 +3,6 @@
<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"/>
+ <classpathentry kind="src" path="src-gen"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF
index 30ca5ce1c..4943ab213 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF
@@ -1,12 +1,27 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.qvtd.xtext.qvtcore.tests
+Bundle-SymbolicName: org.eclipse.qvtd.xtext.qvtcore.tests;singleton:=true
Bundle-Version: 0.10.0.qualifier
+Bundle-ClassPath: .
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.qvtd.xtext.qvtbase.tests,
org.eclipse.qvtd.xtext.qvtcore.ui,
- org.eclipse.qvtd.xtext.qvtimperative.ui
+ org.eclipse.qvtd.xtext.qvtimperative.ui,
+ org.eclipse.qvtd.codegen,
+ org.eclipse.ocl.examples.codegen.dynamic,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport
+Bundle-ActivationPolicy: lazy
Bundle-Vendor: %providerName
Bundle-Localization: plugin
-Export-Package: org.eclipse.qvtd.xtext.qvtcore.tests
+Export-Package: org.eclipse.qvtd.xtext.qvtcore.tests,
+ test.hls.HLSTree,
+ test.hls.HLSTree.impl,
+ test.hls.HLSTree.util,
+ test.hsv.HSVTree,
+ test.hsv.HSVTree.impl,
+ test.hsv.HSVTree.util,
+ test.middle.HSV2HLS,
+ test.middle.HSV2HLS.impl,
+ test.middle.HSV2HLS.util
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties
index 62758a641..acd1d8457 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties
@@ -1,7 +1,10 @@
-source.. = src/
+#
+
+bin.includes = .,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src-gen/,\
+ src/
output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties,\
- about.html
-additional.bundles = org.eclipse.jdt.annotation \ No newline at end of file
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/plugin.xml b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/plugin.xml
new file mode 100644
index 000000000..0e4a38ac9
--- /dev/null
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/plugin.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated HSV2HLS -->
+ <package
+ uri="platform:/resource/ICMT2013/ColoredTree2Tree.ecore"
+ class="test.middle.HSV2HLS.HSV2HLSPackage"
+ genModel="src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated HSV2HLS -->
+ <package
+ uri="platform:/resource/ICMT2013/HSVTree.ecore"
+ class="test.hsv.HSVTree.HSVTreePackage"
+ genModel="src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated HSV2HLS -->
+ <package
+ uri="platform:/resource/ICMT2013/HLSTree.ecore"
+ class="test.hls.HLSTree.HLSTreePackage"
+ genModel="src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/CodeGenTests.java b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/CodeGenTests.java
new file mode 100644
index 000000000..b7eeee564
--- /dev/null
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/CodeGenTests.java
@@ -0,0 +1,90 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2012 E.D.Willink and others.
+ * 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:
+ * E.D.Willink - initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.xtext.qvtcore.tests;
+
+import java.io.FileWriter;
+import java.io.Writer;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.ocl.examples.codegen.dynamic.OCL2JavaFileObject;
+import org.eclipse.ocl.examples.library.oclstdlib.OCLstdlibTables;
+import org.eclipse.ocl.examples.pivot.manager.MetaModelManager;
+import org.eclipse.ocl.examples.pivot.manager.MetaModelManagerResourceSetAdapter;
+import org.eclipse.ocl.examples.xtext.essentialocl.services.EssentialOCLLinkingService;
+import org.eclipse.qvtd.codegen.qvti.QVTiCodeGenerator;
+import org.eclipse.qvtd.pivot.qvtbase.Transformation;
+import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
+import org.eclipse.qvtd.xtext.qvtbase.tests.LoadTestCase;
+import org.eclipse.qvtd.xtext.qvtcore.QVTcoreStandaloneSetup;
+import org.eclipse.qvtd.xtext.qvtimperative.QVTimperativeStandaloneSetup;
+
+/**
+ * Tests that load a model and verify that there are no unresolved proxies as a result.
+ */
+public class CodeGenTests extends LoadTestCase
+{
+ @Override
+ protected void setUp() throws Exception {
+ EssentialOCLLinkingService.DEBUG_RETRY = true;
+ super.setUp();
+ QVTcoreStandaloneSetup.doSetup();
+ QVTimperativeStandaloneSetup.doSetup();
+ }
+
+ public void testCG_HSV2HLS_qvti() throws Exception {
+ metaModelManager = new MetaModelManager();
+ resourceSet.getPackageRegistry().put(GenModelPackage.eNS_URI, GenModelPackage.eINSTANCE);
+ URI inputURI = getProjectFileURI("HSV2HLS.genmodel");
+ Resource genResource = resourceSet.getResource(inputURI, true);
+ for (EObject eObject : genResource.getContents()) {
+ if (eObject instanceof GenModel) {
+ metaModelManager.addGenModel((GenModel)eObject);
+ }
+ }
+ MetaModelManagerResourceSetAdapter.getAdapter(resourceSet, metaModelManager);
+ Resource resource = doLoad_Concrete("HSV2HLS", "qvti");
+ for (EObject eObject : resource.getContents()) {
+ if (eObject instanceof ImperativeModel) {
+ for (org.eclipse.ocl.examples.pivot.Package pPackage : ((ImperativeModel)eObject).getNestedPackage()) {
+ if (pPackage instanceof Transformation) {
+ String packageName = "cg";
+ QVTiCodeGenerator cg = new QVTiCodeGenerator(metaModelManager, (Transformation)pPackage, packageName, true);
+ String className = pPackage.getName();
+ String qualifiedName = packageName + "." + className;
+ String javaCodeSource = cg.generateClassFile();
+// if (saveSource) {
+ String fileName = "src-gen/" + qualifiedName.replace('.', '/') + ".java";
+ Writer writer = new FileWriter(fileName);
+ writer.append(javaCodeSource);
+ writer.close();
+// }
+ OCLstdlibTables.LIBRARY.getClass(); // Ensure coherent initialization
+ try {
+ Class<?> txClass = OCL2JavaFileObject.loadClass(qualifiedName, javaCodeSource);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ throw e;
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore
index 47ce33161..535b09347 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore
@@ -1,7 +1,7 @@
<?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="HLSTree" nsURI="platform:/resource/ICMT2013/HLSTree.ecore" nsPrefix="pfx">
- <eClassifiers xsi:type="ecore:EDataType" name="HLS" instanceTypeName="HLS" serializable="false"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="HLS" instanceClassName="test.hls.HLS"/>
<eClassifiers xsi:type="ecore:EClass" name="HLSNode">
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//HLSNode"
eOpposite="#//HLSNode/children"/>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore
index 555d11809..f5cf30e8a 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore
@@ -2,7 +2,7 @@
<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="HSV2HLS" nsURI="platform:/resource/ICMT2013/ColoredTree2Tree.ecore"
nsPrefix="pfx">
- <eClassifiers xsi:type="ecore:EDataType" name="RGB" serializable="false"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="RGB" instanceClassName="test.middle.RGB"/>
<eClassifiers xsi:type="ecore:EClass" name="HSVNode2HLSNode">
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//HSVNode2HLSNode"
eOpposite="#//HSVNode2HLSNode/children"/>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel
new file mode 100644
index 000000000..dbf588df4
--- /dev/null
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel
@@ -0,0 +1,37 @@
+<?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.qvtd.xtext.qvtcore.tests/src-gen"
+ modelPluginID="org.eclipse.qvtd.xtext.qvtcore.tests" modelName="HSV2HLS" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>HSV2HLS.ecore</foreignModel>
+ <genPackages prefix="HSV2HLS" basePackage="test.middle" disposableProviderFactory="true"
+ ecorePackage="HSV2HLS.ecore#/">
+ <genDataTypes ecoreDataType="HSV2HLS.ecore#//RGB"/>
+ <genClasses ecoreClass="HSV2HLS.ecore#//HSVNode2HLSNode">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference HSV2HLS.ecore#//HSVNode2HLSNode/parent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference HSV2HLS.ecore#//HSVNode2HLSNode/children"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference HSV2HLS.ecore#//HSVNode2HLSNode/hsv"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference HSV2HLS.ecore#//HSVNode2HLSNode/hls"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute HSV2HLS.ecore#//HSVNode2HLSNode/rgb"/>
+ </genClasses>
+ </genPackages>
+ <genPackages prefix="HSVTree" basePackage="test.hsv" disposableProviderFactory="true"
+ ecorePackage="HSVTree.ecore#/">
+ <genDataTypes ecoreDataType="HSVTree.ecore#//HSV"/>
+ <genClasses ecoreClass="HSVTree.ecore#//HSVNode">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference HSVTree.ecore#//HSVNode/parent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference HSVTree.ecore#//HSVNode/children"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute HSVTree.ecore#//HSVNode/hsv"/>
+ </genClasses>
+ </genPackages>
+ <genPackages prefix="HLSTree" basePackage="test.hls" disposableProviderFactory="true"
+ ecorePackage="HLSTree.ecore#/">
+ <genDataTypes ecoreDataType="HLSTree.ecore#//HLS"/>
+ <genClasses ecoreClass="HLSTree.ecore#//HLSNode">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference HLSTree.ecore#//HLSNode/parent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference HLSTree.ecore#//HLSNode/children"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute HLSTree.ecore#//HLSNode/hls"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti
index 690d182fb..64a1367dd 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti
@@ -11,14 +11,14 @@ query ColorChanger::rgb2hls(color : HSV2HLS::RGB) : HLSTree::HLS;
query ColorChanger::rgb2hsv(color : HSV2HLS::RGB) : HSVTree::HSV;
map HSV2MiddleRoot in ColorChanger {
- hsv() { hsvRoot : HSVNode | hsvRoot.parent = null;}
+ hsv(hsvRoot : HSVNode | hsvRoot.parent = null;) {}
where() {
realize middleRoot : HSVNode2HLSNode |
middleRoot.hsv := hsvRoot;
middleRoot.rgb := hsv2rgb(hsvRoot.hsv);
}
map HSV2MiddleRecursion {
- hsvNode := hsvRoot.children;
+ hsvNode <= hsvRoot.children;
middleParent := middleRoot;
}
map Middle2HLSRoot {
@@ -35,7 +35,7 @@ map HSV2MiddleRecursion in ColorChanger {
middleNode.rgb := hsv2rgb(hsvNode.hsv);
}
map HSV2MiddleRecursion {
- hsvNode := hsvNode.children;
+ hsvNode <= hsvNode.children;
middleParent := middleNode;
}
}
@@ -48,7 +48,7 @@ map Middle2HLSRoot in ColorChanger {
hlsNode.hls := rgb2hls(middleNode.rgb);
}
map Middle2HLSRecursion {
- middleNode := middleNode.children;
+ middleNode <= middleNode.children;
}
}
@@ -60,6 +60,6 @@ map Middle2HLSRecursion in ColorChanger {
hlsNode.hls := rgb2hls(middleNode.rgb);
}
map Middle2HLSRecursion {
- middleNode := middleNode.children;
+ middleNode <= middleNode.children;
}
}
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore
index d52198127..5004f5fb2 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore
@@ -1,7 +1,7 @@
<?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="HSVTree" nsURI="platform:/resource/ICMT2013/HSVTree.ecore" nsPrefix="pfx">
- <eClassifiers xsi:type="ecore:EDataType" name="HSV" serializable="false"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="HSV" instanceClassName="test.hsv.HSV"/>
<eClassifiers xsi:type="ecore:EClass" name="HSVNode">
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//HSVNode"
eOpposite="#//HSVNode/children"/>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/text/.gitignore b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/text/.gitignore
new file mode 100644
index 000000000..457360fa6
--- /dev/null
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/text/.gitignore
@@ -0,0 +1 @@
+/description.txt

Back to the top