# <copyright>
#
# Copyright (c) 2008-2016 See4sys, 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:
#     See4sys - Initial API and implementation
#     itemis - Removed obsolete messages and improved message names
#     itemis - [485407] Enable eager post-load proxy resolution to support manifold URI fragments referring to the same object
#
# </copyright>

# --------------------------------------------------- #
#  Internal messages for org.eclipse.sphinx.emf.workspace  #
# --------------------------------------------------- #

# Model loading messages

job_loadingModels=Loading Models
task_loadingModelsInProject=Loading models in project \"{0}\"
job_loadingModel=Loading Model
task_loadingModelInProject=Loading \"{0}\" model in project \"{1}\"
job_loadingModelResources=Loading Model Resources
task_loadingModelFiles=Loading model files
subtask_analyzingFile=Analyzing file \"{0}\"
subtask_loadingFile=Loading file \"{0}\"
subtask_initializingProxyResolutionForModelInRoot=Initializing proxy resolution for {0} model in \"{1}\"
subtask_resolvingProxiesInResource=Resolving proxies in \"{0}\"

task_unloadingModelsInProject=Unloading models in project \"{0}\"
task_unloadingModelInProject=Unloading \"{0}\" model in project \"{1}\"
job_unloadingModelResources=Unloading Model Resources
task_unloadingModelFiles=Unloading model files

job_reloadingModels=Reloading Models
task_reloadingModelsInProject=Reloading models in project \"{0}\"
job_reloadingModel=Reloading Model
task_reloadingModelInProject=Reloading \"{0}\" model in project \"{1}\"
job_reloadingModelResources=Reloading Model Resources
task_reloadingModelFiles=Reloading model files

job_unresolvingUnreachableCrossProjectReferences=Unresolving Unreachable Cross Project References
task_unresolvingUnreachableCrossProjectReferencesInProject=Unresolving unreachable cross project references in project \"{0}\"
operation_unresolvingUnreachableCrossProjectReferencesInModel=Unresolving unreachable cross project references
subtask_unresolvingUnreachableCrossProjectReferencesInResource=Unresolving unreachable cross project references in \"{0}\"

job_updatingResourceURIs=Updating Resource URIs
task_updatingResourceURIs=Updating resource URIs
subtask_updatingResourceURI=Updating resource URI of \"{0}\"

# Model project and file creation
subTask_creatingNewModelProject=Creating new model project
subTask_addingProjectNatures=Adding natures to project

# Model splitting
operation_splitModel_label=Split Model
subTask_savingModels=Saving Model Resources

# Error messages

error_createEditingDomainFactory=Creation of factory \"{0}\" failed, falling back to default factory.

error_createMapping=Creation of mapping \"{0}\" failed, falling back to default mapping.

error_createModelLoadManager=Creation of custom ModelLoadManager \"{0}\" failed, falling back to DefaultModelLoadManager.

error_multipleMappingsConfigured=Multiple registration of IWorkspaceEditingDomainMapping is not allowed.

error_notFound_editingDomainFactory=Could not find editing domain factory for meta-model \"{0}\".

error_unexpectedSourceType=Source of dirty change is an instance of {0}.

error_unsupportedLoadOperation=The given load operation \"{0}\" is not supported.

warning_multipleOverridesForSameURIChangeDetectorDelegate=Multiple overrides for same URI change detector delegate \"{0}\".

warning_multipleURIChangeDetectorDelegatesContributedForSameResourceType=Multiple URI change detector delegates contributed for same resource type \"{0}\".

warning_multipleOverridesForSameURIChangeListener=Multiple overrides for same URI change listener \"{0}\".

# Warning messages
