# Copyright (c) 2006, 2018 IBM Corporation, CEA, 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: 
#   IBM - initial API and implementation
#   Kenn Hussey (CEA) - 327039
#   Kenn Hussey - 535301
#

# NLS_MESSAGEFORMAT_VAR

UML2__Action = Action
UML2__Activity = Activity
UML2__Comment = Comment
UML2__Message = Message
UML2__TemplateSignature = TemplateSignature
UML2__Expression = Expression
UML2__OpaqueExpression = OpaqueExpression
UML2__TimeEvent = TimeEvent
UML2__TemplateableElement = TemplateableElement
UML2__ClassifierTemplateParameter = ClassifierTemplateParameter

_label_UML2 = UML2 Profile
_label_UML2__Action = UML2 Action
_label_UML2__Action__base_Action = Base Action
_label_UML2__Action__effect = Effect
_label_UML2__Activity = UML2 Activity
_label_UML2__Activity__base_Activity = Base Activity
_label_UML2__Activity__body = Body
_label_UML2__Activity__language = Language
_label_UML2__Comment = UML2 Comment
_label_UML2__Comment__base_Comment = Base Comment
_label_UML2__Comment__bodyExpression = Body Expression
_label_UML2__Message = UML2 Message
_label_UML2__Message__base_Message = Base Message
_label_UML2__Message__signature = Signature
_label_UML2__TemplateSignature = UML2 Template Signature
_label_UML2__TemplateSignature__base_TemplateSignature = Base Template Signature
_label_UML2__TemplateSignature__nestedSignature = Nested Signature
_label_UML2__TemplateSignature__nestingSignature = Nesting Signature
_label_UML2__Expression = UML2 Expression
_label_UML2__Expression__base_OpaqueExpression = Base Opaque Expression
_label_UML2__Expression__operand = Operand
_label_UML2__Expression__symbol = Symbol
_label_UML2__OpaqueExpression = UML2 Opaque Expression
_label_UML2__OpaqueExpression__base_Expression = Base Expression
_label_UML2__OpaqueExpression__behavior = Behavior
_label_UML2__OpaqueExpression__body = Body
_label_UML2__OpaqueExpression__language = Language
_label_UML2__TimeEvent = UML2 TimeEvent
_label_UML2__TimeEvent__base_TimeEvent = Base TimeEvent
_label_UML2__TimeEvent__when = When
_label_UML2__TemplateableElement = UML2 TemplateableElement
_label_UML2__TemplateableElement__base_Property = Base Property
_label_UML2__TemplateableElement__templateBinding = Template Binding
_label_UML2__TemplateableElement__ownedTemplateSignature = Owned Template Signature
_label_UML2__ClassifierTemplateParameter = UML2 ClassifierTemplateParameter
_label_UML2__ClassifierTemplateParameter__base_ClassifierTemplateParameter = Base ClassifierTemplateParameter
_label_UML2__ClassifierTemplateParameter__defaultClassifier = Default Classifier
_label_UML2__BehavioredClassifier = UML2 BehavioredClassifier
_label_UML2__BehavioredClassifier__base_BehavioredClassifier = Base BehavioredClassifier
_label_UML2__BehavioredClassifier__ownedTrigger = Owned Trigger
_label_UML2__InteractionUse = UML2 InteractionUse
_label_UML2__InteractionUse__base_InteractionUse = Base InteractionUse
_label_UML2__InteractionUse__argument = Argument

