blob: c7d5163b37832acd2c820b3966ad58a3b8557449 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015, 2019 Willink Transformations and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* E.D.Willink - Initial API and implementation
*******************************************************************************/
package org.eclipse.qvtd.runtime.evaluation;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.pivot.internal.evaluation.EvaluationCache;
import org.eclipse.qvtd.runtime.qvttrace.TransformationExecution;
/**
* A Transformer provides the core support to execute an auto-generated transformation
* between models.
*
* @noimplement clients should derive from AbstractTransformer
*/
public interface Transformer extends ExecutionVisitable
{
/**
* Clients may reference this explicitly to force a compile-time failure for a mismatch.
*
* @noreference this is solely for development usage.
*
* 1.1.0-1 API version introduced, ObjectManager etc interfaces separated out, AbstractObjectManager etc enforced.
* 1.1.0-2 Preliminary incremental support.
*/
public static int RUN_TIME_EVALUATOR_API_VERSION_1_1_0_2 = 1*1000 + 1 * 100 + 0*10 + 2;
/**
* The run-time API version.
*
* @noreference this is solely for development usage.
*/
public static int RUN_TIME_EVALUATOR_API_VERSION = RUN_TIME_EVALUATOR_API_VERSION_1_1_0_2;
void analyzeInputResources();
@NonNull EvaluationCache getEvaluationCache();
@NonNull TransformationExecutor getExecutor();
@NonNull InvocationManager getInvocationManager();
@NonNull ModelsManager getModelsManager();
@NonNull ObjectManager getObjectManager();
@Nullable TransformationExecution getTransformationExecution();
int getTypedModelIndex(@NonNull String targetModelName);
@NonNull TypedModelInstance getTypedModelInstance(@NonNull String modelName);
boolean run() throws Exception;
boolean run(@NonNull String targetName) throws Exception;
}