##############################################################################
# Copyright (c) 2007, 2015 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 v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#   
# Contributors:
#     Borland Software Corporation - initial API and implementation
#     Alex Paperno - bugs 272869, 268636, 414363, 419299, 419299, 414619,
#                    420970, 413391, 414347, 424584
#     Christopher Gerking - bugs 289982, 427237, 425634
###############################################################################
AmbiguousModuleReference=Ambiguous module reference ''{0}''
AmbiguousOperationLookup=Ambiguous operation lookup
AmbiguousOperationReference=Operation reference is ambiguous. Choosing first of {0}
nonModelTypeError=''{0}'' is an invalid type for created object.  Must use a model element type
#abstractTypeError=The class ''{0}'' is abstract. Must use a concrete class
ReturnTypeMismatch=Virtual operation ''{0}'' must have the same return type as base operation: ''{1}''
#wrongPackageError=The declared package ''{0}'' does not match the expected package ''{1}''
mappingGuardNotBooleanError=The mapping guard type ''{0}'' does not conform to ''Boolean''
mappingWhereNotBooleanError=The mapping post condition type ''{0}'' does not conform to ''Boolean''
ModelTypeWhereNotBooleanError=The WHERE condition type ''{0}'' does not conform to ''Boolean''
noPropertyInTypeError=There is no property ''{0}'' in type ''{1}''
propertyAlreadyExistsInTypeError=Property ''{0}'' already exists in type ''{1}''
readOnlyPropertyModificationError=The property ''{0}'' is read-only
unresolvedNameError=''{0}'' cannot be resolved

mappingOperationExpected=Mapping operation expected
#useMapKeywordWarning=Use 'map' keyword for mapping operation calls
incorrectCastWarning=Incorrect cast
#lateResolveWarning=Late resolve value is accessed before being assigned to property

ContextParamMustBeInOrInout=Mapping context parameter direction kind must be 'in' (default) or 'inout'
ContextParamMustBeIn=Query context parameter direction kind must be 'in'
SameParamName=Duplicate parameter name ''{0}''
ReadOnlyProperty=Property ''{0}'' is read-only
NoImplicitSourceForQualifiedCall=No implicit source instance available for qualified call to ''{0}''
NoLibrary=Library ''{0}'' not found
FailedToLoadUnit=Failed to load unit ''{0}''
MissingMessageLogExpArgumentError=Missing message argument(0) in 'log' expression
DuplicateMetamodelImport=Metamodel ''{0}'' is already declared in this model type
moduleNameMustBeSimpleIdentifierError= Module name ''{0}'' must must be a simple identifier
failedToResolveMetamodelError=Failed to resolve metamodel ''{0}''
bodyTypeNotCompatibleWithReturnTypeError=Body type {0} is not compatible with return type {1}
notAnLValueError=Cannot assign to this expression since it is not an lvalue
tupleMutationError=Cannot reassign element ''{0}'' of tuple ''{1}'' because tuples are immutable
outParamNotAnLValueError=Argument of an out parameter must be an lvalue
outParamNotSameTypeError=Argument of an out parameter must have the same type as the parameter 
CantAssignToSelf=Cannot assign to mapping context parameter
CantAssignToThis=Cannot assign to 'this' variable
inputParameterModificationError=Modified parameter ''{0}'' is input only
UnresolvedConstructor=Unresolved constructor on type ''{0}''
UnknownClassifierType=Unknown classifier type ''{0}''
UnresolvedModuleReference=Can''t resolve module reference ''{0}''
invalidPropertyReferenceError=Invalid property reference
ConfigPropertyMustHaveType=Configuration property ''{0}'' must have a type
ConfigPropertyTypeUnsupported=The type ''{0}'' is not currently supported for configuration properties
#MappingWithoutResultMustNotHaveBody=Mapping without result must not have a body
OutParamsNotSupported=Out parameters are not supported
OutParamWithoutExtent=Out parameter should specify model extent

ContextlessConstructor=Constructor cannot be defined without context
ConstructorNameMismatch=Name of the constructor is necessarily the name of the context type

# used by SemanticUtil
SemanticUtil_0=Operation ''{0}'' is already defined for type ''{1}''
SemanticUtil_3=Property ''{0}'' must have collection type
SemanticUtil_5=The type ''{2}'' does not conform to the base type ''{1}'' of the multi-valued property ''{0}'' 
SemanticUtil_8=The type ''{2}'' does not conform to the type ''{1}'' of the property ''{0}''
TypesDoNotConform=The type ''{1}'' does not conform to the type ''{0}''
NameAlreadyDefinedError=Name ''{0}'' already defined
TypeMismatchError=Type mismatch: can not convert from ''{1}'' to ''{0}'' type
VariableTypeTypeError=Variable cannot be initialized with a type expression
PropertyTypeTypeError=Property cannot be initialized with a type expression
ModulePropertyAlreadyDefined=Transformation property ''{0}'' is already defined either in this or in imported module
IntermediatePropertiesInitNotSupported=Intermediate property initialization expression is not supported
IntermediatePropertyAlreadyDefined=Intermediate property ''{0}'' is already defined either in this or in imported module
IntermediatePropertyNotAllowed=Intermediate property definition is allowed only for transformation
IntermediateClassifierNotAllowed=Intermediate classifier definition is allowed only for transformation
ExceptionDefNotAllowed=Exception definition is allowed only for transformation
DuplicateProperty=Duplicate property ''{0}''
DuplicateClassifier=Duplicate classifier ''{0}''
InvalidClassifierForExtend=Type ''{0}'' can''t by extended 
CycleInIntermHierarchy=Cycle in hierarchy of type ''{0}'' detected
HidingProperty=Property ''{0}'' hides property with the same name from superclass
HidingStdlibOperationDiscouraged=Hiding operation ''{0}'' from standard library is discouraged

LibOperationAnalyser_ParametersOsReturnTypeNotFound=Additional operation {0} parameters/return type parsing error(s): {1}
LibOperationAnalyser_OperationParsingError=Additional operation {0} was not defined due to a parsing error
QvtOperationalValidationVisitor_CannotDeclareVariables=Cannot declare variables here\!
QvtOperationalValidationVisitor_incompatibleArgumentModelType=Actual argument type ''{0}'' is not compatible to expected modeltype ''{1}''
QvtOperationalValidationVisitor_invalidContextualType=''{0}'' is invalid contextual type
QvtOperationalValidationVisitor_invalidInstantiatedType=Can''t instantiate type ''{0}''
QvtOperationalValidationVisitor_MainInLibraryError=Libraries cannot have entry operations\!
QvtOperationalValidationVisitor_ParameterlessMainExpected=''{0}'' requires parameter-less main() entry operation for explicit instantiation
QvtOperationalValidationVisitor_parameterNamedRequired=A parameter name must be specified
QvtOperationalValidationVisitor_resultParamDirectionMustBeOut=Result parameter requires [out] direction kind
QvtOperationalValidationVisitor_unresolvedTransformationSignature=Can''t resolve transformation signature ''{0}{1}'', ''{0}{2}'' was found.
QvtOperationalVisitorCS_ResolveInMappingNotFound=Mapping ''{0}'' not found\!
QvtOperationalVisitorCS_transformationNameDuplicates=Transformation with name ''{0}'' is already defined in this compilation unit.

