###############################################################################
# Copyright (c) 2011, 2015 Willink Transformations 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:
#     E.D.Willink - initial API and implementation
###############################################################################

AmbiguousModelType = Ambiguous model types ''{0}'' or ''{1}'' for ''{2}''
AmbiguousOperation = Ambiguous operation ''{0}'' in ''{1}''
ConvertibleValueRequired = Value convertible to ''{0}'' required
EObjectRequired = EObject rather than ''{0}'' required
EmptyCollection = Empty ''{0}'' for ''{1}''
ImplementationClassLoadFailure = Failed to load ''{0}''
IndexNotInUse = Index ''{0}'' not in use
IndexOutOfRange = Index ''{0}'' out of range; size is ''{1}''
IndexesOutOfRange = Indexes ''{0}''..''{1}'' out of range; size is ''{2}''
InvalidArgument = Invalid argument ''{0}''
IncompatibleModelType = Incompatible type: ''{0}'' has no model type 
IncompatibleOclAsTypeSourceType = Incompatible source type: ''{0}'' for oclAsType({1}) 
IncompleteInitialization = Incomplete Initialization of ''{0}''
InvalidCharacter = Invalid Character ''{0}''
InvalidInteger = Invalid Integer ''{0}''
InvalidLiteral = invalid
InvalidOperation = Invalid operation ''{0}'' for ''{1}''
InvalidReal = Invalid Real ''{0}''
InvalidSource = Invalid source for ''{0}''
MapValueForbidden = No safe navigation of Map values
MissingResult = Missing result for ''{0}''
MissingSourceType = Missing source type
MissingSourceValue = Missing source value
MissingSubstring = Missing substring ''{0}'' in ''{1}''
MissingValue = Missing value for ''{0}''
NonBinaryOperation = Non-binary operation for ''{0}''::''{1}''
NonBooleanBody = Non-Boolean body for ''{0}''
NonFiniteIntegerValue = Non-finite value for Integer or Real
NonPositiveUnlimitedNaturalValue = Non-positive value for UnlimitedNatural
NullNavigation = Null {0} for {1}
TypedResultRequired = ''{0}'' result required
TypedValueRequired = ''{0}'' rather than ''{1}'' value required
UndefinedBody = Undefined body for ''{0}'' iteration
UndefinedInitialiser = Undefined initializer
UndefinedOperation = Undefined operation for ''{0}''
UndefinedResult = Undefined result for ''{0}''
UnknownSourceType = Unknown source type
UnspecifiedSelfContext = The context of ''self'' is unspecified
UnsupportedCompareTo = Unsupported compareTo for ''{0}'' and ''{1}''

#
# Describes the processing phase in which validation messages arise
#
Validation = Validation

#
# Indicates that the OCL constraint has not been satisfied.
#   0 - the OCL constraint
#   1 - the problem object
#
ValidationConstraintIsNotSatisfied_ERROR_ = The ''{0}'' constraint is violated for ''{1}''

#
# Indicates that the OCL constraint could not be evaluated.
#   0 - the OCL constraint name
#   1 - the failure description
#
ValidationEvaluationFailed_ERROR_ = Evaluation of ''{0}'' failed: ''{1}''

Severity_Cancel = CANCEL
Severity_Fatal_Error = FATAL-ERROR
Severity_Error = ERROR
Severity_Warning = WARNING
Severity_Info = INFO
Severity_OK = OK

Phase_Parser = Parser
Phase_Unparser = Unparser
Phase_Lexer = Lexer
Phase_Analyzer = Analyzer
Phase_Validator = Validator
Phase_Utility = Utility
