###############################################################################
# Copyright (c) 2009, 2011 Mia-Software.
# 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:
#    Gregoire DUPE (Mia-Software) - initial API and implementation
###############################################################################
pluginName = MoDisco Facet Meta Model Implementation (Deprecated, will be replaced by EMF Facet)
providerName = Eclipse Modeling Project

category.name = MoDisco Facet Constraints
constraint.name = Non-Empty Names
constraint.description = All items must be named.
constraint.message = A {0} has been found with an empty name.
constraint.name.0 = Only one FacetSet
constraint.description.0 = FacetSet resource must have only one FacetSet root.
constraint.message.0 = FacetSet resource must have only one FacetSet root, {0} roots found.
constraint.name.1 = FacetSet name equal file name
constraint.description.1 = FacetSet name and file name must be equal.
constraint.message.1 = FacetSet name differs from file name (fileName={0}, FacetSetName={1})
constraint.name.2 = Extended class contained into declared meta-models
constraint.description.2 = Facet extended class must be contained into the meta-models declared by the FacetSet
constraint.message.2 = Wrong extended class: {0} is not contained in declared meta-models. (see {1})
constraint.name.3 = Facet unique name
constraint.description.3 = Facet names must be unique.
constraint.message.3 = More than one facet is named {0}.
constraint.name.4 = Facet in query scope
constraint.message.4 = The {0} facet is not in its query's scope.
constraint.description.4 = context Facet inv: self.conditionQuery.scope->exists(scopeClass|self.eSuperTypes->exists(f|scopeClass.isSuperTypeOf(f)))
constraint.name.5 = Boolean facet query
constraint.message.5 = The {0} facet query must return a boolean.
constraint.description.5 = context Facet inv: self.conditionQuery.returnType.instanceClassName = 'java.lang.Boolean'
constraint.name.6 = Facets only contain FacetStructuralFeatures
constraint.message.6 = The {0} facet must only contain FacetStructuralFeature.
constraint.description.6 = context Facet inv: self.eStructuralFeatures->forAll(e|e.oclIsKindOf(facet::FacetStructuralFeature))
constraint.name.7 = FacetAttribute queries must return a instance of a DataType
constraint.message.7 = The {0} facet query must return a data type.
constraint.description.7 = context FacetAttribute inv: self.valueQuery.returnType.oclIsKindOf(ecore::EDataType)
constraint.name.8 = FacetAttribute queries must return a instance of an EClass
constraint.message.8 = The {0} facet query must return an instance of an EClass.
constraint.description.8 = context FacetReference inv: self.valueQuery.returnType.oclIsKindOf(ecore::EClass)
constraint.name.9 = Facet must be abstract.
constraint.message.9 = The "{0}" facet must be abstract.
constraint.description.9 = context Facet inv: self.abstract
constraint.name.10 = The extended package must not be the current facet set
constraint.message.10 = The extended package must not be the current facet set: {0}
constraint.description.10 = context FacetSet inv: self.extendedPackage != self
constraint.name.11 = FacetAttribute type must be equal to the query type
constraint.message.11 = FacetAttribute type must be equal to the query type. cf. "{0}"
constraint.description.11 = context Facet inv: self.abstract
constraint.name.12 = FacetReference type must be equal to the query type
constraint.message.12 = FacetReference type must be equal to the query type. cf. "{0}"
constraint.description.12 = context Facet inv: self.abstract
constraint.name.13 = FacetAttribute multiplicity must be equal to the query multiplicity
constraint.message.13 = FacetAttribute multiplicity must be equal to the query multiplicity. cf. "{0}"
constraint.description.13 = FacetAttribute multiplicity must be equal to the query multiplicity.
constraint.name.14 = FacetReference multiplicity must be equal to the query multiplicity
constraint.message.14 = FacetReference multiplicity must be equal to the query multiplicity. cf. "{0}"
constraint.description.14 = FacetReference multiplicity must be equal to the query multiplicity.
constraint.name.15 = FacetReference must not be changeable.
constraint.message.15 = FacetReference must not be changeable. cf. "{0}"
constraint.description.15 = FacetReference must not be changeable.
constraint.name.16 = FacetReference must be derived.
constraint.message.16 = FacetReference must be derived. cf. "{0}"
constraint.description.16 = FacetReference must be derived.
constraint.name.17 = FacetReference be volatile.
constraint.message.17 = FacetReference must be volatile. cf. "{0}"
constraint.description.17 = FacetReference must be volatile.
constraint.name.18 = FacetReference must be unsettable.
constraint.message.18 = FacetReference must be unsettable. cf. "{0}"
constraint.description.18 = FacetReference must be unsettable.
constraint.name.19 = FacetReference must be not be a container.
constraint.message.19 = FacetReference must be not be a container. cf. "{0}"
constraint.description.19 = FacetReference must be not be a container.
constraint.name.20 = FacetAttribute must not be changeable.
constraint.message.20 = AttributeReference must not be changeable. cf. "{0}"
constraint.description.20 = AttributeReference must not be changeable.
constraint.name.21 = FacetAttribute must be derived.
constraint.message.21 = AttributeReference must be derived. cf. "{0}"
constraint.description.21 = AttributeReference must be derived.
constraint.name.22 = FacetAttribute be volatile.
constraint.message.22 = FacetAttribute must be volatile. cf. "{0}"
constraint.description.22 = FacetAttribute must be volatile.
constraint.name.23 = FacetAttribute must be unsettable.
constraint.message.23 = AttributeReference must be unsettable. cf. "{0}"
constraint.description.23 = AttributeReference must be unsettable.
constraint.name.24 = Facet must have a super type.
constraint.message.24 = Facets must have a superType. cf. "{0}"
constraint.description.24 = self.eSuperTypes->size() > 0
content-type.name = MoDisco FacetSet model

constraint.name.25 = FacetSet must have a nsURI
constraint.message.25 = FacetSets must have a NsURI
constraint.description.25 = self.nsURI->notEmpty() and self.nsURI <> ''
constraint.name.26 = FacetSet must have a NsPrefix
constraint.message.26 = FacetSets must have a NsPrefix
constraint.description.26 = self.nsPrefix->notEmpty() and self.nsPrefix <> ''
constraint.name.27 = FacetSet must define extended packages
constraint.message.27 = FacetSets must define extended packages
constraint.description.27 = self.extendedPackage->notEmpty()