QvtOperationalVisitorCS_booleanTypeExpressionExpected=''Boolean'' type expression expected, expression of ''{0}'' type found.
QvtOperationalVisitorCS_canNotInstantiateAbstractType=Can''t instantiate abstract type ''{0}''
QvtOperationalVisitorCS_duplicateQualifierOnOperation=Duplicate qualifier ''{0}'' on operation ''{1}''
QvtOperationalVisitorCS_incompatibleTargetVariableType=Incompatible target type ''{0}'' on resolveIn expression with mapping ''{1}''
QvtOperationalVisitorCS_invalidResolveInMapping=Mapping ''{0}'' requires context or result parameter to be used for resolveIn 
QvtOperationalVisitorCS_unsupportedInheritedBlackboxMapping=Unsupported inherited blackbox mapping ''{0}'' on mapping ''{1}''
QvtOperationalVisitorCS_unsupportedMergedBlackboxMapping=Unsupported merged blackbox mapping ''{0}'' on mapping ''{1}''
QvtOperationalVisitorCS_unsupportedInheritanceOnBlackboxMapping=Unsupported inherited mapping ''{0}'' on blackbox mapping ''{1}''
QvtOperationalVisitorCS_noBlackboxImplementationFound=No blackbox implementation found for ''{0}''. Make sure that an implementation is available when running the transformation.
QvtOperationalVisitorCS_ambiguousBlackboxImplementationFound=Ambiguous blackbox implementation found for ''{0}''. More than one Java method matches the required signature.
QvtOperationalVisitorCS_operationDefinitionInsideBlackboxModule=Illegal definition of operation ''{0}'' inside blackbox module.
QvtOperationalVisitorCS_intermediatePropertyDefinitionInsideBlackboxModule=Illegal definition of intermediate property ''{0}'' inside blackbox module.
QvtOperationalVisitorCS_localPropertyDefinitionInsideBlackboxModule=Illegal definition of property ''{0}'' inside blackbox module.
QvtOperationalVisitorCS_intermediateClassDefinitionInsideBlackboxModule=Illegal definition of intermediate class ''{0}'' inside blackbox module.
QvtOperationalVisitorCS_extendsOfBlackboxModule=Blackbox module ''{0}'' is not intended for extension. Only ''access'' import mode is allowed. 
QvtOperationalVisitorCS_AbstractTypesNotInitialized=Result and out parameters of abstract types must be instantiated or assigned in the init-section
QvtOperationalVisitorCS_unsupportedMetamodelComplianceKind=Metamodel compliance kind ''{0}'' not supported. Assumed 'strict' compliance instead
QvtOperationalVisitorCS_unsupportedQualifierOnOperation=Unsupported qualifier ''{0}'' on operation ''{1}''
QvtOperationalVisitorCS_blackboxOperationWithBodyNotAllowed=Blackbox operation ''{0}'' must not specify an operation body
QvtOperationalVisitorCS_unsupportedQualifierOnConstructor=Unsupported qualifier ''{0}'' on constructor ''{1}''
QvtOperationalVisitorCS_blackboxConstructorWithBodyNotAllowed=Blackbox constructor ''{0}'' must not specify an operation body
QvtOperationalVisitorCS_unsupportedBlackboxQualifierOnDisjunctiveMapping=Disjunctive mapping ''{0}'' must not be declared as blackbox
QvtOperationalVisitorCS_unresolvedMappingOperationReference=Unresolved mapping operation reference ''{0}''
QvtOperationalVisitorCS_metamodelPackageRefInconsistent=Cannot locate metamodel name ''{0}'' under specified URI
QvtOperationalVisitorCS_metamodelConditionsNotSupported=Metamodel conditions are not supported in current implementation
missingReturnValueError=Missing value in 'return' expression
QvtOperationalVisitorCS_metamodelSinglePackageRefSupported=Only single package reference is supported in current implementation
QvtOperationalVisitorCS_ambiguousMappingOperationReference=Ambiguous mapping operation reference ''{0}''. Multiple operations of different signatures exist.
QvtOperationalVisitorCS_BadArg_ERROR_=Missing argument expression
QvtOperationalVisitorCS_metamodelNameAmbiguous=Metamodel name ''{0}'' resolves in several URI  ''{1}''  
QvtOperationalVisitorCS_metamodelAlreadyUsed=Metamodel ''{0}'' already referred by other model type  
QvtOperationalVisitorCS_modeltypeDeprecatedSyntax=Such model type declaration syntax is deprecated
typeMismatchError=Type mismatch, can not convert to ''{0}''
QvtOperationalVisitorCS_modeltypeAlreadyDefined=Model type ''{0}'' already defined
QvtOperationalVisitorCS_transfQualifiersNotSupported=Transformation qualifiers not supported
QvtOperationalVisitorCS_transfRefineNotSupported=Transformation refine not supported
QvtOperationalVisitorCS_transfUsagesNotSupported=Transformation module usages not supported
QvtOperationalVisitorCS_transfParamWrongType=Type of transformation parameter should be model type
QvtOperationalVisitorCS_extentWrongName=Wrong extent ''{0}'' name. For the given context valid extents are {1}
QvtOperationalVisitorCS_extentDuplicateUse=Only one parameter in given extent is allowed in main
QvtOperationalVisitorCS_unsupportedQualifierOnTransformation=Unsupported qualifier ''{0}'' on transformation ''{1}''
QvtOperationalVisitorCS_duplicateQualifierOnTransformation=Duplicate qualifier ''{0}'' on transformation ''{1}''

