Package com.sodius.mdw.metamodel.uml21
Interface MultiplicityElement
-
- All Superinterfaces:
Comparable<Object>
,Element
,org.eclipse.emf.ecore.EModelElement
,org.eclipse.emf.ecore.EObject
,MDWEObject
,MDWObject
,org.eclipse.emf.common.notify.Notifier
- All Known Subinterfaces:
ActionInputPin
,ConnectorEnd
,ExtensionEnd
,InputPin
,OutputPin
,Parameter
,Pin
,Port
,Property
,StructuralFeature
,ValuePin
,Variable
public interface MultiplicityElement extends Element
A representation of the model object 'Multiplicity Element'. A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element.The following features are supported:
- See Also:
UMLPackage.getMultiplicityElement()
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
compatibleWith(MultiplicityElement other)
The operation compatibleWith takes another multiplicity as input.ValueSpecification
createLowerValue(String name, Type type, org.eclipse.emf.ecore.EClass eClass)
Creates a newValueSpecification
, with the specified 'Name', and 'Type', and sets the 'Lower Value' containment reference.ValueSpecification
createUpperValue(String name, Type type, org.eclipse.emf.ecore.EClass eClass)
Creates a newValueSpecification
, with the specified 'Name', and 'Type', and sets the 'Upper Value' containment reference.int
getLower()
Returns the value of the 'Lower' attribute.ValueSpecification
getLowerValue()
Returns the value of the 'Lower Value' containment reference.int
getUpper()
Returns the value of the 'Upper' attribute.ValueSpecification
getUpperValue()
Returns the value of the 'Upper Value' containment reference.boolean
includesCardinality(int C)
The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.boolean
includesMultiplicity(MultiplicityElement M)
The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.boolean
is(int lowerbound, int upperbound)
The operation is determines if the upper and lower bound of the ranges are the ones given.boolean
isMultivalued()
The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.boolean
isOrdered()
Returns the value of the 'Is Ordered' attribute.boolean
isUnique()
Returns the value of the 'Is Unique' attribute.int
lowerBound()
The query lowerBound() returns the lower bound of the multiplicity as an integer.void
setIsOrdered(boolean value)
Sets the value of the 'Is Ordered
' attribute.void
setIsUnique(boolean value)
Sets the value of the 'Is Unique
' attribute.void
setLower(int value)
Sets the value of the 'Lower
' attribute.void
setLowerValue(ValueSpecification value)
Sets the value of the 'Lower Value
' containment reference.void
setUpper(int value)
Sets the value of the 'Upper
' attribute.void
setUpperValue(ValueSpecification value)
Sets the value of the 'Upper Value
' containment reference.int
upperBound()
The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.boolean
validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
The lower bound must be a non-negative integer literal.boolean
validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
The upper bound must be greater than or equal to the lower bound.boolean
validateUpperGt0(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
A multiplicity must define at least one valid cardinality that is greater than zero.boolean
validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression.boolean
validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.-
Methods inherited from interface com.sodius.mdw.metamodel.uml21.Element
addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf
-
Methods inherited from interface org.eclipse.emf.ecore.EModelElement
getEAnnotation, getEAnnotations
-
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset
-
Methods inherited from interface com.sodius.mdw.core.model.MDWObject
compareTo, eExtendedClass, eIsInstanceOf, eIsInstanceOf, eIsProfiled, eIsRemoved, eMetamodel, eMetaTypeName, eModel, eRemove, eSetUniqueID, eUniqueID, superScript, superScript, toBoolean, toBoolean, toByte, toByte, toChar, toChar, toDouble, toDouble, toFloat, toFloat, toInt, toInt, toList, toList, toList, toList, toList, toLong, toLong, toObject, toObject, toSet, toSet, toShort, toShort, toString, toString
-
-
-
-
Method Detail
-
isOrdered
boolean isOrdered()
Returns the value of the 'Is Ordered' attribute. The default value is"false"
. For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.- Returns:
- the value of the 'Is Ordered' attribute.
- See Also:
setIsOrdered(boolean)
,UMLPackage.getMultiplicityElement_IsOrdered()
-
setIsOrdered
void setIsOrdered(boolean value)
Sets the value of the 'Is Ordered
' attribute.- Parameters:
value
- the new value of the 'Is Ordered' attribute.- See Also:
isOrdered()
-
isUnique
boolean isUnique()
Returns the value of the 'Is Unique' attribute. The default value is"true"
. For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.- Returns:
- the value of the 'Is Unique' attribute.
- See Also:
setIsUnique(boolean)
,UMLPackage.getMultiplicityElement_IsUnique()
-
setIsUnique
void setIsUnique(boolean value)
Sets the value of the 'Is Unique
' attribute.- Parameters:
value
- the new value of the 'Is Unique' attribute.- See Also:
isUnique()
-
getUpper
int getUpper()
Returns the value of the 'Upper' attribute. The default value is"1"
. Specifies the upper bound of the multiplicity interval.- Returns:
- the value of the 'Upper' attribute.
- See Also:
setUpper(int)
,UMLPackage.getMultiplicityElement_Upper()
-
setUpper
void setUpper(int value)
Sets the value of the 'Upper
' attribute.- Parameters:
value
- the new value of the 'Upper' attribute.- See Also:
getUpper()
-
getLower
int getLower()
Returns the value of the 'Lower' attribute. The default value is"1"
. Specifies the lower bound of the multiplicity interval.- Returns:
- the value of the 'Lower' attribute.
- See Also:
setLower(int)
,UMLPackage.getMultiplicityElement_Lower()
-
setLower
void setLower(int value)
Sets the value of the 'Lower
' attribute.- Parameters:
value
- the new value of the 'Lower' attribute.- See Also:
getLower()
-
getUpperValue
ValueSpecification getUpperValue()
Returns the value of the 'Upper Value' containment reference. The specification of the upper bound for this multiplicity.- Returns:
- the value of the 'Upper Value' containment reference.
- See Also:
setUpperValue(ValueSpecification)
,UMLPackage.getMultiplicityElement_UpperValue()
-
setUpperValue
void setUpperValue(ValueSpecification value)
Sets the value of the 'Upper Value
' containment reference.- Parameters:
value
- the new value of the 'Upper Value' containment reference.- See Also:
getUpperValue()
-
createUpperValue
ValueSpecification createUpperValue(String name, Type type, org.eclipse.emf.ecore.EClass eClass)
Creates a newValueSpecification
, with the specified 'Name', and 'Type', and sets the 'Upper Value' containment reference.- Parameters:
name
- The 'Name' for the newValueSpecification
, ornull
.type
- The 'Type' for the newValueSpecification
, ornull
.eClass
- The Ecore class of theValueSpecification
to create.- Returns:
- The new
ValueSpecification
. - See Also:
getUpperValue()
-
getLowerValue
ValueSpecification getLowerValue()
Returns the value of the 'Lower Value' containment reference. The specification of the lower bound for this multiplicity.- Returns:
- the value of the 'Lower Value' containment reference.
- See Also:
setLowerValue(ValueSpecification)
,UMLPackage.getMultiplicityElement_LowerValue()
-
setLowerValue
void setLowerValue(ValueSpecification value)
Sets the value of the 'Lower Value
' containment reference.- Parameters:
value
- the new value of the 'Lower Value' containment reference.- See Also:
getLowerValue()
-
createLowerValue
ValueSpecification createLowerValue(String name, Type type, org.eclipse.emf.ecore.EClass eClass)
Creates a newValueSpecification
, with the specified 'Name', and 'Type', and sets the 'Lower Value' containment reference.- Parameters:
name
- The 'Name' for the newValueSpecification
, ornull
.type
- The 'Type' for the newValueSpecification
, ornull
.eClass
- The Ecore class of theValueSpecification
to create.- Returns:
- The new
ValueSpecification
. - See Also:
getLowerValue()
-
validateUpperGt0
boolean validateUpperGt0(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
A multiplicity must define at least one valid cardinality that is greater than zero. upperBound()->notEmpty() implies upperBound() > 0
-
validateLowerGe0
boolean validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
The lower bound must be a non-negative integer literal. lowerBound()->notEmpty() implies lowerBound() >= 0
-
validateUpperGeLower
boolean validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
The upper bound must be greater than or equal to the lower bound. (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()
-
validateValueSpecificationNoSideEffects
boolean validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects. true
-
validateValueSpecificationConstant
boolean validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain diagnostics, Map context)
If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression. true
-
isMultivalued
boolean isMultivalued()
The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. upperBound()->notEmpty() result = upperBound() > 1
-
includesCardinality
boolean includesCardinality(int C)
The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. upperBound()->notEmpty() and lowerBound()->notEmpty() result = (lowerBound() <= C) and (upperBound() >= C)
-
includesMultiplicity
boolean includesMultiplicity(MultiplicityElement M)
The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty() result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound())
-
lowerBound
int lowerBound()
The query lowerBound() returns the lower bound of the multiplicity as an integer. result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif
-
upperBound
int upperBound()
The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif
-
compatibleWith
boolean compatibleWith(MultiplicityElement other)
The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another. result = Integer.allInstances()->forAll(i : Integer | self.includesCardinality(i) implies other.includesCardinality(i))
-
is
boolean is(int lowerbound, int upperbound)
The operation is determines if the upper and lower bound of the ranges are the ones given. result = (lowerbound = self.lowerbound and upperbound = self.upperbound)
-
-