Table of Contents

Interface IAssociation

Namespace
NMF.Interop.Cmof
Assembly
NMF.UMLInterop.dll

The public interface for Association

[DefaultImplementationType(typeof(Association))]
[XmlDefaultImplementationType(typeof(Association))]
[ModelRepresentationClass("http://www.omg.org/spec/MOF/20131001/cmof.xmi#//Association")]
public interface IAssociation : IRelationship, IClassifier, IType, IPackageableElement, IRedefinableElement, INamespace, INamedElement, IElement, IObject, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
Inherited Members

Properties

IsDerived

Specifies whether the association is derived from other model elements such as other associations or constraints.

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

Property Value

bool

MemberEnd

Each end represents participation of instances of the classifier connected to the end in links of the association.

[LowerBound(2)]
[XmlElementName("memberEnd")]
[XmlAttribute(true)]
[XmlOpposite("association")]
IListExpression<IProperty> MemberEnd { get; }

Property Value

IListExpression<IProperty>

NavigableOwnedEnd

The navigable ends that are owned by the association itself.

[Browsable(false)]
[XmlElementName("navigableOwnedEnd")]
[XmlAttribute(false)]
[Containment]
IOrderedSetExpression<IProperty> NavigableOwnedEnd { get; }

Property Value

IOrderedSetExpression<IProperty>

OwnedEnd

The ends that are owned by the association itself.

[XmlElementName("ownedEnd")]
[XmlAttribute(true)]
[XmlOpposite("owningAssociation")]
IListExpression<IProperty> OwnedEnd { get; }

Property Value

IListExpression<IProperty>

Methods

Association_ends(object, object)

Association ends of associations with more than two ends must be owned by the association. if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)

bool Association_ends(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

Binary_associations(object, object)

Only binary associations can be aggregations. self.memberEnd->exists(aggregation <> Aggregation::none) implies self.memberEnd->size() = 2

bool Binary_associations(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

Specialized_end_number(object, object)

An association specializing another association has the same number of ends as the other association. parents()->select(oclIsKindOf(Association)).oclAsType(Association)->forAll(p | p.memberEnd->size() = self.memberEnd->size())

bool Specialized_end_number(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

Specialized_end_types(object, object)

When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end. Sequence{1..self.memberEnd->size()}-> forAll(i | self.general->select(oclIsKindOf(Association)).oclAsType(Association)-> forAll(ga |self.memberEnd->at(i).type.conformsTo(ga.memberEnd->at(i).type)))

bool Specialized_end_types(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