#/*
# * Copyright (c) 2003, 2004 IBM Corporation and others.
# * All rights reserved.   This program and the accompanying materials
# * are made available under the terms of the Common Public License v1.0
# * which accompanies this distribution, and is available at
# * http://www.eclipse.org/legal/cpl-v10.html
# * 
# * Contributors: 
# *   IBM - Initial API and implementation
# *
# * $Id: plugin.properties,v 1.6 2004/05/04 19:17:48 khussey Exp $
# */

# ====================================================================
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName = UML2
providerName = Eclipse.org

_UI_Classifier_NoCyclesInGeneralization_diagnostic = Classifier ''{0}'' is both a transitively general and transitively specific classifier of the same classifier.
_UI_Classifier_SpecializeType_diagnostic = Classifier ''{0}'' specializes classifier ''{1}'' of invalid type.
_UI_Classifier_InheritedMember_diagnostic = The inherited members of classifier ''{0}'' are not derived by inheriting the inheritable members of its parents.
_UI_Classifier_GeneralEqualsParents_diagnostic = The general classifiers of classifier ''{0}'' are not the classifiers referenced by its generalization relationships.
_UI_Constraint_NotApplyToSelf_diagnostic = Constraint ''{0}'' is applied to itself.
_UI_Element_NotOwnSelf_diagnostic = Element ''{0}'' directly or indirectly owns itself.
_UI_Element_HasOwner_diagnostic = Element ''{0}'' must be owned, but it has no owner.
_UI_ElementImport_VisibilityPublicOrPrivate_diagnostic = The visibility of element import ''{0}'' is neither public nor private.
_UI_ElementImport_ImportedElementIsPublic_diagnostic = Imported element ''{0}'' has non-public visibility.
_UI_InstanceSpecification_SlotsAreDefined_diagnostic = The defining feature of slot ''{0}'' is not a structural feature (directly or inherited) of a classifier of instance specification ''{1}''.
_UI_InstanceSpecification_NoDuplicateSlots_diagnostic = Structural feature ''{0}'' is the defining feature of more than one slot in instance specification ''{1}''.
_UI_MultiplicityElement_UpperGT0_diagnostic = Multiplicity element ''{0}'' does not define at least one valid cardinality that is greater than zero.
_UI_MultiplicityElement_LowerGE0_diagnostic = The lower bound of multiplicity element ''{0}'' is not a non-negative integer literal.
_UI_MultiplicityElement_UpperGELower_diagnostic = The upper bound of multiplicity element ''{0}'' is not greater than or equal to its lower bound.
_UI_MultiplicityElement_LowerEQLowerBound_diagnostic = The derived lower attribute of multiplicity element ''{0}'' is not equal to its lower bound.
_UI_MultiplicityElement_UpperEQUpperBound_diagnostic = The derived upper attribute of multiplicity element ''{0}'' is not equal to its upper bound.
_UI_NamedElement_NoName_diagnostic = Named element ''{0}'' has no name, or one of its containing namespaces has no name, but it has a qualified name.
_UI_NamedElement_QualifiedName_diagnostic = Named element ''{0}'' has a name, and all of its containing namespaces have a name, but its qualified name is not constructed from the names of its containing namespaces.
_UI_NamedElement_VisibilityNeedsOwnership_diagnostic = Named element ''{0}'' is not owned by a namespace, but it has visibility.
_UI_Namespace_MembersAreDistinguishable_diagnostic = Not all the members of namespace ''{0}'' are distinguishable within it.
_UI_Namespace_ImportedMemberDerived_diagnostic = The imported members of namespace ''{0}'' are not derived from its element imports and its package imports.
_UI_Operation_TypeOfResult_diagnostic = The type of operation ''{0}'' is not the value of the type for its single return result, or undefined.
_UI_Operation_OnlyBodyForQuery_diagnostic = A body condition is specified for operation ''{0}'', but it is not a query.
_UI_PackageImport_PublicOrPrivate_diagnostic = The visibility of package import ''{0}'' is neither public nor private.
_UI_Package_ElementsPublicOrPrivate_diagnostic = Element ''{0}'', owned by package ''{1}'', has visibility that is neither public nor private.
_UI_Property_OppositeIsOtherEnd_diagnostic = Navigable property ''{0}'' is associated with a binary association, but the other (navigable) end of the association is not its opposite.
_UI_Property_MultiplicityOfComposite_diagnostic = The multiplicity of composite aggregation ''{0}'' has an upper bound greater than 1.
_UI_Property_SubsettingContext_diagnostic = The context of the subsetting property ''{0}'' does not conform to the context of subsetted property ''{1}''.
_UI_Property_NavigablePropertyRedefinition_diagnostic = Navigable property ''{0}'' is redefined or subsetted by non-navigable property ''{1}''.
_UI_Property_SubsettingRules_diagnostic = Subsetting property ''{0}'' either weakens the type of subsetted property ''{1}'', or its upper bound is greater.
_UI_Property_NavigableReadOnly_diagnostic = Non-navigable property ''{0}'' is marked as read-only.
_UI_Property_DerivedUnionIsDerived_diagnostic = Derived union ''{0}'' is not derived.
_UI_RedefinableElement_RedefinitionConsistent_diagnostic = Redefining element ''{0}'' is not consistent with redefined element ''{1}''.
_UI_RedefinableElement_RedefinitionContextValid_diagnostic = None of the redefinition contexts of redefining element ''{0}'' is a specialization of at least one of the redefinition contexts for redefined element ''{1}''.