QvtOperationalVisitorCS_extentDirectionMismatch=Direction of main parameter should match direction of its' extent
QvtOperationalVisitorCS_canNotModifyINParameter=Can''t modify IN parameter ''{0}''
QvtOperationalVisitorCS_ContextualPropertyTypeIsNotClass=The contextual type for intermediate property ''{0}'' must be a class
QvtOperationalVisitorCS_ContextualPropertyTypeIsMissed=Missed contextual type for intermediate property
QvtOperationalVisitorCS_extentFailToInfer=Cannot infer model extent for the type ''{0}''. Specify extent explicitly
QvtOperationalVisitorCS_oclParseNPE=Error parsing OCL expression
QvtOperationalVisitorCS_entryPointShouldBeDeclOnce=''{0}'' denotes transformation entry point which should be one per module
QvtOperationalVisitorCS_FeatureNotFoundForType=Feature not found for type {0}\!
QvtOperationalVisitorCS_ifExpWithoutElseAssignment=''else'' part of if..then..else is missed in assignment expression
QvtOperationalVisitorCS_ifExpIncomplete=Incomplete if expression, missed mandatory parts
QvtOperationalVisitorCS_ifExpNonBooleanCond=If expression condition must be boolean-valued
QvtOperationalParserUtil_inoutParamAssignmentError=Can''t assign a value to ''inout'' parameter ''{0}''
QvtOperationalParserUtil_outParamAssignmentError=Can''t assign a value to ''out'' parameter ''{0}'' outside ''init'' section
QvtOperationalVisitorCS_incompatibleTransfSignature=Signature of the imported transformation is not compatible with the given transformation
QvtOperationalVisitorCS_mapKeywordNotUsed=Mapping operation ''{0}'' should be called using ''(x)map'' keyword
QvtOperationalVisitorCS_WrongImperativeIteratorConditionType=Condition must be a TypeExp or Boolean\!
returnNotAllowedInMappingYet=Using ''return'' from mapping operation is not yet supported
returnUsedOutsideOperationBody=Using ''return'' outside operation body
useReturnExpForOperationResult=Use 'return' expression to return result from operation. The last expression or 'null' from empty body is returned implicitly.
directCallToAbstractMappingDisallowed=Can not call abstract mapping ''{0}'' with abstract out/result parameter type directly. Use with 'inherits', 'disjuncts', 'merges' in other mappings
QvtOperationalVisitorCS_instantiatedTypeDoesNotConformToReferredType=Instantiated object type ''{0}'' does not conform to referred object type ''{1}''
QvtOperationalVisitorCS_duplicateMappingRereferenceInExtensionKind=Duplicate ''{0}'' reference to mapping operation ''{1}''
QvtOperationalVisitorCS_LibrarySignatureErrorDirectionKindSpecified=Direction kind cannot be specified here. Library signature must be a list of model types\!
QvtOperationalVisitorCS_LibrarySignatureErrorDuplicateModelType=Model type {0} is already present in the library signature\!
QvtOperationalVisitorCS_LibrarySignatureErrorModelExtentSpecified=Model extent cannot be specified here
QvtOperationalVisitorCS_LibrarySignatureErrorParameterNameSpecified=Parameter name cannot be specified here. Library signature must be a list of model types\!
QvtOperationalVisitorCS_OperationNotFound_ERROR_=Cannot find operation ({0}) for the type ({1})
QvtOperationalVisitorCS_OperationNotFoundForCollectionAndItsElement=Cannot find operation ({0}) neither for the type ({1}) nor for its element type ({2})
QvtOperationalVisitorCS_resultParamNameDirectionNotAllowed=Result parameter direction should not be specified, [out] is assumed by default
QvtOperationalVisitorCS_resultParamNameNotAllowed=Parameter name ''{0}'' should not be specified for single result
QvtOperationalVisitorCS_SeeErrorLogForDetails={0}. See error log for details
QvtOperationalVisitorCS_incrementalAssignmentResultNotAllowed=Incremental assignment to 'result' outside the init{} mapping section is only allowed for mutable QVTo types (List and Dict)
QvtOperationalVisitorCS_assignmentResultNotAllowed=Assignment to 'result' is only allowed in the init{} mapping section
QvtOperationalVisitorCS_libraryCantExtendNonLibrary=Library cannot extend the non-library module ''{0}''
QvtOperationalVisitorCS_cantUseLibraryAsType=Cannot use library ''{0}'' as a type
QvtOperationalVisitorCS_possibleEqualityInsteadOfAssignment=Possible use of equality operator instead of assignment operator
QvtOperationalVisitorCS_iterateExpIncomplete=Incomplete iterate expression, missed mandatory parts
QvtOperationalVisitorCS_TypeConformanceIteratorResult_ERROR_= Iterator result type must be Boolean
QvtOperationalVisitorCS_TypeConformanceCollectSequence_ERROR_= Collect type must be Sequence
QvtOperationalVisitorCS_TypeConformanceCollectBag_ERROR_= Collect type must be Bag
QvtOperationalVisitorCS_TypeConformanceSelectReject_ERROR_= Select/reject type must be the same as the source type
QvtOperationalVisitorCS_TypeConformanceIteratorBodyBoolean_ERROR_= Iterate Expression body type must be Boolean
QvtOperationalVisitorCS_IteratorSource_ERROR_= The source of an iterator must be a collection
QvtOperationalVisitorCS_TypeConformanceClosure_ERROR_= Closure type must be Set
QvtOperationalVisitorCS_IterateExpLoopVarInit_ERROR_= Iteration expression iterator variable may not be initialized
QvtOperationalVisitorCS_TypeConformanceIteratorExpLoopVar_ERROR_= Iterator variable must have same type as source element type
ResolveExpMustHaveASource=ResolveExp must have a source
CannotExtendExceptionExplicitly=Only exception can extends from ''Stdlib::Exception''
CannotCatchNonException=''{0}'' is not an exception type
CannotRaiseNonException=''{0}'' is not an exception type
UncatchableCatchBlock=Unreachable catch block for ''{0}''. It is already handled by the catch block for ''{1}''
QvtOperationalVisitorCS_deprecatedResultTupleAccess=The ''result'' tuple variable is deprecated. Access the single result parameters directly.

OperationIsUndefined=The operation ''{0}'' is undefined for the type ''{1}''
OperationOverrideWithInvalidReturnType=Operation ''{0}'' attempts to override operation in module ''{1}'' with incompatible return type

UknownSeverityKindError=Unknown severity identifier ''{0}''. Use ''warning'', ''error'', ''fatal''.
BooleanTypeAssertConditionError='assert' expression must define a boolean type condition
StringTypeMessageLogArgumentError=A string type message argument(1) expected
StringTypeMessageExcArgumentError='raise' expression argument must be of String type
LogLevelNumberArgumentError=A logging level number argument(2) expected
UnsupportedLogExpArgumentError=Unsupported 'log' expression argument({0}), too many arguments.
LogExpBooleanTypeConditionError='log' expression condition must be of boolean type
lateResolveNotUsedInDeferredAssignment=The result of ''late resolve'' must be assigned to a property or non-local variable to execute as deferred assignment
DefaultConstructorNotDefinedImplicitUsed=No constructor defined, using implicit constructor (equal to empty inline instantiation)
DeprecatedImplicitSourceCall_contextualImplicitCall=Use 'self' explicitly as the source object to perform a call on the context type.
DeprecatedImplicitSourceCall_moduleScopeImplicitCall=Call on non-transformation/library feature using implicit source object. Use 'this' explicitly
DeprecatedLibraryImportStatement=Library import statement is deprecated. Use plain ''import {0};'' instead
DeprecatedRenameStatement=Deprecated 'rename' statement. Replace by: tag "alias" <scoped_identifier> = <name>
MappingExtension_disjunctingMappingBodyNotExecuted=The body of disjuncting mapping ''{0}'' gets never executed
MappingExtension_illegalExtensionKindOnDisjunctingMapping=Disjuncting mapping operation ''{0}'' can not use ''{1}'' on mapping ''{2}'', its body (init/end section) is not executed.
MappingExtension_illegalOutParamDisjunctingMapping=Mapping operation ''{0}'' has non-conformant signature for ''disjuncts'' in ''{2}'', parameter ''{1}'' has a different type
MappingExtension_nonConformantSignatureForMappingExtension=Mapping operation ''{0}'' has non-conformant signature for ''{1}'' in ''{2}''

