# <copyright>
#
# Copyright (c) 2016 itemis 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
# https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
#
# Contributors:
#     itemis - Initial API and implementation
#
# </copyright>


# -------------------------------------------------------------------- #
#  Internal messages for org.eclipse.sphinx.emf.mwe.dynamic.launching  #
# -------------------------------------------------------------------- #

operation_runWorkflow_label=Run Workflow

error_workflowClassNotFound=Workflow class ''{0}'' could not be found
error_workflowFileDoesNotExist=Workflow file ''{0}'' does not exist
error_modelResourceDoesNotExist=Model resource ''{0}'' does not exist
