diff options
4 files changed, 17 insertions, 9 deletions
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/BasicQVTiExecutor.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/BasicQVTiExecutor.java index 772009b17..d3b06b921 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/BasicQVTiExecutor.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/BasicQVTiExecutor.java @@ -93,12 +93,13 @@ public class BasicQVTiExecutor extends AbstractExecutor implements QVTiExecutor } @Override - public void createModel(@NonNull String name, @NonNull URI modelURI, @Nullable String contentType) { + public @Nullable Resource createModel(@NonNull String name, @NonNull URI modelURI, @Nullable String contentType) { TypedModel typedModel = getTypedModel(name); Resource resource = environmentFactory.getResourceSet().createResource(modelURI, contentType); if (resource != null) { getModelManager().addModel(typedModel, resource); } + return resource; } @Override diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiExecutor.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiExecutor.java index d58ea4ca0..a1d5cca4b 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiExecutor.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiExecutor.java @@ -25,7 +25,7 @@ import org.eclipse.qvtd.pivot.qvtimperative.SetStatement; public interface QVTiExecutor extends ExecutorInternal { - void createModel(@NonNull String outName, @NonNull URI outURI, @Nullable String contentType); + @Nullable Resource createModel(@NonNull String outName, @NonNull URI outURI, @Nullable String contentType); Boolean execute(); @Override @NonNull QVTiEvaluationEnvironment getEvaluationEnvironment(); diff --git a/tests/org.eclipse.qvtd.doc.exe2016.tests/src/org/eclipse/qvtd/doc/exe2016/tests/qvtc/EXE2016InterpreterTests.java b/tests/org.eclipse.qvtd.doc.exe2016.tests/src/org/eclipse/qvtd/doc/exe2016/tests/qvtc/EXE2016InterpreterTests.java index d6af65e90..130379396 100644 --- a/tests/org.eclipse.qvtd.doc.exe2016.tests/src/org/eclipse/qvtd/doc/exe2016/tests/qvtc/EXE2016InterpreterTests.java +++ b/tests/org.eclipse.qvtd.doc.exe2016.tests/src/org/eclipse/qvtd/doc/exe2016/tests/qvtc/EXE2016InterpreterTests.java @@ -50,16 +50,16 @@ public class EXE2016InterpreterTests extends QVTcCompilerTests // myQVT.getEnvironmentFactory().setEvaluationTracingEnabled(true); try { Transformation asTransformation = myQVT.compileTransformation("Forward2Reverse.qvtc", "reverse"); - int[] tests = PrintAndLog.getTestSizes(); + int[] tests = /**new int[]{100000}; //*/PrintAndLog.getTestSizes(); for (int testSize : tests) { BasicQVTiExecutor interpretedExecutor = myQVT.createInterpretedExecutor(asTransformation); - myQVT.loadInput("forward", "EmptyList.xmi"); - Resource inResource = interpretedExecutor.getModel("forward"); + Resource inResource = myQVT.loadInput("forward", "EmptyList.xmi"); assert inResource != null; inResource.getContents().clear(); inResource.getContents().addAll(doublyLinkedListGenerator.createDoublyLinkedListModel(testSize)); - myQVT.createModel(QVTimperativeUtil.MIDDLE_DOMAIN_NAME, "Forward2Reverse_trace.xmi"); - myQVT.createModel("reverse", "List_Interpreted.xmi"); + // myQVT.createModel(QVTimperativeUtil.MIDDLE_DOMAIN_NAME, "Forward2Reverse_trace.xmi"); + Resource outResource = myQVT.createModel("reverse", "List_Interpreted.xmi"); + assert outResource != null; AbstractEXE2016CGTests.garbageCollect(); logger.printf("%9d, ", testSize); long startTime = System.nanoTime(); @@ -69,6 +69,13 @@ public class EXE2016InterpreterTests extends QVTcCompilerTests logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9); doublyLinkedListGenerator.checkModel((@NonNull DoublyLinkedList) rootObjects.iterator().next(), testSize); // myQVT.saveOutput("person", "Persons_Interpreted.xmi", "Persons_expected.xmi", Families2PersonsNormalizer.INSTANCE); + myQVT.getResourceSet().getResources().remove(inResource); + myQVT.getResourceSet().getResources().remove(outResource); + inResource = null; + outResource = null; + rootObjects = null; + interpretedExecutor = null; + long endTime2 = System.nanoTime(); } } finally { diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java index 87304b3f9..f58385aab 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java @@ -184,9 +184,9 @@ public class QVTcCompilerTests extends LoadTestCase return interpretedExecutor; } - public void createModel(@NonNull String modelName, @NonNull String modelFile) { + public @Nullable Resource createModel(@NonNull String modelName, @NonNull String modelFile) { URI modelURI = samplesBaseUri.appendSegment(modelFile); - interpretedExecutor.createModel(modelName, modelURI, null); + return interpretedExecutor.createModel(modelName, modelURI, null); } @Override |