Table of Contents

Interface IMultiplicityElement

Namespace
NMF.Interop.Uml
Assembly
NMF.UMLInterop.dll

The public interface for MultiplicityElement

[DefaultImplementationType(typeof(MultiplicityElement))]
[XmlDefaultImplementationType(typeof(MultiplicityElement))]
[ModelRepresentationClass("http://www.eclipse.org/uml2/5.0.0/UML#//MultiplicityElement")]
public interface IMultiplicityElement : IElement, IEModelElement, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
Inherited Members

Properties

IsOrdered

For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this MultiplicityElement are sequentially ordered. <p>From package UML::CommonStructure.</p>

[TypeConverter(typeof(LowercaseBooleanConverter))]
[XmlElementName("isOrdered")]
[XmlAttribute(true)]
bool IsOrdered { get; set; }

Property Value

bool

IsUnique

For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this MultiplicityElement are unique. <p>From package UML::CommonStructure.</p>

[TypeConverter(typeof(LowercaseBooleanConverter))]
[XmlElementName("isUnique")]
[XmlAttribute(true)]
bool IsUnique { get; set; }

Property Value

bool

LowerValue

The specification of the lower bound for this multiplicity. <p>From package UML::CommonStructure.</p>

[Browsable(false)]
[XmlElementName("lowerValue")]
[XmlAttribute(false)]
[Containment]
IValueSpecification LowerValue { get; set; }

Property Value

IValueSpecification

UpperValue

The specification of the upper bound for this multiplicity. <p>From package UML::CommonStructure.</p>

[Browsable(false)]
[XmlElementName("upperValue")]
[XmlAttribute(false)]
[Containment]
IValueSpecification UpperValue { get; set; }

Property Value

IValueSpecification

Methods

CompatibleWith(IMultiplicityElement)

The operation compatibleWith takes another multiplicity as input. It returns true if the other multiplicity is wider than, or the same as, self. result = ((other.lowerBound() <= self.lowerBound()) and ((other.upperBound() = *) or (self.upperBound() <= other.upperBound()))) <p>From package UML::CommonStructure.</p>

bool CompatibleWith(IMultiplicityElement other)

Parameters

other IMultiplicityElement

Returns

bool

GetLower()

The derived lower attribute must equal the lowerBound. result = (lowerBound()) <p>From package UML::CommonStructure.</p>

int GetLower()

Returns

int

GetUpper()

The derived upper attribute must equal the upperBound. result = (upperBound()) <p>From package UML::CommonStructure.</p>

void GetUpper()

IncludesMultiplicity(IMultiplicityElement)

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())) <p>From package UML::CommonStructure.</p>

bool IncludesMultiplicity(IMultiplicityElement m)

Parameters

m IMultiplicityElement

Returns

bool

Is(int, object)

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()) <p>From package UML::CommonStructure.</p>

bool Is(int lowerbound, object upperbound)

Parameters

lowerbound int
upperbound object

Returns

bool

IsMultivalued()

The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. upperBound()->notEmpty() result = (upperBound() > 1) <p>From package UML::CommonStructure.</p>

bool IsMultivalued()

Returns

bool

LowerBound()

The query lowerBound() returns the lower bound of the multiplicity as an integer, which is the integerValue of lowerValue, if this is given, and 1 otherwise. result = (if (lowerValue=null or lowerValue.integerValue()=null) then 1 else lowerValue.integerValue() endif) <p>From package UML::CommonStructure.</p>

int LowerBound()

Returns

int

Lower_ge_0(object, object)

The lower bound must be a non-negative integer literal. lowerBound() >= 0

bool Lower_ge_0(object diagnostics, object context)

Parameters

diagnostics object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

Lower_is_integer(object, object)

If it is not empty, then lowerValue must have an Integer value. lowerValue <> null implies lowerValue.integerValue() <> null

bool Lower_is_integer(object diagnostics, object context)

Parameters

diagnostics object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

SetLower(int)

void SetLower(int newLower)

Parameters

newLower int

SetUpper(object)

void SetUpper(object newUpper)

Parameters

newUpper object

UpperBound()

The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural, which is the unlimitedNaturalValue of upperValue, if given, and 1, otherwise. result = (if (upperValue=null or upperValue.unlimitedValue()=null) then 1 else upperValue.unlimitedValue() endif) <p>From package UML::CommonStructure.</p>

void UpperBound()

Upper_ge_lower(object, object)

The upper bound must be greater than or equal to the lower bound. upperBound() >= lowerBound()

bool Upper_ge_lower(object diagnostics, object context)

Parameters

diagnostics object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

Upper_is_unlimitedNatural(object, object)

If it is not empty, then upperValue must have an UnlimitedNatural value. upperValue <> null implies upperValue.unlimitedValue() <> null

bool Upper_is_unlimitedNatural(object diagnostics, object context)

Parameters

diagnostics object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

Value_specification_constant(object, object)

If a non-literal ValueSpecification is used for lowerValue or upperValue, then that specification must be a constant expression.

bool Value_specification_constant(object diagnostics, object context)

Parameters

diagnostics object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

Value_specification_no_side_effects(object, object)

If a non-literal ValueSpecification is used for lowerValue or upperValue, then evaluating that specification must not have side effects.

bool Value_specification_no_side_effects(object diagnostics, object context)

Parameters

diagnostics object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool