diff options
author | Adolfo SBH | 2016-02-02 14:28:45 +0000 |
---|---|---|
committer | Ed Willink | 2016-02-03 14:55:42 +0000 |
commit | acff9ebb75ea12381ecdb762e2c1221715acec22 (patch) | |
tree | a664cd7acd03a1e568282b2a81b855a3c2ca3ce0 | |
parent | 1752b04277aa77c8dd0f9ae0a88bed8f32664521 (diff) | |
download | org.eclipse.qvtd-acff9ebb75ea12381ecdb762e2c1221715acec22.tar.gz org.eclipse.qvtd-acff9ebb75ea12381ecdb762e2c1221715acec22.tar.xz org.eclipse.qvtd-acff9ebb75ea12381ecdb762e2c1221715acec22.zip |
[cs2as] - Make the OCL2QVTiCGed Tx compiler use the new scheduler 0.13.0M5
- Some cleanup
17 files changed, 482 insertions, 630 deletions
diff --git a/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCGedQVTiTransformation.java b/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCGedQVTiTransformation.java index 910505657..ae1993f6a 100644 --- a/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCGedQVTiTransformation.java +++ b/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCGedQVTiTransformation.java @@ -20,11 +20,11 @@ import org.eclipse.emf.mwe.core.issues.Issues; import org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent; import org.eclipse.emf.mwe.core.monitor.ProgressMonitor; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.pivot.utilities.XMIUtil; import org.eclipse.qvtd.cs2as.compiler.CS2ASJavaCompilerParameters; import org.eclipse.qvtd.cs2as.compiler.OCL2QVTiCGTxCompiler; import org.eclipse.qvtd.cs2as.compiler.internal.CS2ASJavaCompilerParametersImpl; - public class GenerateCGedQVTiTransformation extends AbstractWorkflowComponent { private final static @NonNull String BACKSLASH = "/"; diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/OCL2QVTiCGTxCompiler.java b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/OCL2QVTiCGTxCompiler.java index d93408235..022ea8c36 100644 --- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/OCL2QVTiCGTxCompiler.java +++ b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/OCL2QVTiCGTxCompiler.java @@ -11,6 +11,8 @@ package org.eclipse.qvtd.cs2as.compiler; +import java.util.HashMap; +import java.util.Map; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.ResourceSet; @@ -18,11 +20,13 @@ import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.ocl.pivot.evaluation.tx.Transformer; import org.eclipse.ocl.pivot.resource.BasicProjectManager; -import org.eclipse.ocl.pivot.utilities.OCL; +import org.eclipse.ocl.pivot.utilities.XMIUtil; import org.eclipse.ocl.xtext.completeocl.CompleteOCLStandaloneSetup; -import org.eclipse.qvtd.compiler.internal.etl.PivotModel; +import org.eclipse.qvtd.compiler.CompilerChain.Key; import org.eclipse.qvtd.cs2as.compiler.internal.CS2ASJavaCompilerImpl; -import org.eclipse.qvtd.cs2as.compiler.internal.OCL2QVTiBroker; +import org.eclipse.qvtd.cs2as.compiler.internal.OCL2QVTiCompilerChain; +import org.eclipse.qvtd.pivot.qvtbase.Transformation; +import org.eclipse.qvtd.pivot.qvtcore.QVTcorePivotStandaloneSetup; import org.eclipse.qvtd.pivot.qvtimperative.utilities.QVTimperative; import org.eclipse.qvtd.xtext.qvtimperative.QVTimperativeStandaloneSetup; @@ -31,6 +35,7 @@ public class OCL2QVTiCGTxCompiler implements OCL2JavaTxCompiler<CS2ASJavaCompile static { CompleteOCLStandaloneSetup.doSetup(); QVTimperativeStandaloneSetup.doSetup(); + QVTcorePivotStandaloneSetup.doSetup(); } @Override @@ -41,33 +46,38 @@ public class OCL2QVTiCGTxCompiler implements OCL2JavaTxCompiler<CS2ASJavaCompile @Override public Class<? extends Transformer> compileTransformation(@NonNull URI oclDocURI, @NonNull CS2ASJavaCompilerParameters params, @Nullable ResourceSet rSet, @NonNull String tracePropertyName) throws Exception { + return this.compileTransformation(rSet, params, tracePropertyName, oclDocURI); + } + + public Class<? extends Transformer> compileTransformation(@Nullable ResourceSet rSet, @NonNull CS2ASJavaCompilerParameters params, @NonNull String tracePropertyName, @NonNull URI oclDocURI, URI... extendedOCLDocURIs) + throws Exception { QVTimperative qvt = QVTimperative.newInstance(BasicProjectManager.CLASS_PATH, rSet); try { - PivotModel qvtiTransf = executeOCL2QVTi_MTC(qvt, oclDocURI.trimSegments(1), oclDocURI.lastSegment(), tracePropertyName); - return createCompiler().compileTransformation(qvt, qvtiTransf.getTransformation(), (CS2ASJavaCompilerParameters) params); + Transformation qvtiTransf = executeOCL2QVTi_CompilerChain(qvt, tracePropertyName, oclDocURI, extendedOCLDocURIs); + return createCompiler().compileTransformation(qvt, qvtiTransf, (CS2ASJavaCompilerParameters) params); } finally { - qvt.dispose(); + qvt.dispose(); } } protected CS2ASJavaCompilerImpl createCompiler() { return new CS2ASJavaCompilerImpl(); } - - /** - * @param ocl - * @param baseURI - * @param oclDocName - * @param tracePropName the name of the CS2AS traceability property - * @return the {@link PivotModel} corresponding to the final QVTi transformation - * @throws Exception - */ - protected PivotModel executeOCL2QVTi_MTC(OCL ocl, URI baseURI, String oclDocName, String tracePropName) throws Exception { - - // FIXME Map<?, ?> savingOptions = this.savingOptions == null ? XMIUtil.createSaveOptions() : this.savingOptions; - OCL2QVTiBroker mtc = new OCL2QVTiBroker(baseURI, oclDocName, ocl, null, true, tracePropName); - mtc.execute(); - return mtc.getiModel(); + + protected Transformation executeOCL2QVTi_CompilerChain(QVTimperative qvt, String tracePropName, URI oclDocURI, URI... extendedOCLDocURIs) throws Exception { + + Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> options = new HashMap<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>>(); + // OCL2QVTp options + @NonNull Map<@NonNull Key<?>, @Nullable Object> ocl2qvtpOptions = new HashMap<@NonNull Key<?>, @Nullable Object>(); + ocl2qvtpOptions.put(OCL2QVTiCompilerChain.TRACE_PROPERTY_NAME_KEY, tracePropName); + // Default options + @NonNull Map<@NonNull Key<?>, @Nullable Object> defStepOptions = new HashMap<@NonNull Key<?>, @Nullable Object>(); + defStepOptions.put(OCL2QVTiCompilerChain.SAVE_OPTIONS_KEY, XMIUtil.createSaveOptions()); // FIXME parametrize save options ? + options.put(OCL2QVTiCompilerChain.DEFAULT_STEP, defStepOptions); + options.put(OCL2QVTiCompilerChain.QVTP_STEP, ocl2qvtpOptions); + + OCL2QVTiCompilerChain compilerChain = new OCL2QVTiCompilerChain(qvt, options, oclDocURI, extendedOCLDocURIs); + return compilerChain.compile(); } } diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiBroker.java b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiBroker.java deleted file mode 100644 index b3b44e012..000000000 --- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiBroker.java +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014, 2015 Willink Transformations Ltd., University of York 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: - * Adolfo Sanchez-Barbudo Herrera (University of York) - initial API and implementation - *******************************************************************************/ -package org.eclipse.qvtd.cs2as.compiler.internal; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.ocl.pivot.utilities.OCL; -import org.eclipse.qvtd.compiler.internal.etl.EtlTask; -import org.eclipse.qvtd.compiler.internal.etl.MtcBroker; -import org.eclipse.qvtd.compiler.internal.etl.PivotModel; -import org.eclipse.qvtd.compiler.internal.etl.QvtMtcExecutionException; - -/** - * This is a quick extension of the MtcBroker, to exercise the OCL2QVTi code in test cases - * - * @author asbh500 - * - */ -public class OCL2QVTiBroker extends MtcBroker { - - private static final String OCL2QVTP_MIDDLE_MODEL = "etl/ocl2qvtp.etl"; - - private static final String OCL2QVTP_MIDDLE_FOLDED = "etl/ocl2qvtp_v2.etl"; - - private static final String OCLSTDLIB_URI = "http://www.eclipse.org/ocl/2015/Library.oclas"; - - private static final String ECORE_URI = "http://www.eclipse.org/emf/2002/Ecore"; - - private static final String PIVOT_URI = "http://www.eclipse.org/ocl/2015/Pivot"; - - private static final String QVTB_URI ="http://www.eclipse.org/qvt/2015/QVTbase"; - - private static final String QVTCB_URI = "http://www.eclipse.org/qvt/2015/QVTcoreBase"; - - private static final String QVTI_URI = "http://www.eclipse.org/qvt/2015/QVTimperative"; - - private static final String QVTI_FULL_NS = QVTI_URI + ',' + QVTCB_URI + ',' + QVTB_URI + ',' + PIVOT_URI; - - private static final String TRACES_FULL_NS = PIVOT_URI + ',' + ECORE_URI; - - private @NonNull List<URI> oclASUris = new ArrayList<URI>(); - private @Nullable List<URI> tracesASUris = new ArrayList<URI>(); - private @Nullable List<URI> qvtpUris = new ArrayList<URI>(); - private @NonNull PivotModelUtil pmUtil; - private @Nullable String traceabilityPropName; - - /** - * @param baseURI the base {@link URI} on which the OCL document resides - * @param oclDocName the name of the OCL document (e.g myCS2AS.ocl) - * @param ocl an {@link OCL} instance to parse the OCL document - * @param savingOptions some optional savingOptions - * @throws Exception - */ - public OCL2QVTiBroker(@NonNull URI baseURI, @NonNull String oclDocName, @NonNull OCL ocl, @Nullable Map<?, ?> savingOptions ) - throws Exception { - this(baseURI, Collections.singletonList(oclDocName), ocl, savingOptions); - } - - /** - * @param baseURI the base {@link URI} on which the OCL document resides - * @param oclDocName the name of the OCL document (e.g myCS2AS.ocl) - * @param ocl an {@link OCL} instance to parse the OCL document - * @param savingOptions some optional savingOptions - * @param usesMiddleFoldedInInputs true if the generated QVTp transformation should use middle folded in inputs approach - * @param traceabilityPropName the name of the traceability property of CS elements (when using middleFoldedInInputs) - * @throws Exception - */ - public OCL2QVTiBroker(@NonNull URI baseURI, @NonNull String oclDocName, @NonNull OCL ocl, @Nullable Map<?, ?> savingOptions, - boolean usesMiddleFoldedInInputs, @Nullable String traceabilityPropName) - throws Exception { - - this(baseURI, Collections.singletonList(oclDocName), ocl, savingOptions, usesMiddleFoldedInInputs, traceabilityPropName); - - } - - - public OCL2QVTiBroker(@NonNull URI baseURI, @NonNull List<String> oclDocs, @NonNull OCL ocl, @Nullable Map<?, ?> savingOptions ) - throws Exception { - this(baseURI, oclDocs, ocl, savingOptions, true, "ast"); - } - public OCL2QVTiBroker(@NonNull URI baseURI, @NonNull List<String> oclDocs, @NonNull OCL ocl, @Nullable Map<?, ?> savingOptions, - boolean usesMiddleFoldedInInputs, @Nullable String traceabilityPropName) - throws Exception { - - super(baseURI, oclDocs.get(0), ocl.getEnvironmentFactory(), savingOptions); - this.pmUtil = new PivotModelUtil( ocl.getEnvironmentFactory()); - for (String oclDocName : oclDocs) { - URI oclDocUri = baseURI.appendSegment(oclDocName); - URI oclASUri = ocl.parse(oclDocUri).getURI(); - URI modelsBaseURI = oclASUri.trimFileExtension().trimFileExtension(); - this.oclASUris.add(oclASUri); - this.qvtpUris.add(modelsBaseURI.appendFileExtension("qvtp.qvtias")); - if (!usesMiddleFoldedInInputs) { - this.tracesASUris.add(modelsBaseURI.appendFileExtension("ecore.oclas")); - } - } - this.traceabilityPropName = traceabilityPropName; - } - @Override - public void execute() throws QvtMtcExecutionException { - - pModel = prepareQVTpModel(); - - prepare(); - sModel = qvtpToQvts(pModel); - qvtpFlatScheduling(pModel, sModel); - // qvtpNestingScheduling(pModel, sModel); - if (createGraphml) { - qvtsToGraphML(sModel); - } - iModel = qvtpQvtsToQvti(pModel, sModel); - } - - - public Resource newExecute() throws QvtMtcExecutionException { - pModel = prepareQVTpModel(); - - prepare(); - try { - iResource = qvtp2qvti(true); - } catch (QvtMtcExecutionException e) { - throw e; - } catch (IOException e) { - throw new QvtMtcExecutionException("Failed to create regions", e); - } - return iResource; - } - - - protected PivotModel prepareQVTpModel() throws QvtMtcExecutionException { - - if (oclASUris.size() > 1) { - throw new IllegalStateException("Deprecated OCL2QVTiBroker doesn't support multiple ocl documents. Use "+ OCL2QVTiCompilerChain.class.getName()); - } - URI oclASUri = oclASUris.get(0); - PivotModel pModel = (tracesASUris.isEmpty()) ? runOCL2QVTp_MiddleFolded(oclASUri, qvtpUris.get(0), traceabilityPropName) - : runOCL2QVTp_MiddleModel(oclASUri, qvtpUris.get(0), tracesASUris.get(0)); - - assertNoResourceErrors("pModel", pModel.getResource()); - return pModel; - } - protected PivotModel runOCL2QVTp_MiddleModel (URI oclDocURI, URI qvtiFileURI, URI tracesMMURI) throws QvtMtcExecutionException { - - try { - EtlTask etl = new EtlTask(OCL2QVTiBroker.class.getResource(OCL2QVTP_MIDDLE_MODEL).toURI()); - pModel = createQVTpModel(qvtiFileURI); - etl.addModel(createOCLModel(oclDocURI)); - etl.addModel(pModel); - etl.addModel(createTracesModel(tracesMMURI)); - etl.addModel(createOclStdLibModel()); - etl.execute(); - - } catch (URISyntaxException e) { - throw new QvtMtcExecutionException("Exception launching OCL 2 QVTp transformation", e); - } - - return pModel; - } - - protected PivotModel runOCL2QVTp_MiddleFolded (URI oclDocURI, URI qvtiFileURI) throws QvtMtcExecutionException { - return runOCL2QVTp_MiddleFolded(oclDocURI, qvtiFileURI, "ast"); - } - - protected PivotModel runOCL2QVTp_MiddleFolded (URI oclDocURI, URI qvtiFileURI, String traceabilityPropName) throws QvtMtcExecutionException { - - PivotModel oclModel = createOCLModel(oclDocURI); - pModel= createQVTpModel(qvtiFileURI); - - OCL2QVTp ocl2qvtp = new OCL2QVTp(environmentFactory, traceabilityPropName); - Resource resource = ocl2qvtp.run(oclModel.getResource().getResourceSet() , oclDocURI); // NB. cModel is the .ocl doc - - pModel.getResource().getContents().addAll(resource.getContents()); - return pModel; - } - - private PivotModel createOCLModel(URI oclDocURI) throws QvtMtcExecutionException { - String oclDocModelName = "OCL"; - return pmUtil.createPivotModel(oclDocURI.toString(), oclDocModelName, "", PIVOT_URI, true, false, true, true, true, savingOptions); - - } - - private PivotModel createQVTpModel(URI qvtpFileURI) throws QvtMtcExecutionException { - String qvtiModelName = "QVTp"; - String qvtiModelAlises = "QVTi,QVT"; // FIXME further steps should configure the aliases - return pmUtil.createPivotModel(qvtpFileURI.toString(), qvtiModelName, qvtiModelAlises, QVTC_FULL_NS, false, true, false, true, true, savingOptions); - } - - private PivotModel createTracesModel(URI tracesMMURI) throws QvtMtcExecutionException { - String tracesMModelName = "MiddleMM"; - return pmUtil.createPivotModel(tracesMMURI.toString(), tracesMModelName, "", TRACES_FULL_NS , true, false, true, false, true, savingOptions); - } - - private PivotModel createOclStdLibModel() throws QvtMtcExecutionException { - String oclStdlibName = "OclStdLib"; - return pmUtil.createPivotModel(OCLSTDLIB_URI, oclStdlibName, "", PIVOT_URI, true, false, true, false, true, savingOptions); - } -} diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.qvtd.cs2as.compiler.tests/META-INF/MANIFEST.MF index 5151e347e..cf5590c71 100644 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/META-INF/MANIFEST.MF @@ -17,19 +17,4 @@ Require-Bundle: org.junit, org.eclipse.xsd;bundle-version="[2.11.0,3.0.0)";resolution:=optional Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: example1.source, - example1.source.impl, - example1.source.util, - example1.target, - example1.target.impl, - example1.target.util, - example2.classes, - example2.classes.impl, - example2.classes.util, - example2.classescs, - example2.classescs.impl, - example2.classescs.util, - example2.classescstraces, - example2.classescstraces.impl, - example2.classescstraces.util, - org.eclipse.qvtd.cs2as.compiler.tests +Export-Package: org.eclipse.qvtd.cs2as.compiler.tests diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/ExecutionBenchmarks.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/ExecutionBenchmarks.java index 7235b1431..a76d8ce73 100644 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/ExecutionBenchmarks.java +++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/ExecutionBenchmarks.java @@ -41,7 +41,7 @@ import org.eclipse.qvtd.xtext.qvtimperative.QVTimperativeStandaloneSetup; import org.junit.Before; import org.junit.Test; -import cg._classescs2as_qvtp_qvtias.classescs2as_qvtp_qvtias; +import cg._classescs2as_qvtp_qvtcas.classescs2as_qvtp_qvtcas; /** * @author asbh500 @@ -126,13 +126,13 @@ public class ExecutionBenchmarks extends LoadTestCase { URI baseURI = TESTS_BASE_URI.appendSegment("example2"); - trackExample_CG(myQVT, classescs2as_qvtp_qvtias.class, baseURI, "model1", results); - trackExample_CG(myQVT, classescs2as_qvtp_qvtias.class, baseURI, "model2", results); - trackExample_CG(myQVT, classescs2as_qvtp_qvtias.class, baseURI, "model3", results); - trackExample_CG(myQVT, classescs2as_qvtp_qvtias.class, baseURI, "model4", results); - trackExample_CG(myQVT, classescs2as_qvtp_qvtias.class, baseURI, "model5", results); - trackExample_CG(myQVT, classescs2as_qvtp_qvtias.class, baseURI, "model6", results); - trackExample_CG(myQVT, classescs2as_qvtp_qvtias.class, baseURI, "model7", results); + trackExample_CG(myQVT, classescs2as_qvtp_qvtcas.class, baseURI, "model1", results); + trackExample_CG(myQVT, classescs2as_qvtp_qvtcas.class, baseURI, "model2", results); + trackExample_CG(myQVT, classescs2as_qvtp_qvtcas.class, baseURI, "model3", results); + trackExample_CG(myQVT, classescs2as_qvtp_qvtcas.class, baseURI, "model4", results); + trackExample_CG(myQVT, classescs2as_qvtp_qvtcas.class, baseURI, "model5", results); + trackExample_CG(myQVT, classescs2as_qvtp_qvtcas.class, baseURI, "model6", results); + trackExample_CG(myQVT, classescs2as_qvtp_qvtcas.class, baseURI, "model7", results); myQVT.dispose(); diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java index 74d7ebc94..e8bd74ca8 100644 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java +++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java @@ -229,13 +229,22 @@ public class OCL2QVTiTestCases extends LoadTestCase { Resource r = rSet.createResource(modelURI); r.save(TestsXMLUtil.defaultSavingOptions); } + + protected @NonNull Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> createTestCasesCompilerOptions() { + Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> options = new HashMap<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>>(); + Map<@NonNull Key<?>, @Nullable Object> defStepOptions = new HashMap<@NonNull Key<?>, @Nullable Object>(); + defStepOptions.put(OCL2QVTiCompilerChain.SAVE_OPTIONS_KEY, TestsXMLUtil.defaultSavingOptions); + // TODO problem hen validating defStepOptions.put(OCL2QVTiCompilerChain.VALIDATE_KEY, true); + options.put(OCL2QVTiCompilerChain.DEFAULT_STEP, defStepOptions); + return options; + } } // For testing purpose private static class OCL2QVTiCompilerTester extends OCL2QVTiCompilerChain { public OCL2QVTiCompilerTester(@NonNull URI baseURI, @NonNull String oclDocName, @NonNull QVTimperative metaModelManager) { - super(metaModelManager, createTestCasesCompilerOptions(), baseURI.appendSegment(oclDocName)); + super(metaModelManager, null, baseURI.appendSegment(oclDocName)); } // For testing purpose @@ -716,13 +725,6 @@ public class OCL2QVTiTestCases extends LoadTestCase { return (ASResource) asResource; } - private static @NonNull Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> createTestCasesCompilerOptions() { - Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> options = new HashMap<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>>(); - Map<@NonNull Key<?>, @Nullable Object> defStepOptions = new HashMap<@NonNull Key<?>, @Nullable Object>(); - defStepOptions.put(OCL2QVTiCompilerChain.SAVE_OPTIONS_KEY, TestsXMLUtil.defaultSavingOptions); - // TODO problem hen validating defStepOptions.put(OCL2QVTiCompilerChain.VALIDATE_KEY, true); - options.put(OCL2QVTiCompilerChain.DEFAULT_STEP, defStepOptions); - return options; - } + } diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/common/LookupResult.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/common/LookupResult.java deleted file mode 100644 index 25ba0e27e..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/common/LookupResult.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.eclipse.qvtd.cs2as.compiler.tests.common; - -import java.util.List; - -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.Nullable; - -public interface LookupResult<NE> { - - @Nullable - NE getSingleResult(); - - @NonNull - List<NE> getAllResult(); - - int size(); -} diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/common/LookupResultImpl.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/common/LookupResultImpl.java deleted file mode 100644 index f9d4a93d6..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/common/LookupResultImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.eclipse.qvtd.cs2as.compiler.tests.common; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.Nullable; - -public class LookupResultImpl<NE> implements LookupResult<NE> { - - private List<NE> results = new ArrayList<NE>(); - - public LookupResultImpl(List<NE> results){ - this.results.addAll(results); - } - - @Override - @NonNull - public List<NE> getAllResult() { - return Collections.unmodifiableList(results); - } - - @Override - @Nullable - public NE getSingleResult() { - return results.size() == 0 ? null : results.get(0); - } - - @Override - public int size() { - return results.size(); - } -}
\ No newline at end of file diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/.gitignore deleted file mode 100644 index 635be6076..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/new_cg/ diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/.gitignore index e0b49e53c..2479ef96b 100644 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/.gitignore +++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/.gitignore @@ -1,5 +1,9 @@ -/_SimplerKiama_qvtp_qvtias/ +/_classescs2asV2_qvtp_qvtcas/ /_classescs2asV2_qvtp_qvtias/ +/_SimplerKiama_qvtp_qvtcas/ +/_Source2Target_qvtp_qvtcas/ /_Source2Target_qvtp_qvtias/ +/_Source2TargetBase_qvtp_qvtcas/ /_Source2TargetBase_qvtp_qvtias/ +/_Source2TargetDerived_qvtp_qvtcas/ /_Source2TargetDerived_qvtp_qvtias/ diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_SimplerKiama_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_SimplerKiama_qvtp_qvtcas/.gitignore deleted file mode 100644 index 5cd66bd36..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_SimplerKiama_qvtp_qvtcas/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/SimplerKiama_qvtp_qvtcas.java diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetBase_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetBase_qvtp_qvtcas/.gitignore deleted file mode 100644 index 00e1711fe..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetBase_qvtp_qvtcas/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/Source2TargetBase_qvtp_qvtcas.java diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetDerived_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetDerived_qvtp_qvtcas/.gitignore deleted file mode 100644 index 5760badd2..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetDerived_qvtp_qvtcas/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/Source2TargetDerived_qvtp_qvtcas.java diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtcas/.gitignore deleted file mode 100644 index 79082dd9f..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtcas/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/Source2Target_qvtp_qvtcas.java diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2asV2_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2asV2_qvtp_qvtcas/.gitignore deleted file mode 100644 index 8460b46e3..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2asV2_qvtp_qvtcas/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/classescs2asV2_qvtp_qvtcas.java diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtcas/.gitignore deleted file mode 100644 index 97be367b8..000000000 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtcas/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/classescs2as_qvtp_qvtcas.java diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtias/classescs2as_qvtp_qvtias.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtcas/classescs2as_qvtp_qvtcas.java index 259f97621..985c83c3b 100644 --- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtias/classescs2as_qvtp_qvtias.java +++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtcas/classescs2as_qvtp_qvtcas.java @@ -7,7 +7,7 @@ * Do not edit it. ********************************************************************************/ -package cg._classescs2as_qvtp_qvtias; +package cg._classescs2as_qvtp_qvtcas; import example2.classes.ClassesFactory; import example2.classes.ClassesPackage; @@ -15,20 +15,26 @@ import example2.classes.Package; import example2.classes.Root; import example2.classes.lookup.util.ClassesLookupResult; import example2.classes.lookup.util.ClassesLookupSolver; +import example2.classes.util.Visitable; import example2.classescs.ClassCS; import example2.classescs.ClassescsPackage; import example2.classescs.PackageCS; import example2.classescs.PathElementCS; +import example2.classescs.PathNameCS; import example2.classescs.RootCS; import java.util.Iterator; import java.util.List; +import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EcorePackage; import org.eclipse.ocl.pivot.evaluation.Executor; import org.eclipse.ocl.pivot.ids.ClassId; +import org.eclipse.ocl.pivot.ids.CollectionTypeId; import org.eclipse.ocl.pivot.ids.IdManager; import org.eclipse.ocl.pivot.ids.IdResolver; +import org.eclipse.ocl.pivot.ids.NsURIPackageId; +import org.eclipse.ocl.pivot.ids.RootPackageId; import org.eclipse.ocl.pivot.ids.TypeId; -import org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation; +import org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation; import org.eclipse.ocl.pivot.library.collection.CollectionSizeOperation; import org.eclipse.ocl.pivot.library.collection.OrderedCollectionFirstOperation; import org.eclipse.ocl.pivot.library.collection.OrderedCollectionLastOperation; @@ -37,13 +43,17 @@ import org.eclipse.ocl.pivot.library.numeric.NumericMinusOperation; import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation; import org.eclipse.ocl.pivot.utilities.ClassUtil; import org.eclipse.ocl.pivot.utilities.ValueUtil; +import org.eclipse.ocl.pivot.values.CollectionValue; import org.eclipse.ocl.pivot.values.IntegerValue; import org.eclipse.ocl.pivot.values.InvalidValueException; +import org.eclipse.ocl.pivot.values.OrderedSetValue; import org.eclipse.ocl.pivot.values.SequenceValue; +import org.eclipse.ocl.pivot.values.SetValue; import org.eclipse.ocl.xtext.base.cs2as.tx.AbstractCS2ASTransformer; +import org.eclipse.qvtd.pivot.qvtimperative.library.model.RootObjectsOperation; /** - * The classescs2as_qvtp_qvtias transformation: + * The classescs2as_qvtp_qvtcas transformation: * <p> * Construct with an evaluator * <br> @@ -54,16 +64,19 @@ import org.eclipse.ocl.xtext.base.cs2as.tx.AbstractCS2ASTransformer; * Extract each output model with {@link getRootObjects(String)} */ @SuppressWarnings("nls") -public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer +public class classescs2as_qvtp_qvtcas extends AbstractCS2ASTransformer { public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull RootPackageId PACKid_$metamodel$ = IdManager.getRootPackageId("$metamodel$"); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0 = IdManager.getNsURIPackageId("http://cs2as/tests/example2/classes/1.0", null, ClassesPackage.eINSTANCE); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0 = IdManager.getNsURIPackageId("http://cs2as/tests/example2/classescs/1.0", null, ClassescsPackage.eINSTANCE); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_emf_s_2002_s_Ecore = IdManager.getNsURIPackageId("http://www.eclipse.org/emf/2002/Ecore", null, EcorePackage.eINSTANCE); - public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Class = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0.getClassId("Class", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbaseLibrary = IdManager.getNsURIPackageId("http://www.eclipse.org/qvt/2015/QVTbaseLibrary", "qvtbaselib", null); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Class = PACKid_$metamodel$.getClassId("Class", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_ClassCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("ClassCS", 0); - public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Class_0 = PACKid_$metamodel$.getClassId("Class", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Class_0 = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0.getClassId("Class", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_EObject = PACKid_http_c_s_s_www_eclipse_org_s_emf_s_2002_s_Ecore.getClassId("EObject", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Model = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbaseLibrary.getClassId("Model", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_OclElement = PACKid_$metamodel$.getClassId("OclElement", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Package = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0.getClassId("Package", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_PackageCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("PackageCS", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_PathElementCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("PathElementCS", 0); @@ -72,40 +85,23 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_RootCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("RootCS", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Visitable = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0.getClassId("Visitable", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull IntegerValue INT_1 = ValueUtil.integerValueOf("1"); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId COL_CLSSid_ClassCS = TypeId.COLLECTION.getSpecializedId(CLSSid_ClassCS); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId COL_CLSSid_PackageCS = TypeId.COLLECTION.getSpecializedId(CLSSid_PackageCS); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_ClassCS = TypeId.ORDERED_SET.getSpecializedId(CLSSid_ClassCS); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_PackageCS = TypeId.ORDERED_SET.getSpecializedId(CLSSid_PackageCS); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_PathElementCS = TypeId.ORDERED_SET.getSpecializedId(CLSSid_PathElementCS); - public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SEQ_CLSSid_Class = TypeId.SEQUENCE.getSpecializedId(CLSSid_Class); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SEQ_CLSSid_Class = TypeId.SEQUENCE.getSpecializedId(CLSSid_Class_0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SEQ_CLSSid_Package = TypeId.SEQUENCE.getSpecializedId(CLSSid_Package); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_CLSSid_ClassCS = TypeId.SET.getSpecializedId(CLSSid_ClassCS); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_CLSSid_OclElement = TypeId.SET.getSpecializedId(CLSSid_OclElement); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_CLSSid_PackageCS = TypeId.SET.getSpecializedId(CLSSid_PackageCS); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_CLSSid_RootCS = TypeId.SET.getSpecializedId(CLSSid_RootCS); - /* - * Array of the ClassIds of each class for which allInstances() may be invoked. Array index is the ClassIndex. - */ - private static final /*@NonNull*/ ClassId[] classIndex2classId = new /*@NonNull*/ ClassId[]{ - CLSSid_ClassCS, // 0 => ClassCS - CLSSid_PackageCS, // 1 => PackageCS - CLSSid_RootCS // 2 => RootCS - }; - - /* - * Mapping from each ClassIndex to all the ClassIndexes to which an object of the outer index - * may contribute results to an allInstances() invocation. - * Non trivial inner arrays arise when one ClassId is a derivation of another and so an - * instance of the derived classId contributes to derived and inherited ClassIndexes. - */ - private final static int /*@NonNull*/ [] /*@NonNull*/ [] classIndex2allClassIndexes = new int /*@NonNull*/ [] /*@NonNull*/ [] { - {0}, // 0 : ClassCS -> {ClassCS} - {1}, // 1 : PackageCS -> {PackageCS} - {2} // 2 : RootCS -> {RootCS} - }; private final ClassesLookupSolver lookupSolver = new ClassesLookupSolver(executor); - public classescs2as_qvtp_qvtias(final /*@NonNull*/ Executor executor) throws ReflectiveOperationException { - super(executor, new /*@NonNull*/ String[] {"leftCS", "rightAS"}, null, classIndex2classId, classIndex2allClassIndexes); + public classescs2as_qvtp_qvtcas(final /*@NonNull*/ Executor executor) throws ReflectiveOperationException { + super(executor, new /*@NonNull*/ String[] {"leftCS", "rightAS"}, null, null, null); } public boolean run() throws ReflectiveOperationException { @@ -189,8 +185,183 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer /** * - * map cClassCS_2_Class in classescs2as_qvtp_qvtias { - * leftCS (classCS : classescs::ClassCS[1]; + * map __root__ in classescs2as_qvtp_qvtcas { + * + * where ( |) + * {roots : Set(OclElement) = leftCS.rootObjects() + * ; + * _'\u00ABchild-ClassCS\u00BB' : Set(classescs::ClassCS[*|1]) = roots->selectByKind(classescs::ClassCS) + * ; + * _'\\u00ABjoin-ClassCS-0\\u00BB' : UniqueCollection(classescs::ClassCS[*|1]) = _'\u00ABchild-ClassCS\u00BB'; + * _'\u00ABchild-PackageCS\u00BB' : Set(classescs::PackageCS[*|1]) = roots->selectByKind(classescs::PackageCS) + * ; + * _'\\u00ABjoin-PackageCS-0\\u00BB' : UniqueCollection(classescs::PackageCS[*|1]) = _'\u00ABchild-PackageCS\u00BB'; + * _'\\u00ABjoin-PackageCS-1\\u00BB' : UniqueCollection(classescs::PackageCS[*|1]) = _'\u00ABchild-PackageCS\u00BB'; + * _'\u00ABchild-RootCS\u00BB' : Set(classescs::RootCS[*|1]) = roots->selectByKind(classescs::RootCS) + * ; + * _'\\u00ABjoin-RootCS-0\\u00BB' : Set(classescs::RootCS[*|1]) = _'\u00ABchild-RootCS\u00BB'; + * |} + * for loop0 : classescs::RootCS in _'\\u00ABjoin-RootCS-0\\u00BB' { + * + * map _'classescs%RootCS%ownedPackages' { + * _'\\u00ABjoin-PackageCS-0\\u00BB' := _'\\u00ABjoin-PackageCS-0\\u00BB'; + * _'\\u00ABjoin-PackageCS-1\\u00BB' := _'\\u00ABjoin-PackageCS-1\\u00BB'; + * _'\\u00ABparent\\u00BB' := loop0; + * }} + * for loop0 : classescs::PackageCS in _'\\u00ABjoin-PackageCS-1\\u00BB' { + * + * map _'classescs%PackageCS%ownedPackages' { + * _'\\u00ABjoin-PackageCS-0\\u00BB' := _'\\u00ABjoin-PackageCS-0\\u00BB'; + * _'\\u00ABparent\\u00BB' := loop0; + * }} + * for loop0 : classescs::PackageCS in _'\\u00ABjoin-PackageCS-0\\u00BB' { + * + * map _'classescs%PackageCS%ownedClasses' { + * _'\\u00ABjoin-ClassCS-0\\u00BB' := _'\\u00ABjoin-ClassCS-0\\u00BB'; + * _'\\u00ABparent\\u00BB' := loop0; + * }} + * for loop0 : classescs::ClassCS in _'\\u00ABjoin-ClassCS-0\\u00BB' { + * + * map cClassCS_2_Class { + * classCS := loop0; + * }} + * for loop0 : classescs::PackageCS in _'\\u00ABjoin-PackageCS-0\\u00BB' { + * + * map cPackageCS_2_Package { + * packageCS := loop0; + * }} + * for loop0 : classescs::RootCS in _'\\u00ABjoin-RootCS-0\\u00BB' { + * + * map cRootCS_2_Root { + * rootCS := loop0; + * }} + * for loop0 : classescs::ClassCS in _'\\u00ABjoin-ClassCS-0\\u00BB' { + * + * map uClass_name { + * classCS := loop0; + * }} + * for loop0 : classescs::PackageCS in _'\\u00ABjoin-PackageCS-0\\u00BB' { + * + * map _'uPackage_name\\nuPackage_ownedClasses\\nuPackage_ownedPackages' { + * packageCS := loop0; + * }} + * for loop0 : classescs::RootCS in _'\\u00ABjoin-RootCS-0\\u00BB' { + * + * map uRoot_ownedPackages { + * rootCS := loop0; + * }} + * for loop0 : classescs::ClassCS in _'\\u00ABjoin-ClassCS-0\\u00BB' { + * + * map uClass_superClass { + * classCS := loop0; + * }} + */ + protected boolean MAP___root__() throws ReflectiveOperationException { + // predicates + final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_ClassCS_0 = idResolver.getClass(CLSSid_ClassCS, null); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_PackageCS_0 = idResolver.getClass(CLSSid_PackageCS, null); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_RootCS_0 = idResolver.getClass(CLSSid_RootCS, null); + // variable assignments + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SetValue rootObjects = RootObjectsOperation.INSTANCE.evaluate(executor, SET_CLSSid_OclElement, models[0/*leftCS*/]); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SetValue selectByKind = (SetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, rootObjects, TYP_classescs_c_c_ClassCS_0); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SetValue selectByKind_0 = (SetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, rootObjects, TYP_classescs_c_c_PackageCS_0); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SetValue selectByKind_1 = (SetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, rootObjects, TYP_classescs_c_c_RootCS_0); + // connection variables + final SetValue./*@NonNull*/ Accumulator _92_u00ABjoin_m_ClassCS_m_0_92_u00BB_1 = (SetValue.Accumulator)ValueUtil.createCollectionAccumulatorValue(SET_CLSSid_ClassCS); + for (ClassCS iterator : ValueUtil.typedIterable(ClassCS.class, selectByKind)) { + _92_u00ABjoin_m_ClassCS_m_0_92_u00BB_1.add(iterator); + } + final SetValue./*@NonNull*/ Accumulator _92_u00ABjoin_m_PackageCS_m_0_92_u00BB_3 = (SetValue.Accumulator)ValueUtil.createCollectionAccumulatorValue(SET_CLSSid_PackageCS); + for (PackageCS iterator_0 : ValueUtil.typedIterable(PackageCS.class, selectByKind_0)) { + _92_u00ABjoin_m_PackageCS_m_0_92_u00BB_3.add(iterator_0); + } + final SetValue./*@NonNull*/ Accumulator _92_u00ABjoin_m_PackageCS_m_1_92_u00BB_1 = (SetValue.Accumulator)ValueUtil.createCollectionAccumulatorValue(SET_CLSSid_PackageCS); + for (PackageCS iterator_1 : ValueUtil.typedIterable(PackageCS.class, selectByKind_0)) { + _92_u00ABjoin_m_PackageCS_m_1_92_u00BB_1.add(iterator_1); + } + // mapping statements + for (RootCS loop0 : ValueUtil.typedIterable(RootCS.class, selectByKind_1)) { + if (loop0 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull RootCS symbol_0 = (RootCS)loop0; + MAP_classescs_37RootCS_37ownedPackages(_92_u00ABjoin_m_PackageCS_m_0_92_u00BB_3, _92_u00ABjoin_m_PackageCS_m_1_92_u00BB_1, symbol_0); + } + } + for (PackageCS loop0_0 : ValueUtil.typedIterable(PackageCS.class, _92_u00ABjoin_m_PackageCS_m_1_92_u00BB_1)) { + if (loop0_0 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_2 = (PackageCS)loop0_0; + MAP_classescs_37PackageCS_37ownedPackages(_92_u00ABjoin_m_PackageCS_m_0_92_u00BB_3, symbol_2); + } + } + for (PackageCS loop0_1 : ValueUtil.typedIterable(PackageCS.class, _92_u00ABjoin_m_PackageCS_m_0_92_u00BB_3)) { + if (loop0_1 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_4 = (PackageCS)loop0_1; + MAP_classescs_37PackageCS_37ownedClasses(_92_u00ABjoin_m_ClassCS_m_0_92_u00BB_1, symbol_4); + } + } + for (ClassCS loop0_2 : ValueUtil.typedIterable(ClassCS.class, _92_u00ABjoin_m_ClassCS_m_0_92_u00BB_1)) { + if (loop0_2 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull ClassCS symbol_6 = (ClassCS)loop0_2; + if (symbol_6 != null) { + MAP_cClassCS_2_Class(symbol_6); + } + } + } + for (PackageCS loop0_3 : ValueUtil.typedIterable(PackageCS.class, _92_u00ABjoin_m_PackageCS_m_0_92_u00BB_3)) { + if (loop0_3 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_8 = (PackageCS)loop0_3; + if (symbol_8 != null) { + MAP_cPackageCS_2_Package(symbol_8); + } + } + } + for (RootCS loop0_4 : ValueUtil.typedIterable(RootCS.class, selectByKind_1)) { + if (loop0_4 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull RootCS symbol_10 = (RootCS)loop0_4; + if (symbol_10 != null) { + MAP_cRootCS_2_Root(symbol_10); + } + } + } + for (ClassCS loop0_5 : ValueUtil.typedIterable(ClassCS.class, _92_u00ABjoin_m_ClassCS_m_0_92_u00BB_1)) { + if (loop0_5 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull ClassCS symbol_12 = (ClassCS)loop0_5; + if (symbol_12 != null) { + MAP_uClass_name(symbol_12); + } + } + } + for (PackageCS loop0_6 : ValueUtil.typedIterable(PackageCS.class, _92_u00ABjoin_m_PackageCS_m_0_92_u00BB_3)) { + if (loop0_6 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_14 = (PackageCS)loop0_6; + if (symbol_14 != null) { + MAP_uPackage_name_92nuPackage_ownedClasses_92nuPackage_ownedPackages(symbol_14); + } + } + } + for (RootCS loop0_7 : ValueUtil.typedIterable(RootCS.class, selectByKind_1)) { + if (loop0_7 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull RootCS symbol_16 = (RootCS)loop0_7; + if (symbol_16 != null) { + MAP_uRoot_ownedPackages(symbol_16); + } + } + } + for (ClassCS loop0_8 : ValueUtil.typedIterable(ClassCS.class, _92_u00ABjoin_m_ClassCS_m_0_92_u00BB_1)) { + if (loop0_8 != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull ClassCS symbol_18 = (ClassCS)loop0_8; + if (symbol_18 != null) { + MAP_uClass_superClass(symbol_18); + } + } + } + return true; + } + + /** + * + * map cClassCS_2_Class in classescs2as_qvtp_qvtcas { + * leftCS (classCS : classescs::ClassCS[?]; * |) * { |} * rightAS ( |) @@ -215,8 +386,8 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer /** * - * map cPackageCS_2_Package in classescs2as_qvtp_qvtias { - * leftCS (packageCS : classescs::PackageCS[1]; + * map cPackageCS_2_Package in classescs2as_qvtp_qvtcas { + * leftCS (packageCS : classescs::PackageCS[?]; * |) * { |} * rightAS ( |) @@ -241,8 +412,8 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer /** * - * map cRootCS_2_Root in classescs2as_qvtp_qvtias { - * leftCS (rootCS : classescs::RootCS[1]; + * map cRootCS_2_Root in classescs2as_qvtp_qvtcas { + * leftCS (rootCS : classescs::RootCS[?]; * |) * { |} * rightAS ( |) @@ -267,31 +438,155 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer /** * - * map uClass_name in classescs2as_qvtp_qvtias { + * map _'classescs%PackageCS%ownedClasses' in classescs2as_qvtp_qvtcas { + * + * leftCS (_'\\u00ABparent\\u00BB' : classescs::PackageCS[1]; + * |) + * { |} + * where (_'\\u00ABjoin-ClassCS-0\\u00BB' : UniqueCollection(classescs::ClassCS[*|1]); + * |) + * {allChildren : OrderedSet(classescs::ClassCS) = _'\\u00ABparent\\u00BB'.ownedClasses->selectByKind(classescs::ClassCS) + * ; + * _'\u00ABchild-ClassCS\u00BB' : OrderedSet(classescs::ClassCS[*|1]) = allChildren->selectByKind(classescs::ClassCS); + * | + * _'\\u00ABjoin-ClassCS-0\\u00BB' += _'\u00ABchild-ClassCS\u00BB'; + * } + * + */ + protected boolean MAP_classescs_37PackageCS_37ownedClasses(final CollectionValue./*@NonNull*/ Accumulator _92_u00ABjoin_m_ClassCS_m_0_92_u00BB, final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS _92_u00ABparent_92_u00BB) throws ReflectiveOperationException { + // predicates + final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_ClassCS_1 = idResolver.getClass(CLSSid_ClassCS, null); + // variable assignments + final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<ClassCS> ownedClasses = _92_u00ABparent_92_u00BB.getOwnedClasses(); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedClasses = idResolver.createOrderedSetOfAll(ORD_CLSSid_ClassCS, ownedClasses); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_ownedClasses, TYP_classescs_c_c_ClassCS_1); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue selectByKind_0 = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, selectByKind, TYP_classescs_c_c_ClassCS_1); + // connection assignments + for (ClassCS iterator : ValueUtil.typedIterable(ClassCS.class, selectByKind_0)) { + if (iterator instanceof ClassCS) { + _92_u00ABjoin_m_ClassCS_m_0_92_u00BB.add(iterator); + } + } + return true; + } + + /** + * + * map _'classescs%PackageCS%ownedPackages' in classescs2as_qvtp_qvtcas { + * + * leftCS (_'\\u00ABparent\\u00BB' : classescs::PackageCS[1]; + * |) + * { |} + * where (_'\\u00ABjoin-PackageCS-0\\u00BB' : UniqueCollection(classescs::PackageCS[*|1]); + * |) + * {allChildren : OrderedSet(classescs::PackageCS) = _'\\u00ABparent\\u00BB'.ownedPackages->selectByKind(classescs::PackageCS) + * ; + * _'\u00ABchild-PackageCS\u00BB' : OrderedSet(classescs::PackageCS[*|1]) = allChildren->selectByKind(classescs::PackageCS) + * ; + * | + * _'\\u00ABjoin-PackageCS-0\\u00BB' += _'\u00ABchild-PackageCS\u00BB'; + * } + * for aChild : classescs::PackageCS in allChildren { + * + * map _'classescs%PackageCS%ownedPackages' { + * _'\\u00ABjoin-PackageCS-0\\u00BB' := _'\\u00ABjoin-PackageCS-0\\u00BB'; + * _'\\u00ABparent\\u00BB' := aChild; + * }} + */ + protected boolean MAP_classescs_37PackageCS_37ownedPackages(final CollectionValue./*@NonNull*/ Accumulator _92_u00ABjoin_m_PackageCS_m_0_92_u00BB, final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS _92_u00ABparent_92_u00BB_0) throws ReflectiveOperationException { + // predicates + final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_PackageCS_1 = idResolver.getClass(CLSSid_PackageCS, null); + // variable assignments + final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<PackageCS> ownedPackages = _92_u00ABparent_92_u00BB_0.getOwnedPackages(); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedPackages = idResolver.createOrderedSetOfAll(ORD_CLSSid_PackageCS, ownedPackages); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_ownedPackages, TYP_classescs_c_c_PackageCS_1); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue selectByKind_0 = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, selectByKind, TYP_classescs_c_c_PackageCS_1); + // connection assignments + for (PackageCS iterator : ValueUtil.typedIterable(PackageCS.class, selectByKind_0)) { + if (iterator instanceof PackageCS) { + _92_u00ABjoin_m_PackageCS_m_0_92_u00BB.add(iterator); + } + } + // mapping statements + for (PackageCS aChild : ValueUtil.typedIterable(PackageCS.class, selectByKind)) { + if (aChild != null) { + final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_0 = (PackageCS)aChild; + MAP_classescs_37PackageCS_37ownedPackages(_92_u00ABjoin_m_PackageCS_m_0_92_u00BB, symbol_0); + } + } + return true; + } + + /** + * + * map _'classescs%RootCS%ownedPackages' in classescs2as_qvtp_qvtcas { * - * leftCS (classCS : classescs::ClassCS[1]; + * leftCS (_'\\u00ABparent\\u00BB' : classescs::RootCS[1]; + * |) + * { |} + * where (_'\\u00ABjoin-PackageCS-1\\u00BB' : UniqueCollection(classescs::PackageCS[*|1]); + * _'\\u00ABjoin-PackageCS-0\\u00BB' : UniqueCollection(classescs::PackageCS[*|1]); + * |) + * {allChildren : OrderedSet(classescs::PackageCS) = _'\\u00ABparent\\u00BB'.ownedPackages->selectByKind(classescs::PackageCS) + * ; + * _'\u00ABchild-PackageCS\u00BB' : OrderedSet(classescs::PackageCS[*|1]) = allChildren->selectByKind(classescs::PackageCS); + * | + * _'\\u00ABjoin-PackageCS-1\\u00BB' += _'\u00ABchild-PackageCS\u00BB'; + * _'\\u00ABjoin-PackageCS-0\\u00BB' += _'\u00ABchild-PackageCS\u00BB'; + * } + * + */ + protected boolean MAP_classescs_37RootCS_37ownedPackages(final CollectionValue./*@NonNull*/ Accumulator _92_u00ABjoin_m_PackageCS_m_0_92_u00BB_0, final CollectionValue./*@NonNull*/ Accumulator _92_u00ABjoin_m_PackageCS_m_1_92_u00BB, final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull RootCS _92_u00ABparent_92_u00BB_1) throws ReflectiveOperationException { + // predicates + final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_PackageCS_1 = idResolver.getClass(CLSSid_PackageCS, null); + // variable assignments + final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<PackageCS> ownedPackages = _92_u00ABparent_92_u00BB_1.getOwnedPackages(); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedPackages = idResolver.createOrderedSetOfAll(ORD_CLSSid_PackageCS, ownedPackages); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_ownedPackages, TYP_classescs_c_c_PackageCS_1); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue selectByKind_0 = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, selectByKind, TYP_classescs_c_c_PackageCS_1); + // connection assignments + for (PackageCS iterator : ValueUtil.typedIterable(PackageCS.class, selectByKind_0)) { + if (iterator instanceof PackageCS) { + _92_u00ABjoin_m_PackageCS_m_1_92_u00BB.add(iterator); + } + } + for (PackageCS iterator_0 : ValueUtil.typedIterable(PackageCS.class, selectByKind_0)) { + if (iterator_0 instanceof PackageCS) { + _92_u00ABjoin_m_PackageCS_m_0_92_u00BB_0.add(iterator_0); + } + } + return true; + } + + /** + * + * map uClass_name in classescs2as_qvtp_qvtcas { + * + * leftCS (classCS : classescs::ClassCS[?]; * |) * { |} * rightAS ( |) * { |} * where ( |) - * {_0 : classes::Class[1]; - * _1 : String[?]; + * {ast : ecore::EObject[?] = classCS.ast; + * name : String[?] = classCS.name; + * aClass : classes::Class[1] = ast.oclAsType(classes::Class); * | - * _0 := classCS.ast.oclAsType(classes::Class); - * _1 := name; - * _0.name := _1; + * aClass.name := name; * } * */ protected boolean MAP_uClass_name(final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull ClassCS classCS_0) throws ReflectiveOperationException { // predicates final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class, null); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class_0, null); // variable assignments final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast = classCS_0.getAst(); - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Class oclAsType = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Class_0)); final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.Nullable String name = classCS_0.getName(); + final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Class oclAsType = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Class_0)); // property assignments oclAsType.setName(name); return true; @@ -299,72 +594,71 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer /** * - * map uClass_superClass in classescs2as_qvtp_qvtias { + * map uClass_superClass in classescs2as_qvtp_qvtcas { * - * leftCS (classCS : classescs::ClassCS[1]; + * leftCS (classCS : classescs::ClassCS[?]; * |) * { |} * rightAS ( |) * { |} * where ( |) - * {_0 : classes::Class[1]; - * _1 : classes::Class[?]; - * | - * _0 := classCS.ast.oclAsType(classes::Class) - * ; - * _1 := if extends = null + * {ast : ecore::EObject[?] = classCS.ast; + * extends : classescs::PathNameCS[?] = classCS.extends; + * aClass : classes::Class[1] = ast.oclAsType(classes::Class); + * _'=' : Boolean[1] = extends = + * null; + * superClass : classes::Class[?] = if _'=' * then null - * else ast.oclAsType(classes::Class).lookupClass(extends) + * else aClass.lookupClass(extends) * endif; - * _0.superClass := _1; + * | + * aClass.superClass := superClass; * } * */ protected boolean MAP_uClass_superClass(final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull ClassCS classCS_1) throws ReflectiveOperationException { // predicates final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class, null); - final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast = classCS_1.getAst(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class_0, null); // variable assignments - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Class oclAsType = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Class_0)); + final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast = classCS_1.getAst(); final /*@Thrown*/ example2.classescs.@org.eclipse.jdt.annotation.Nullable PathNameCS symbol_0 = classCS_1.getExtends(); - final /*@Thrown*/ boolean eq = symbol_0 == null; - /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.Nullable Class symbol_3; - if (eq) { - symbol_3 = null; + final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Class oclAsType = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Class_0)); + final /*@Thrown*/ boolean symbol_1 = symbol_0 == null; + /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.Nullable Class symbol_4; + if (symbol_1) { + symbol_4 = null; } else { - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Class self_1 = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Class_0)); - final /*@Thrown*/ example2.classescs.@org.eclipse.jdt.annotation.Nullable PathNameCS aPathNameCS = classCS_1.getExtends(); - if (aPathNameCS == null) { + if (symbol_0 == null) { throw throwNull(classCS_1, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::PathNameCS::path\'"); } - final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<PathElementCS> segments_0 = aPathNameCS.getPath(); + final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<PathElementCS> segments_0 = symbol_0.getPath(); final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_segments_0 = idResolver.createOrderedSetOfAll(ORD_CLSSid_PathElementCS, segments_0); final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull IntegerValue size = CollectionSizeOperation.INSTANCE.evaluate(BOXED_segments_0); - final /*@Thrown*/ boolean eq_0 = size.equals(INT_1); - /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.Nullable Class symbol_2; - if (eq_0) { + final /*@Thrown*/ boolean eq = size.equals(INT_1); + /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.Nullable Class symbol_3; + if (eq) { final /*@Thrown*/ example2.classescs.@org.eclipse.jdt.annotation.Nullable PathElementCS aPathElementCS = (PathElementCS)OrderedCollectionFirstOperation.INSTANCE.evaluate(BOXED_segments_0); if (aPathElementCS == null) { throw throwNull(classCS_1, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::NamedElementCS::name\'"); } final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.Nullable String name = aPathElementCS.getName(); - ClassesLookupResult<example2.classes.Class> _lookupResult = lookupSolver._lookupClass(self_1, name); + ClassesLookupResult<example2.classes.Class> _lookupResult = lookupSolver._lookupClass(oclAsType, name); example2.classes.Class _lookupClass = null; if (_lookupResult.size() == 1) { _lookupClass = _lookupResult.getSingleResult(); } else { handleLookupError(aPathElementCS,name); }; - symbol_2 = _lookupClass; + symbol_3 = _lookupClass; } else { final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(size, INT_1); final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue qualifierSegments = OrderedSetSubOrderedSetOperation.INSTANCE.evaluate(BOXED_segments_0, INT_1, diff); final List<PathElementCS> UNBOXED_qualifierSegments = qualifierSegments.asEcoreObjects(idResolver, PathElementCS.class); assert UNBOXED_qualifierSegments != null; - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.Nullable Package qualifier = this.lookupPackage(self_1, UNBOXED_qualifierSegments); + final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.Nullable Package qualifier = this.lookupPackage(oclAsType, UNBOXED_qualifierSegments); /*@Caught*/ /*@Nullable*/ Object CAUGHT_qualifier; try { CAUGHT_qualifier = qualifier; @@ -372,9 +666,9 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer catch (Exception e) { CAUGHT_qualifier = ValueUtil.createInvalidValue(e); } - final /*@NonInvalid*/ /*@NonNull*/ Object symbol_1 = CAUGHT_qualifier == null; + final /*@NonInvalid*/ /*@NonNull*/ Object symbol_2 = CAUGHT_qualifier == null; /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.Nullable Class safe_lookupQualifiedClass_source; - if (symbol_1 == Boolean.TRUE) { + if (symbol_2 == Boolean.TRUE) { safe_lookupQualifiedClass_source = null; } else { @@ -392,153 +686,100 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer }; safe_lookupQualifiedClass_source = _lookupQualifiedClass; } - symbol_2 = safe_lookupQualifiedClass_source; + symbol_3 = safe_lookupQualifiedClass_source; } - symbol_3 = symbol_2; + symbol_4 = symbol_3; } // property assignments - oclAsType.setSuperClass(symbol_3); + oclAsType.setSuperClass(symbol_4); return true; } /** * - * map uPackage_name in classescs2as_qvtp_qvtias { + * map _'uPackage_name\\nuPackage_ownedClasses\\nuPackage_ownedPackages' in classescs2as_qvtp_qvtcas { * - * leftCS (packageCS : classescs::PackageCS[1]; + * leftCS (packageCS : classescs::PackageCS[?]; * |) * { |} * rightAS ( |) * { |} * where ( |) - * {_0 : classes::Package[1]; - * _1 : String[?]; + * {ast : ecore::EObject[?] = packageCS.ast; + * name : String[?] = packageCS.name; + * ownedPackages : OrderedSet(classescs::PackageCS) = packageCS.ownedPackages; + * ownedClasses : OrderedSet(classescs::ClassCS) = packageCS.ownedClasses; + * aPackage : classes::Package[1] = ast.oclAsType(classes::Package) + * ; + * _'\\u00ABcollect\\u00BB' : Sequence(classes::Package) = ownedPackages->collect(_'1_' | + * _'1_'.ast.oclAsType(classes::Package)) + * ; + * _'\\u00ABcollect\\u00BB1' : Sequence(classes::Class) = ownedClasses->collect(_'1_' | + * _'1_'.ast.oclAsType(classes::Class)); * | - * _0 := packageCS.ast.oclAsType(classes::Package); - * _1 := name; - * _0.name := _1; + * aPackage.name := name; + * aPackage.ownedClasses := _'\\u00ABcollect\\u00BB1'; + * aPackage.ownedPackages := _'\\u00ABcollect\\u00BB'; * } * */ - protected boolean MAP_uPackage_name(final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS packageCS_0) throws ReflectiveOperationException { + protected boolean MAP_uPackage_name_92nuPackage_ownedClasses_92nuPackage_ownedPackages(final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS packageCS_0) throws ReflectiveOperationException { // predicates final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Package_0 = idResolver.getClass(CLSSid_Package, null); // variable assignments final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast = packageCS_0.getAst(); - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Package oclAsType = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Package_0)); final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.Nullable String name = packageCS_0.getName(); - // property assignments - oclAsType.setName(name); - return true; - } - - /** - * - * map uPackage_ownedClasses in classescs2as_qvtp_qvtias { - * - * leftCS (packageCS : classescs::PackageCS[1]; - * |) - * { |} - * rightAS ( |) - * { |} - * where ( |) - * {_0 : classes::Package[1]; - * _1 : Sequence(classes::Class); - * | - * _0 := packageCS.ast.oclAsType(classes::Package) - * ; - * _1 := ownedClasses.ast.oclAsType(classes::Class); - * _0.ownedClasses := _1; - * } - * - */ - protected boolean MAP_uPackage_ownedClasses(final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS packageCS_1) throws ReflectiveOperationException { - // predicates - final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Package_0 = idResolver.getClass(CLSSid_Package, null); - // variable assignments - final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast = packageCS_1.getAst(); + final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<PackageCS> ownedPackages = packageCS_0.getOwnedPackages(); + final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<ClassCS> ownedClasses = packageCS_0.getOwnedClasses(); final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Package oclAsType = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Package_0)); - final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<ClassCS> ownedClasses = packageCS_1.getOwnedClasses(); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedClasses = idResolver.createOrderedSetOfAll(ORD_CLSSid_ClassCS, ownedClasses); - /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Class); - /*@Nullable*/ Iterator<?> ITERATOR__1 = BOXED_ownedClasses.iterator(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedPackages = idResolver.createOrderedSetOfAll(ORD_CLSSid_PackageCS, ownedPackages); + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Package); + /*@Nullable*/ Iterator<?> ITERATOR__1 = BOXED_ownedPackages.iterator(); /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SequenceValue collect; while (true) { if (!ITERATOR__1.hasNext()) { collect = accumulator; break; } - /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.Nullable ClassCS _1 = (ClassCS)ITERATOR__1.next(); + /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.Nullable PackageCS _1 = (PackageCS)ITERATOR__1.next(); /** - * ast.oclAsType(classes::Class) + * _'1_'.ast.oclAsType(classes::Package) */ - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class, null); if (_1 == null) { - throw throwNull(packageCS_1, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::ElementCS::ast\'"); + throw throwNull(packageCS_0, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::ElementCS::ast\'"); } final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast_0 = _1.getAst(); - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Class oclAsType_0 = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_0, TYP_classes_c_c_Class_0)); + final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Package oclAsType_0 = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_0, TYP_classes_c_c_Package_0)); // accumulator.add(oclAsType_0); } - // property assignments - final /*@NonInvalid*/ java.util.@org.eclipse.jdt.annotation.NonNull List<example2.classes.Class> ECORE_collect = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(example2.classes.Class.class, collect); - oclAsType.getOwnedClasses().addAll(ECORE_collect); - return true; - } - - /** - * - * map uPackage_ownedPackages in classescs2as_qvtp_qvtias { - * - * leftCS (packageCS : classescs::PackageCS[1]; - * |) - * { |} - * rightAS ( |) - * { |} - * where ( |) - * {_0 : classes::Package[1]; - * _1 : Sequence(classes::Package); - * | - * _0 := packageCS.ast.oclAsType(classes::Package) - * ; - * _1 := ownedPackages.ast.oclAsType(classes::Package); - * _0.ownedPackages := _1; - * } - * - */ - protected boolean MAP_uPackage_ownedPackages(final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS packageCS_2) throws ReflectiveOperationException { - // predicates - final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Package_0 = idResolver.getClass(CLSSid_Package, null); - // variable assignments - final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast = packageCS_2.getAst(); - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Package oclAsType = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Package_0)); - final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<PackageCS> ownedPackages = packageCS_2.getOwnedPackages(); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedPackages = idResolver.createOrderedSetOfAll(ORD_CLSSid_PackageCS, ownedPackages); - /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Package); - /*@Nullable*/ Iterator<?> ITERATOR__1 = BOXED_ownedPackages.iterator(); - /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SequenceValue collect; + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedClasses = idResolver.createOrderedSetOfAll(ORD_CLSSid_ClassCS, ownedClasses); + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Class); + /*@Nullable*/ Iterator<?> ITERATOR__1_0 = BOXED_ownedClasses.iterator(); + /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SequenceValue collect_0; while (true) { - if (!ITERATOR__1.hasNext()) { - collect = accumulator; + if (!ITERATOR__1_0.hasNext()) { + collect_0 = accumulator_0; break; } - /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.Nullable PackageCS _1 = (PackageCS)ITERATOR__1.next(); + /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.Nullable ClassCS _1_0 = (ClassCS)ITERATOR__1_0.next(); /** - * ast.oclAsType(classes::Package) + * _'1_'.ast.oclAsType(classes::Class) */ - if (_1 == null) { - throw throwNull(packageCS_2, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::ElementCS::ast\'"); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class_0, null); + if (_1_0 == null) { + throw throwNull(packageCS_0, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::ElementCS::ast\'"); } - final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast_0 = _1.getAst(); - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Package oclAsType_0 = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_0, TYP_classes_c_c_Package_0)); + final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast_1 = _1_0.getAst(); + final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Class oclAsType_1 = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_1, TYP_classes_c_c_Class_0)); // - accumulator.add(oclAsType_0); + accumulator_0.add(oclAsType_1); } // property assignments + oclAsType.setName(name); + final /*@NonInvalid*/ java.util.@org.eclipse.jdt.annotation.NonNull List<example2.classes.Class> ECORE_collect_0 = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(example2.classes.Class.class, collect_0); + oclAsType.getOwnedClasses().addAll(ECORE_collect_0); final /*@NonInvalid*/ java.util.@org.eclipse.jdt.annotation.NonNull List<Package> ECORE_collect = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(Package.class, collect); oclAsType.getOwnedPackages().addAll(ECORE_collect); return true; @@ -546,21 +787,22 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer /** * - * map uRoot_ownedPackages in classescs2as_qvtp_qvtias { + * map uRoot_ownedPackages in classescs2as_qvtp_qvtcas { * - * leftCS (rootCS : classescs::RootCS[1]; + * leftCS (rootCS : classescs::RootCS[?]; * |) * { |} * rightAS ( |) * { |} * where ( |) - * {_0 : classes::Root[1]; - * _1 : Sequence(classes::Package); - * | - * _0 := rootCS.ast.oclAsType(classes::Root) + * {ast : ecore::EObject[?] = rootCS.ast; + * ownedPackages : OrderedSet(classescs::PackageCS) = rootCS.ownedPackages; + * aRoot : classes::Root[1] = ast.oclAsType(classes::Root) * ; - * _1 := ownedPackages.ast.oclAsType(classes::Package); - * _0.ownedPackages := _1; + * _'\\u00ABcollect\\u00BB' : Sequence(classes::Package) = ownedPackages->collect(_'1_' | + * _'1_'.ast.oclAsType(classes::Package)); + * | + * aRoot.ownedPackages := _'\\u00ABcollect\\u00BB'; * } * */ @@ -570,9 +812,9 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Root_0 = idResolver.getClass(CLSSid_Root, null); // variable assignments final /*@Thrown*/ org.eclipse.emf.ecore.@org.eclipse.jdt.annotation.Nullable EObject ast = rootCS_0.getAst(); - final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Root oclAsType = ClassUtil.nonNullState((Root)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Root_0)); final /*@Thrown*/ java.util.@org.eclipse.jdt.annotation.NonNull List<PackageCS> ownedPackages = rootCS_0.getOwnedPackages(); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedPackages = idResolver.createOrderedSetOfAll(ORD_CLSSid_PackageCS, ownedPackages); + final /*@Thrown*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Root oclAsType = ClassUtil.nonNullState((Root)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Root_0)); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_ownedPackages = idResolver.createOrderedSetOfAll(ORD_CLSSid_PackageCS, ownedPackages); /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Package); /*@Nullable*/ Iterator<?> ITERATOR__1 = BOXED_ownedPackages.iterator(); /*@Thrown*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SequenceValue collect; @@ -583,7 +825,7 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer } /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.Nullable PackageCS _1 = (PackageCS)ITERATOR__1.next(); /** - * ast.oclAsType(classes::Package) + * _'1_'.ast.oclAsType(classes::Package) */ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classes_c_c_Package_0 = idResolver.getClass(CLSSid_Package, null); if (_1 == null) { @@ -599,123 +841,4 @@ public class classescs2as_qvtp_qvtias extends AbstractCS2ASTransformer oclAsType.getOwnedPackages().addAll(ECORE_collect); return true; } - - /** - * - * map __root__ in classescs2as_qvtp_qvtias { - * - * where ( |) - * { |} - * for rootCS : classescs::RootCS in classescs::RootCS.allInstances() - * { - * map cRootCS_2_Root { - * rootCS := rootCS; - * }} - * for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances() - * { - * map cPackageCS_2_Package { - * packageCS := packageCS; - * }} - * for rootCS : classescs::RootCS in classescs::RootCS.allInstances() - * { - * map uRoot_ownedPackages { - * rootCS := rootCS; - * }} - * for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances() - * { - * map uPackage_name { - * packageCS := packageCS; - * }} - * for classCS : classescs::ClassCS in classescs::ClassCS.allInstances() - * { - * map cClassCS_2_Class { - * classCS := classCS; - * }} - * for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances() - * { - * map uPackage_ownedClasses { - * packageCS := packageCS; - * }} - * for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances() - * { - * map uPackage_ownedPackages { - * packageCS := packageCS; - * }} - * for classCS : classescs::ClassCS in classescs::ClassCS.allInstances() - * { - * map uClass_name { - * classCS := classCS; - * }} - * for classCS : classescs::ClassCS in classescs::ClassCS.allInstances() - * { - * map uClass_superClass { - * classCS := classCS; - * }} - */ - protected boolean MAP___root__() throws ReflectiveOperationException { - // predicates - final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); - // mapping statements - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_ClassCS_2 = idResolver.getClass(CLSSid_ClassCS, null); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_PackageCS_3 = idResolver.getClass(CLSSid_PackageCS, null); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_classescs_c_c_RootCS_1 = idResolver.getClass(CLSSid_RootCS, null); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SetValue allInstances_6 = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, SET_CLSSid_ClassCS, TYP_classescs_c_c_ClassCS_2); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SetValue allInstances_2 = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, SET_CLSSid_PackageCS, TYP_classescs_c_c_PackageCS_3); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SetValue allInstances_1 = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, SET_CLSSid_RootCS, TYP_classescs_c_c_RootCS_1); - for (RootCS rootCS_3 : ValueUtil.typedIterable(RootCS.class, allInstances_1)) { - if (rootCS_3 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull RootCS symbol_0 = (RootCS)rootCS_3; - MAP_cRootCS_2_Root(symbol_0); - } - } - for (PackageCS packageCS_7 : ValueUtil.typedIterable(PackageCS.class, allInstances_2)) { - if (packageCS_7 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_3 = (PackageCS)packageCS_7; - MAP_cPackageCS_2_Package(symbol_3); - } - } - for (RootCS rootCS_4 : ValueUtil.typedIterable(RootCS.class, allInstances_1)) { - if (rootCS_4 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull RootCS symbol_6 = (RootCS)rootCS_4; - MAP_uRoot_ownedPackages(symbol_6); - } - } - for (PackageCS packageCS_8 : ValueUtil.typedIterable(PackageCS.class, allInstances_2)) { - if (packageCS_8 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_9 = (PackageCS)packageCS_8; - MAP_uPackage_name(symbol_9); - } - } - for (ClassCS classCS_5 : ValueUtil.typedIterable(ClassCS.class, allInstances_6)) { - if (classCS_5 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull ClassCS symbol_12 = (ClassCS)classCS_5; - MAP_cClassCS_2_Class(symbol_12); - } - } - for (PackageCS packageCS_9 : ValueUtil.typedIterable(PackageCS.class, allInstances_2)) { - if (packageCS_9 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_15 = (PackageCS)packageCS_9; - MAP_uPackage_ownedClasses(symbol_15); - } - } - for (PackageCS packageCS_10 : ValueUtil.typedIterable(PackageCS.class, allInstances_2)) { - if (packageCS_10 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull PackageCS symbol_18 = (PackageCS)packageCS_10; - MAP_uPackage_ownedPackages(symbol_18); - } - } - for (ClassCS classCS_6 : ValueUtil.typedIterable(ClassCS.class, allInstances_6)) { - if (classCS_6 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull ClassCS symbol_21 = (ClassCS)classCS_6; - MAP_uClass_name(symbol_21); - } - } - for (ClassCS classCS_7 : ValueUtil.typedIterable(ClassCS.class, allInstances_6)) { - if (classCS_7 != null) { - final /*@NonInvalid*/ example2.classescs.@org.eclipse.jdt.annotation.NonNull ClassCS symbol_24 = (ClassCS)classCS_7; - MAP_uClass_superClass(symbol_24); - } - } - return true; - } } |