[537609] Use CoreException rather than MdaException
diff --git a/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtBuilderLaunchConfigurationDelegate.java b/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtBuilderLaunchConfigurationDelegate.java
index 76861e1..17e0cd7 100644
--- a/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtBuilderLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtBuilderLaunchConfigurationDelegate.java
@@ -66,18 +66,12 @@
@Override
public IStatus runInWorkspace(IProgressMonitor jobMonitor) throws CoreException {
- try {
- if(BUILD_TYPE_CLEAN.equals(buildType)) {
- clean(project, configuration);
- }
- else {
- build(project, configuration, printWriter, jobMonitor);
- }
+ if(BUILD_TYPE_CLEAN.equals(buildType)) {
+ clean(project, configuration);
}
- catch (MdaException e) {
- throw new CoreException(e.getStatus());
+ else {
+ build(project, configuration, printWriter, jobMonitor);
}
-
return Status.OK_STATUS;
}
};
@@ -88,7 +82,7 @@
}
private void build(final IProject project, final ILaunchConfiguration configuration, final PrintWriter printWriter,
- final IProgressMonitor monitor) throws CoreException, MdaException {
+ final IProgressMonitor monitor) throws CoreException {
String moduleUri = QvtLaunchUtil.getTransformationURI(configuration);
final QvtInterpretedTransformation transformation;
@@ -116,7 +110,7 @@
}
}
- private void clean(IProject project, ILaunchConfiguration configuration) throws CoreException, MdaException {
+ private void clean(IProject project, ILaunchConfiguration configuration) throws CoreException {
String moduleUri = QvtLaunchUtil.getTransformationURI(configuration);
final QvtInterpretedTransformation transformation;
try {
@@ -126,7 +120,12 @@
return;
}
- List<TransformationParameter> transfParams = transformation.getParameters();
+ List<TransformationParameter> transfParams;
+ try {
+ transfParams = transformation.getParameters();
+ } catch (MdaException e) {
+ throw new CoreException(e.getStatus());
+ }
List<TargetUriData> targetUris = QvtLaunchUtil.getTargetUris(configuration);
for (int i = 0, n = targetUris.size(); i < n; ++i) {
if (transfParams.size() > i && transfParams.get(i).getDirectionKind() == DirectionKind.OUT) {
diff --git a/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtLaunchUtil.java b/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtLaunchUtil.java
index c6eb045..553434b 100644
--- a/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtLaunchUtil.java
+++ b/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtLaunchUtil.java
@@ -1,11 +1,11 @@
/*******************************************************************************
* Copyright (c) 2007, 2018 Borland Software Corporation 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:
* Borland Software Corporation - initial API and implementation
*******************************************************************************/
@@ -23,6 +23,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationType;
@@ -53,78 +54,78 @@
public class QvtLaunchUtil {
-
+
private QvtLaunchUtil() {}
public static ILaunchConfigurationType getInMemoryLaunchConfigurationType() {
ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
- ILaunchConfigurationType type = manager.getLaunchConfigurationType(InMemoryQvtLaunchConfigurationDelegate.LAUNCH_CONFIGURATION_TYPE_ID);
- if (type == null) {
- throw new RuntimeException("No launch configuration for id " + InMemoryQvtLaunchConfigurationDelegate.LAUNCH_CONFIGURATION_TYPE_ID); //$NON-NLS-1$
- }
+ ILaunchConfigurationType type = manager.getLaunchConfigurationType(InMemoryQvtLaunchConfigurationDelegate.LAUNCH_CONFIGURATION_TYPE_ID);
+ if (type == null) {
+ throw new RuntimeException("No launch configuration for id " + InMemoryQvtLaunchConfigurationDelegate.LAUNCH_CONFIGURATION_TYPE_ID); //$NON-NLS-1$
+ }
return type;
}
-
+
public static List<TargetUriData> getTargetUris(ILaunchConfiguration configuration) throws CoreException {
- int elemCount = configuration.getAttribute(IQvtLaunchConstants.ELEM_COUNT, 0);
+ int elemCount = configuration.getAttribute(IQvtLaunchConstants.ELEM_COUNT, 0);
List<TargetUriData> targetUris = new ArrayList<TargetUriData>(elemCount);
- for (int i = 0; i < elemCount; ++i) {
- TargetUriData targetData = QvtLaunchUtil.getTargetUriData(configuration, i+1);
- targetUris.add(targetData);
- }
- return targetUris;
+ for (int i = 0; i < elemCount; ++i) {
+ TargetUriData targetData = QvtLaunchUtil.getTargetUriData(configuration, i+1);
+ targetUris.add(targetData);
+ }
+ return targetUris;
}
-
+
public static String getTransformationURI(ILaunchConfiguration configuration) throws CoreException {
return configuration.getAttribute(IQvtLaunchConstants.MODULE, (String) null);
}
-
+
public static String getTraceFileURI(ILaunchConfiguration configuration) throws CoreException {
return configuration.getAttribute(IQvtLaunchConstants.TRACE_FILE, (String) null);
- }
-
+ }
+
public static boolean shouldGenerateTraceFile(ILaunchConfiguration configuration) throws CoreException {
return configuration.getAttribute(IQvtLaunchConstants.USE_TRACE_FILE, false);
}
-
+
public static boolean isIncrementalUpdate(ILaunchConfiguration configuration) throws CoreException {
return configuration.getAttribute(IQvtLaunchConstants.IS_INCREMENTAL_UPDATE, false);
}
-
- public static TargetUriData getTargetUriData(ILaunchConfiguration configuration, int index) throws CoreException {
- TargetUriData.TargetType targetType = TargetUriData.TargetType.NEW_MODEL;
- try {
- targetType = TargetType.valueOf(configuration.getAttribute(getIndexedName(IQvtLaunchConstants.TARGET_TYPE, index), "NEW_MODEL")); //$NON-NLS-1$
- }
- catch (Exception e) {
- targetType = TargetUriData.TargetType.NEW_MODEL;
- }
-
- String uri = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.TARGET_MODEL, index), ""); //$NON-NLS-1$
- String feature = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.FEATURE_NAME, index), ""); //$NON-NLS-1$
- boolean clearContents = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.CLEAR_CONTENTS, index), true);
-
- TargetUriData.ContentProvider contentProvider = null;
+
+ public static TargetUriData getTargetUriData(ILaunchConfiguration configuration, int index) throws CoreException {
+ TargetUriData.TargetType targetType = TargetUriData.TargetType.NEW_MODEL;
+ try {
+ targetType = TargetType.valueOf(configuration.getAttribute(getIndexedName(IQvtLaunchConstants.TARGET_TYPE, index), "NEW_MODEL")); //$NON-NLS-1$
+ }
+ catch (Exception e) {
+ targetType = TargetUriData.TargetType.NEW_MODEL;
+ }
+
+ String uri = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.TARGET_MODEL, index), ""); //$NON-NLS-1$
+ String feature = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.FEATURE_NAME, index), ""); //$NON-NLS-1$
+ boolean clearContents = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.CLEAR_CONTENTS, index), true);
+
+ TargetUriData.ContentProvider contentProvider = null;
if (configuration.getAttributes() != null) {
contentProvider = (TargetUriData.ContentProvider) configuration.getAttributes().get(getIndexedName(IQvtLaunchConstants.CONTENT_PROVIDER, index));
}
-
- return new TargetUriData(targetType, uri, feature, clearContents, contentProvider);
- }
-
- public static void saveTargetUriData(ILaunchConfigurationWorkingCopy configuration, List<TargetUriData> targetData) {
- int index = 1;
- for (TargetUriData targetUri : targetData) {
- QvtLaunchUtil.saveTargetUriData(configuration, targetUri, index);
- ++index;
- }
- }
-
- public static void saveTargetUriData(ILaunchConfigurationWorkingCopy configuration, TargetUriData targetData, int index) {
- configuration.setAttribute(getIndexedName(IQvtLaunchConstants.TARGET_TYPE, index), targetData.getTargetType().toString());
- configuration.setAttribute(getIndexedName(IQvtLaunchConstants.TARGET_MODEL, index), targetData.getUriString());
- configuration.setAttribute(getIndexedName(IQvtLaunchConstants.FEATURE_NAME, index), targetData.getFeature());
- configuration.setAttribute(getIndexedName(IQvtLaunchConstants.CLEAR_CONTENTS, index), targetData.isClearContents());
+
+ return new TargetUriData(targetType, uri, feature, clearContents, contentProvider);
+ }
+
+ public static void saveTargetUriData(ILaunchConfigurationWorkingCopy configuration, List<TargetUriData> targetData) {
+ int index = 1;
+ for (TargetUriData targetUri : targetData) {
+ QvtLaunchUtil.saveTargetUriData(configuration, targetUri, index);
+ ++index;
+ }
+ }
+
+ public static void saveTargetUriData(ILaunchConfigurationWorkingCopy configuration, TargetUriData targetData, int index) {
+ configuration.setAttribute(getIndexedName(IQvtLaunchConstants.TARGET_TYPE, index), targetData.getTargetType().toString());
+ configuration.setAttribute(getIndexedName(IQvtLaunchConstants.TARGET_MODEL, index), targetData.getUriString());
+ configuration.setAttribute(getIndexedName(IQvtLaunchConstants.FEATURE_NAME, index), targetData.getFeature());
+ configuration.setAttribute(getIndexedName(IQvtLaunchConstants.CLEAR_CONTENTS, index), targetData.isClearContents());
if (targetData.getContentProvider() != null) {
try {
@@ -134,55 +135,55 @@
} catch (CoreException e) {
}
}
- }
-
- public static Map<String, Object> getConfigurationProperty(ILaunchConfiguration configuration) {
- return loadConfigurationProperties(configuration);
- }
-
- public static ExecutionContext createContext(ILaunchConfiguration configuration) {
- return createContext(configuration, Log.NULL_LOG, new NullProgressMonitor());
- }
-
- public static ExecutionContext createContext(ILaunchConfiguration configuration, Log log, IProgressMonitor monitor) {
- return createContext(getConfigurationProperty(configuration), log, monitor);
- }
-
+ }
+
+ public static Map<String, Object> getConfigurationProperty(ILaunchConfiguration configuration) {
+ return loadConfigurationProperties(configuration);
+ }
+
+ public static ExecutionContext createContext(ILaunchConfiguration configuration) {
+ return createContext(configuration, Log.NULL_LOG, new NullProgressMonitor());
+ }
+
+ public static ExecutionContext createContext(ILaunchConfiguration configuration, Log log, IProgressMonitor monitor) {
+ return createContext(getConfigurationProperty(configuration), log, monitor);
+ }
+
public static ExecutionContext createContext(Map<String, Object> configProps) {
return createContext(configProps, Log.NULL_LOG);
}
-
+
public static ExecutionContext createContext(Map<String, Object> configProps, Log log) {
return createContext(configProps, log, new NullProgressMonitor());
}
-
+
public static ExecutionContext createContext(Map<String, Object> configProps, Log log, IProgressMonitor monitor) {
ExecutionContextImpl context = new ExecutionContextImpl();
if (configProps != null) {
- for (String name : configProps.keySet()) {
+ for (String name : configProps.keySet()) {
context.setConfigProperty(name, configProps.get(name));
}
}
-
+
context.setLog(log);
context.setProgressMonitor(monitor);
-
- return context;
+
+ return context;
}
-
- public static Map<String, Object> loadConfigurationProperties(ILaunchConfiguration configuration) {
- Map<String, Object> map;
- try {
+
+ public static Map<String, Object> loadConfigurationProperties(ILaunchConfiguration configuration) {
+ Map<String, Object> map;
+ try {
Map<String, String> configProps = configuration.getAttribute(IQvtLaunchConstants.CONFIGURATION_PROPERTIES, Collections.<String, String>emptyMap());
- map = new LinkedHashMap<String, Object>(configProps);
- } catch (CoreException e) {
- map = Collections.<String, Object>emptyMap();
- QvtRuntimePlugin.getDefault().getLog().log(MiscUtil.makeErrorStatus(e));
- }
- return map;
- }
-
- public static Map<String, Object> getConfigProperties(ExecutionContext context) {
+ map = new LinkedHashMap<String, Object>(configProps);
+ } catch (CoreException e) {
+ map = Collections.<String, Object>emptyMap();
+ QvtRuntimePlugin.getDefault().getLog().log(MiscUtil.makeErrorStatus(e));
+ }
+ return map;
+ }
+
+ public static Map<String, Object> getConfigProperties(ExecutionContext context) {
Map<String, Object> props = new HashMap<String, Object>();
for(String name : context.getConfigPropertyNames()) {
props.put(name, context.getConfigProperty(name));
@@ -191,100 +192,100 @@
}
-
- private static String getIndexedName(String name, int index){
- if (index == 0) {
- return name;
- }
- return name + index;
- }
- public static void doLaunch(QvtTransformation transformation, ILaunchConfiguration configuration, ExecutionContext context) throws CoreException, MdaException {
- List<TargetUriData> targetUris = getTargetUris(configuration);
-
- List<URI> paramUris = new ArrayList<URI>(targetUris.size());
- for(TargetUriData data : targetUris) {
- paramUris.add(data.getUri());
- }
-
- String traceFile = getTraceFileURI(configuration);
- doLaunch(transformation, paramUris, toUri(traceFile), context, shouldGenerateTraceFile(configuration), isIncrementalUpdate(configuration));
- }
+ private static String getIndexedName(String name, int index){
+ if (index == 0) {
+ return name;
+ }
+ return name + index;
+ }
+
+ public static void doLaunch(QvtTransformation transformation, ILaunchConfiguration configuration, ExecutionContext context) throws CoreException {
+ List<TargetUriData> targetUris = getTargetUris(configuration);
+
+ List<URI> paramUris = new ArrayList<URI>(targetUris.size());
+ for(TargetUriData data : targetUris) {
+ paramUris.add(data.getUri());
+ }
+
+ String traceFile = getTraceFileURI(configuration);
+ doLaunch(transformation, paramUris, toUri(traceFile), context, shouldGenerateTraceFile(configuration), isIncrementalUpdate(configuration));
+ }
@Deprecated
public static void doLaunch(QvtTransformation transformation, List<ModelContent> inObjs, Map<String, Object> configProps,
List<ModelExtentContents> outExtents, List<EObject> outMainParams, List<Trace> outTraces, List<String> outConsole) throws MdaException {
-
- IStatus status = QvtValidator.validateTransformation(transformation, inObjs, null);
- if (status.getSeverity() > IStatus.WARNING) {
- throw new MdaException(status);
- }
-
- final StringWriter consoleLogger = new StringWriter();
-
- ExecutionContext context = createContext(configProps, new WriterLog(consoleLogger));
-
- org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.In in =
- new org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.In(
- inObjs.toArray(new ModelContent[inObjs.size()]), context);
+
+ IStatus status = QvtValidator.validateTransformation(transformation, inObjs, null);
+ if (status.getSeverity() > IStatus.WARNING) {
+ throw new MdaException(status);
+ }
+
+ final StringWriter consoleLogger = new StringWriter();
+
+ ExecutionContext context = createContext(configProps, new WriterLog(consoleLogger));
+
+ org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.In in =
+ new org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.In(
+ inObjs.toArray(new ModelContent[inObjs.size()]), context);
org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.Out out = transformation.run(in);
-
- outExtents.addAll(out.getExtents());
-
- for (Object outValue : out.getOutParamValues()) {
- if (outValue instanceof EObject) {
- outMainParams.add((EObject) outValue);
- }
- else {
- outMainParams.add(null);
- }
- }
-
- if (out.getTrace() != null) {
- outTraces.add(out.getTrace());
- }
- outConsole.add(consoleLogger.getBuffer().toString());
+
+ outExtents.addAll(out.getExtents());
+
+ for (Object outValue : out.getOutParamValues()) {
+ if (outValue instanceof EObject) {
+ outMainParams.add((EObject) outValue);
+ }
+ else {
+ outMainParams.add(null);
+ }
+ }
+
+ if (out.getTrace() != null) {
+ outTraces.add(out.getTrace());
+ }
+ outConsole.add(consoleLogger.getBuffer().toString());
}
-
+
public static void doLaunch(final QvtTransformation transf, List<URI> paramUris, URI traceUri, ExecutionContext context,
- boolean isSaveTrace, boolean isIncrementalUpdate) throws MdaException {
-
- TransformationRunner runner = new QvtTransformationRunner(transf, paramUris);
-
- runner.setTraceFile(traceUri);
- runner.setSaveTrace(isSaveTrace && traceUri != null);
- runner.setIncrementalUpdate(isIncrementalUpdate && traceUri != null);
-
- Diagnostic diag = runner.execute(context);
-
- IStatus status = BasicDiagnostic.toIStatus(diag);
-
- if (!status.isOK()) {
-
- Throwable e = diag.getException();
-
- // ensure stack trace access by propagating QvtRuntimeException
- if (e instanceof QvtRuntimeException) {
- throw (QvtRuntimeException) e;
- }
-
- throw new MdaException(status);
- }
+ boolean isSaveTrace, boolean isIncrementalUpdate) throws CoreException {
+
+ TransformationRunner runner = new QvtTransformationRunner(transf, paramUris);
+
+ runner.setTraceFile(traceUri);
+ runner.setSaveTrace(isSaveTrace && traceUri != null);
+ runner.setIncrementalUpdate(isIncrementalUpdate && traceUri != null);
+
+ Diagnostic diag = runner.execute(context);
+
+ IStatus status = BasicDiagnostic.toIStatus(diag);
+
+ if (!status.isOK()) {
+
+ Throwable e = diag.getException();
+
+ // ensure stack trace access by propagating QvtRuntimeException
+ if (e instanceof QvtRuntimeException) {
+ throw (QvtRuntimeException) e;
+ }
+
+ throw new CoreException(status);
+ }
}
- private static URI toUri(String uriString) throws MdaException {
- if(uriString == null || uriString.length() == 0) {
- return null;
- }
+ private static URI toUri(String uriString) throws CoreException {
+ if(uriString == null || uriString.length() == 0) {
+ return null;
+ }
- URI uri = EmfUtil.makeUri(uriString);
- if(uri == null) {
- throw new MdaException(NLS.bind(Messages.QvtValidator_InvalidUri, uriString));
- }
-
- return uri;
+ URI uri = EmfUtil.makeUri(uriString);
+ if(uri == null) {
+ throw new CoreException(new Status(IStatus.ERROR, QvtRuntimePlugin.ID, NLS.bind(Messages.QvtValidator_InvalidUri, uriString)));
+ }
+
+ return uri;
}
-
+
private static class QvtTransformationRunner extends TransformationRunner {
public QvtTransformationRunner(QvtTransformation transf, List<URI> paramUris) {
super(transf, paramUris);