Table of Contents

Interface IComponent

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

The public interface for Component

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

Properties

IsIndirectlyInstantiated

If true, the Component is defined at design-time, but at run-time (or execution-time) an object specified by the Component does not exist, that is, the Component is instantiated indirectly, through the instantiation of its realizing Classifiers or parts. <p>From package UML::StructuredClassifiers.</p>

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

Property Value

bool

PackagedElement

The set of PackageableElements that a Component owns. In the namespace of a Component, all model elements that are involved in or related to its definition may be owned or imported explicitly. These may include e.g., Classes, Interfaces, Components, Packages, UseCases, Dependencies (e.g., mappings), and Artifacts. <p>From package UML::StructuredClassifiers.</p>

[Browsable(false)]
[XmlElementName("packagedElement")]
[XmlAttribute(false)]
[Containment]
IOrderedSetExpression<IPackageableElement> PackagedElement { get; }

Property Value

IOrderedSetExpression<IPackageableElement>

Realization

The set of Realizations owned by the Component. Realizations reference the Classifiers of which the Component is an abstraction; i.e., that realize its behavior. <p>From package UML::StructuredClassifiers.</p>

[Browsable(false)]
[XmlElementName("realization")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("abstraction")]
IOrderedSetExpression<IComponentRealization> Realization { get; }

Property Value

IOrderedSetExpression<IComponentRealization>

Methods

CreateOwnedClass(string, bool)

Creates a(n) (abstract) class with the specified name as a packaged element of this component.

IClass CreateOwnedClass(string name, bool isAbstract)

Parameters

name string

The name for the new class, or null.

isAbstract bool

Whether the new class should be abstract.

Returns

IClass

CreateOwnedEnumeration(string)

Creates a enumeration with the specified name as a packaged element of this component.

IEnumeration CreateOwnedEnumeration(string name)

Parameters

name string

The name for the new enumeration, or null.

Returns

IEnumeration

CreateOwnedInterface(string)

Creates an interface with the specified name as a packaged element of this component.

IInterface CreateOwnedInterface(string name)

Parameters

name string

The name for the new interface, or null.

Returns

IInterface

CreateOwnedPrimitiveType(string)

Creates a primitive type with the specified name as a packaged element of this component.

IPrimitiveType CreateOwnedPrimitiveType(string name)

Parameters

name string

The name for the new primitive type, or null.

Returns

IPrimitiveType

GetProvideds()

Derivation for Component::/provided result = (let ris : Set(Interface) = allRealizedInterfaces(), realizingClassifiers : Set(Classifier) = self.realization.realizingClassifier->union(self.allParents()->collect(realization.realizingClassifier))->asSet(), allRealizingClassifiers : Set(Classifier) = realizingClassifiers->union(realizingClassifiers.allParents())->asSet(), realizingClassifierInterfaces : Set(Interface) = allRealizingClassifiers->iterate(c; rci : Set(Interface) = Set{} | rci->union(c.allRealizedInterfaces())), ports : Set(Port) = self.ownedPort->union(allParents()->collect(ownedPort))->asSet(), providedByPorts : Set(Interface) = ports.provided->asSet() in ris->union(realizingClassifierInterfaces) ->union(providedByPorts)->asSet()) <p>From package UML::StructuredClassifiers.</p>

ISetExpression<IInterface> GetProvideds()

Returns

ISetExpression<IInterface>

GetRequireds()

Derivation for Component::/required result = (let uis : Set(Interface) = allUsedInterfaces(), realizingClassifiers : Set(Classifier) = self.realization.realizingClassifier->union(self.allParents()->collect(realization.realizingClassifier))->asSet(), allRealizingClassifiers : Set(Classifier) = realizingClassifiers->union(realizingClassifiers.allParents())->asSet(), realizingClassifierInterfaces : Set(Interface) = allRealizingClassifiers->iterate(c; rci : Set(Interface) = Set{} | rci->union(c.allUsedInterfaces())), ports : Set(Port) = self.ownedPort->union(allParents()->collect(ownedPort))->asSet(), usedByPorts : Set(Interface) = ports.required->asSet() in uis->union(realizingClassifierInterfaces)->union(usedByPorts)->asSet() ) <p>From package UML::StructuredClassifiers.</p>

ISetExpression<IInterface> GetRequireds()

Returns

ISetExpression<IInterface>

No_nested_classifiers(object, object)

A Component cannot nest Classifiers. nestedClassifier->isEmpty()

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

No_packaged_elements(object, object)

A Component nested in a Class cannot have any packaged elements. nestingClass <> null implies packagedElement->isEmpty()

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