Table of Contents

Interface IAssociation

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

The public interface for Association

[DefaultImplementationType(typeof(Association))]
[XmlDefaultImplementationType(typeof(Association))]
[ModelRepresentationClass("http://www.eclipse.org/uml2/5.0.0/UML#//Association")]
public interface IAssociation : IRelationship, IClassifier, ITemplateableElement, IType, IPackageableElement, IParameterableElement, IRedefinableElement, INamespace, INamedElement, IElement, IEModelElement, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
Inherited Members

Properties

IsDerived

Specifies whether the Association is derived from other model elements such as other Associations. <p>From package UML::StructuredClassifiers.</p>

[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. <p>From package UML::StructuredClassifiers.</p>

[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. <p>From package UML::StructuredClassifiers.</p>

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

Property Value

IOrderedSetExpression<IProperty>

OwnedEnd

The ends that are owned by the Association itself. <p>From package UML::StructuredClassifiers.</p>

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

Property Value

IListExpression<IProperty>

Methods

Association_ends(object, object)

Ends of Associations with more than two ends must be owned by the Association itself. memberEnd->size() > 2 implies 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. memberEnd->exists(aggregation <> AggregationKind::none) implies (memberEnd->size() = 2 and memberEnd->exists(aggregation = AggregationKind::none))

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

Ends_must_be_typed(object, object)

memberEnd->forAll(type->notEmpty())

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

GetEndTypes()

endType is derived from the types of the member ends. result = (memberEnd->collect(type)->asSet()) <p>From package UML::StructuredClassifiers.</p>

ISetExpression<IType> GetEndTypes()

Returns

ISetExpression<IType>

IsBinary()

Determines whether this association is a binary association, i.e. whether it has exactly two member ends.

bool IsBinary()

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 corresponding general end. Sequence{1..memberEnd->size()}-> forAll(i | 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