@@ -0,0 +1,1473 @@
+package org.muml.psm.allocation.algorithm.main;%0A%0Aimport org.eclipse.core.runtime.IProgressMonitor;%0Aimport org.eclipse.emf.common.util.Diagnostic;%0Aimport org.eclipse.emf.ecore.EObject;%0Aimport org.eclipse.jdt.annotation.NonNull;%0Aimport org.eclipse.jdt.annotation.Nullable;%0Aimport org.muml.psm.allocation.language.cs.SpecificationCS;%0A%0A/**%0A * A strategy that is used to export intermediate models. For instance,%0A * if a class, which implements the %3Ccode%3EIAllocationComputationStrategy%3C/code%3E%0A * interface, utilizes intermediate models (e.g., it generates an ILP) it can%0A * also implement this interface to offer its users the export of these%0A * intermediate models. This strategy's configuration object can be used, for%0A * instance, to specify which intermediate models should be exported and%0A * where to store them. %0A */%0Apublic interface IIntermediateModelExportStrategy%3CT%3E extends IStrategy%3CT%3E %7B%0A%09%0A%09/**%0A%09 * Export the intermediate models that are generated when applying%0A%09 * our strategy to the allocationSpecification and oclContext.%0A%09 * %0A%09 * @param allocationSpecification%09the allocation specification%0A%09 * @param oclContext%09%09%09%09the ocl context object%0A%09 * @param progressMonitor%09%09%09the progress monitor or %3Ccode%3Enull%3C/null%3E%0A%09 * @return%09%09%09%09%09%09%09a diagnostic that indicates success or failure%0A%09 */%0A%09public Diagnostic exportIntermediateModels(%0A%09%09%09@NonNull SpecificationCS allocationSpecification,%0A%09%09%09@NonNull EObject oclContext,%0A%09%09%09@Nullable IProgressMonitor progressMonitor);%0A%09%0A%7D%0A

Introduce the IIntermediateModelExportStrategy interface