Table of Contents

Interface IPackage

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

The public interface for Package

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

Properties

NestedPackage

References the packaged elements that are Packages.

[Browsable(false)]
[XmlElementName("nestedPackage")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("nestingPackage")]
IOrderedSetExpression<IPackage> NestedPackage { get; }

Property Value

IOrderedSetExpression<IPackage>

NestingPackage

References the Package that owns this Package.

[Browsable(false)]
[XmlElementName("nestingPackage")]
[XmlAttribute(true)]
[XmlOpposite("nestedPackage")]
IPackage NestingPackage { get; set; }

Property Value

IPackage

OwnedType

References the packaged elements that are Types.

[Browsable(false)]
[XmlElementName("ownedType")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("package")]
IOrderedSetExpression<IType> OwnedType { get; }

Property Value

IOrderedSetExpression<IType>

PackageMerge

References the PackageMerges that are owned by this Package.

[Browsable(false)]
[XmlElementName("packageMerge")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("receivingPackage")]
IOrderedSetExpression<IPackageMerge> PackageMerge { get; }

Property Value

IOrderedSetExpression<IPackageMerge>

PackagedElement

Specifies the packageable elements that are owned by this Package.

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

Property Value

IListExpression<IPackageableElement>

URI

Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules.

[XmlAttribute(true)]
string URI { get; set; }

Property Value

string

Methods

Elements_public_or_private(object, object)

If an element that is owned by a package has visibility, it is public or private. self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private)

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

MakesVisible(INamedElement)

The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible. result = (ownedMember->includes(el)) or (elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or (packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty()) self.member->includes(el)

bool MakesVisible(INamedElement el)

Parameters

el INamedElement

Returns

bool

VisibleMembers()

The query visibleMembers() defines which members of a Package can be accessed outside it. result = member->select( m | self.makesVisible(m))

ISetExpression<IPackageableElement> VisibleMembers()

Returns

ISetExpression<IPackageableElement>