| /********************************************************************* |
| * Copyright (c) 2019 The University of York. |
| * |
| * This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License 2.0 |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| **********************************************************************/ |
| package org.eclipse.epsilon.executors.etl; |
| |
| import org.eclipse.epsilon.etl.IEtlModule; |
| import org.eclipse.epsilon.etl.trace.TransformationTrace; |
| import org.eclipse.epsilon.executors.IEpsilonLanguageExecutor; |
| |
| /** |
| * The IEtlExecutor API provides additional methods to return the transformation trace and to store |
| * the trace as a model. |
| * |
| * @author Horacio Hoyos Rodriguez |
| * |
| * @param <M> the Module type |
| */ |
| public interface IEtlExecutor extends IEpsilonLanguageExecutor { |
| |
| /** |
| * Wrapper method to return the trace. |
| * |
| * @return the transformation trace |
| */ |
| default TransformationTrace getTransformationTrace() { |
| return (TransformationTrace) getResult(); |
| } |
| |
| @Override |
| IEtlModule getModule(); |
| |
| // /** |
| // * Save the transformation trace as an EMF model. The model conforms to the EtlSimpleTrace |
| // * metamodel defined as: |
| // * <pre> |
| // * {@code |
| // * @namespace(uri="http://www.eclipse.org/epsilon/etl/EtlSimpleTrace", prefix="etltr") |
| // * package EtlSimpleTrace; |
| // * |
| // * class Trace { |
| // * val TraceLink[*] links; |
| // * } |
| // * |
| // * class TraceLink { |
| // * ref EObject[*] sources; |
| // * ref EObject[*] targets; |
| // * attr String description; |
| // * } |
| // * } |
| // * </pre> |
| // * The metamodel can be retrieved via <code>IEtlExecutor.class.getResource("SimpleTrace.ecore")</code>. |
| // * |
| // * @param location The path where the model will be stored |
| // */ |
| // public void saveTransformationTraceAsEmfModel(Path location); |
| |
| } |