################################################################################
# Copyright (c) 2006, 2017 Obeo and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     Obeo - initial API and implementation
#     Philip Langer - adds message for duplicate ID in IdentifierEObjectMatcher
################################################################################
## ! note ! double the apostrophes if you need one in the printed String

ModelUtils.LoadFailure=Unable to load model at {0}.
ModelUtils.LoadingError = An error has occurred during the loading of ''{0}''.
ModelUtils.NullInputStream=Input Stream for the model to load cannot be null.
ModelUtils.NullPath=Path cannot be null or empty.
ModelUtils.NullSaveRoot=Cannot serialize null object.
ModelUtils.NullRoot=Cannot attach 'null' to a resource.

DiffUtil.IllegalDiff=Cannot determine an insertion index for {0} differences.
DiffUtil.IllegalFeature=Feature {0} is not multi-valued.

ResourceAttachmentChangeSpec.MissingRS = Could not locate resource set to create {0}

IMerger.MissingMerger = No merger found for diff {0}

ProximityEObjectMatcher.monitor.indexing = indexing objects
ProximityEObjectMatcher.monitor.matching = matching objects

EMFCompare.ComparisonCancelled = Comparison has been cancelled.
DefaultReqEngine.monitor.req = Computing requirements...
DefaultDiffEngine.monitor.diff = Looking for differences...
DefaultEquiEngine.monitor.eq = Computing equivalences...
DefaultMatchEngine.monitor.match.resourceSet = Matching given resource sets...
DefaultMatchEngine.monitor.match.resource = Matching given resources...
DefaultMatchEngine.monitor.match.eobject = Matching given EObjects...
DefaultConflictDetector.monitor.detect = Looking for conflicts in diff {0} of {1}...
PostComparison.monitor.postprocessor = Running post-comparison processor ''{0}'' ({1} of {2})...

IdentifierEObjectMatcher.diagnosticMessage = Model Comparison Diagnostics
IdentifierEObjectMatcher.duplicateId = Duplicate ID {0} found on the {1} side.
IdentifierEObjectMatcher.duplicateIdWithResource = Duplicate ID ''{0}'' found on the {1} side in resource ''{2}''.