IntermClassifier_duplicatedStereotypeQualifier=Duplicated declaration of stereotype qualifier ''{0}''
IntermClassifier_unapplicableStereotypeQualifier=Stereotype qualifier ''{0}'' is applicable only to attribute
IntermClassifier_unknownStereotypeQualifier=Unknown stereotype qualifier ''{0}''
IntermClassifier_referenceOnlyFeatureKey=Feature key ''{0}'' is not applicable to attribute 
IntermClassifier_duplicatedFeatureKey=Duplicated declaration of feature key ''{0}''
IntermClassifier_unsupportedFeatureKey=Feature key ''{0}'' is not supported yet
IntermClassifier_oppositeOnlyForReferences=''opposite'' property is not applicable to attribute 
IntermClassifier_invalideOppositeType=''opposite'' property is not applicable for the type ''{0}''
IntermClassifier_invalideOppositeName=Opposite property ''{0}'' is not present in the type ''{1}''
IntermClassifier_incompatibleFeatureKeys=Feature keys ''{0}'' and ''{1}'' cannot be used simultaneously 

IntermClassifier_multiplicityInvalidLowerBound=The lower bound must be a non-negative integer literal
IntermClassifier_multiplicityInvalidRange=The upper bound must be greater than or equal to the lower bound
IntermClassifier_multiplicityEmptyRange=A multiplicity must define at least one valid cardinality that is greater than zero

BreakContinue_InvalidExpressionOwner=Expression ''{0}'' should be directly owned by imperative expression 
BreakContinue_InvalidExpressionUsage=Expression ''{0}'' cannot be used outside of a imperative loop
EntryOp_DepricatedParamDecl=Parameter declaration in the entry operation is deprecated. 
EntryOp_DisallowedDeclAsMapping=Declaring entry operation as a mapping is disallowed. 

DeprecatedElement=''{0}'' is deprecated
DeprecatedElementBy=''{0}'' is deprecated. Use ''{1}'' instead
UnsupportedElement=''{0}'' is not yet supported

TupleTypeMismatch=Tuple type mismatch: ({0}), ({1})
TupleFieldNumMismatch=Tuple type mismatch. Different number of parts: ({0}) ({1})
TupleFieldNotFound=Tuple type mismatch. Tuple part ({1}) of ({0}) not found in ({2})
TypeMismatchNoCommonType=Type mismatch. No common supertype: ({0}), ({1})

#
# Indicates attempt to use the @pre modifier in a non-postcondition context.
#
AtPreInPostcondition_ERROR_ = @pre may only be used in an operation postcondition constraint

# Indicates a static call to a non-static operation.
# args:
#   0 - the name of the operation
NonStaticOperation_ERROR_ = Static call to non-static operation "{0}"

# Indicates a static call to a non-static attribute.
# args:
#   0 - the name of the attribute
NonStaticAttribute_ERROR_ = Static reference to non-static attribute "{0}"

#
# Indicates that an operation call expression is missing the reference to the called operation.
# args:
#   0 - the text of the operation call expression
#
NullOperation_ERROR_ = Null operation in operation call ({0})

#
# Indicates that the source expression of an operation call expression is missing.
# args:
#   0 - the text of the operation call expression
#
NullSourceOperation_ERROR_ = Null source in operation call ({0})

#
# Indicates attempt to use the oclIsNew() operation in a non-postcondition context.
#
OCLIsNewInPostcondition_ERROR_ = oclIsNew() may only be called in an operation postcondition constraint

#
# Indicates that an operation call expression references an operation that is
# not a "query" (side-effect-free).
# args:
#   0 - the operation name
#
NonQueryOperation_ERROR_ = Cannot call operation ({0}) because it is not a query

#
# Indicates that the operation code referenced by an operation call expression
# does not match the internal code for the OCL pre-defined operation.
# args:
#   0 - the name of the OCL standard operation
#
IllegalOpcode_ERROR_ = Illegal opcode for ({0})

#
# Indicates that the return type of the operation referenced by an operation call
# expression differs from the result type of the expression.
# args:
#   0 - the type of the operation call expression
#
TypeConformanceOperation_ERROR_ = Operation return type does not match operation call expression type ({0})

#
# Indicates the usage of the a non-standard operation defined by the
# MDT implementation.
# args:
#   0 - the operation
#
NonStd_Operation_ = Usage of non-standard "{0}" operation

