Table of Contents

Interface IClassifier

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

The public interface for Classifier

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

Properties

CollaborationUse

The CollaborationUses owned by the Classifier. <p>From package UML::Classification.</p>

[Browsable(false)]
[XmlElementName("collaborationUse")]
[XmlAttribute(false)]
[Containment]
IListExpression<ICollaborationUse> CollaborationUse { get; }

Property Value

IListExpression<ICollaborationUse>

Generalization

The Generalization relationships for this Classifier. These Generalizations navigate to more general Classifiers in the generalization hierarchy. <p>From package UML::Classification.</p>

[Browsable(false)]
[XmlElementName("generalization")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("specific")]
IOrderedSetExpression<IGeneralization> Generalization { get; }

Property Value

IOrderedSetExpression<IGeneralization>

IsAbstract

If true, the Classifier can only be instantiated by instantiating one of its specializations. An abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations or Generalizations. <p>From package UML::Classification.</p>

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

Property Value

bool

IsFinalSpecialization

If true, the Classifier cannot be specialized. <p>From package UML::Classification.</p>

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

Property Value

bool

OwnedUseCase

The UseCases owned by this classifier. <p>From package UML::Classification.</p>

[Browsable(false)]
[XmlElementName("ownedUseCase")]
[XmlAttribute(false)]
[Containment]
IOrderedSetExpression<IUseCase> OwnedUseCase { get; }

Property Value

IOrderedSetExpression<IUseCase>

PowertypeExtent

The GeneralizationSet of which this Classifier is a power type. <p>From package UML::Classification.</p>

[XmlElementName("powertypeExtent")]
[XmlAttribute(true)]
[XmlOpposite("powertype")]
ISetExpression<IGeneralizationSet> PowertypeExtent { get; }

Property Value

ISetExpression<IGeneralizationSet>

RedefinedClassifier

The Classifiers redefined by this Classifier. <p>From package UML::Classification.</p>

[XmlElementName("redefinedClassifier")]
[XmlAttribute(true)]
ICollectionExpression<IClassifier> RedefinedClassifier { get; }

Property Value

ICollectionExpression<IClassifier>

Representation

A CollaborationUse which indicates the Collaboration that represents this Classifier. <p>From package UML::Classification.</p>

[Browsable(false)]
[XmlElementName("representation")]
[XmlAttribute(false)]
[Containment]
ICollaborationUse Representation { get; set; }

Property Value

ICollaborationUse

Substitution

The Substitutions owned by this Classifier. <p>From package UML::Classification.</p>

[Browsable(false)]
[XmlElementName("substitution")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("substitutingClassifier")]
IOrderedSetExpression<ISubstitution> Substitution { get; }

Property Value

IOrderedSetExpression<ISubstitution>

UseCase

The set of UseCases for which this Classifier is the subject. <p>From package UML::Classification.</p>

[XmlElementName("useCase")]
[XmlAttribute(true)]
[XmlOpposite("subject")]
ISetExpression<IUseCase> UseCase { get; }

Property Value

ISetExpression<IUseCase>

Methods

AllAttributes()

The query allAttributes gives an ordered set of all owned and inherited attributes of the Classifier. All owned attributes appear before any inherited attributes, and the attributes inherited from any more specific parent Classifier appear before those of any more general parent Classifier. However, if the Classifier has multiple immediate parents, then the relative ordering of the sets of attributes from those parents is not defined. result = (attribute->asSequence()->union(parents()->asSequence().allAttributes())->select(p | member->includes(p))->asOrderedSet()) <p>From package UML::Classification.</p>

IOrderedSetExpression<IProperty> AllAttributes()

Returns

IOrderedSetExpression<IProperty>

AllFeatures()

The query allFeatures() gives all of the Features in the namespace of the Classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature. result = (member->select(oclIsKindOf(Feature))->collect(oclAsType(Feature))->asSet()) <p>From package UML::Classification.</p>

ISetExpression<IFeature> AllFeatures()

Returns

ISetExpression<IFeature>

AllParents()

The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. result = (parents()->union(parents()->collect(allParents())->asSet())) <p>From package UML::Classification.</p>

ISetExpression<IClassifier> AllParents()

Returns

ISetExpression<IClassifier>

AllRealizedInterfaces()

The Interfaces realized by this Classifier and all of its generalizations result = (directlyRealizedInterfaces()->union(self.allParents()->collect(directlyRealizedInterfaces()))->asSet()) <p>From package UML::Classification.</p>

ISetExpression<IInterface> AllRealizedInterfaces()

Returns

ISetExpression<IInterface>

AllSlottableFeatures()

All StructuralFeatures related to the Classifier that may have Slots, including direct attributes, inherited attributes, private attributes in generalizations, and memberEnds of Associations, but excluding redefined StructuralFeatures. result = (member->select(oclIsKindOf(StructuralFeature))-> collect(oclAsType(StructuralFeature))-> union(self.inherit(self.allParents()->collect(p | p.attribute)->asSet())-> collect(oclAsType(StructuralFeature)))->asSet()) <p>From package UML::Classification.</p>

ISetExpression<IStructuralFeature> AllSlottableFeatures()

Returns

ISetExpression<IStructuralFeature>

AllUsedInterfaces()

The Interfaces used by this Classifier and all of its generalizations result = (directlyUsedInterfaces()->union(self.allParents()->collect(directlyUsedInterfaces()))->asSet()) <p>From package UML::Classification.</p>

ISetExpression<IInterface> AllUsedInterfaces()

Returns

ISetExpression<IInterface>

DirectlyRealizedInterfaces()

The Interfaces directly realized by this Classifier result = ((clientDependency-> select(oclIsKindOf(Realization) and supplier->forAll(oclIsKindOf(Interface))))-> collect(supplier.oclAsType(Interface))->asSet()) <p>From package UML::Classification.</p>

ISetExpression<IInterface> DirectlyRealizedInterfaces()

Returns

ISetExpression<IInterface>

DirectlyUsedInterfaces()

The Interfaces directly used by this Classifier result = ((supplierDependency-> select(oclIsKindOf(Usage) and client->forAll(oclIsKindOf(Interface))))-> collect(client.oclAsType(Interface))->asSet()) <p>From package UML::Classification.</p>

ISetExpression<IInterface> DirectlyUsedInterfaces()

Returns

ISetExpression<IInterface>

GetAllAttributes()

Retrieves all the attributes of this classifier, including those inherited from its parents.

ISetExpression<IProperty> GetAllAttributes()

Returns

ISetExpression<IProperty>

GetAllOperations()

Retrieves all the operations of this classifier, including those inherited from its parents.

ISetExpression<IOperation> GetAllOperations()

Returns

ISetExpression<IOperation>

GetAllUsedInterfaces()

Retrieves all the interfaces on which this classifier or any of its parents has a usage dependency.

ISetExpression<IInterface> GetAllUsedInterfaces()

Returns

ISetExpression<IInterface>

GetGenerals()

The general Classifiers are the ones referenced by the Generalization relationships. result = (parents()) <p>From package UML::Classification.</p>

ISetExpression<IClassifier> GetGenerals()

Returns

ISetExpression<IClassifier>

GetInheritedMembers()

The inheritedMember association is derived by inheriting the inheritable members of the parents. result = (inherit(parents()->collect(inheritableMembers(self))->asSet())) <p>From package UML::Classification.</p>

ISetExpression<INamedElement> GetInheritedMembers()

Returns

ISetExpression<INamedElement>

GetOperation(string, IEnumerable<string>, IEnumerable<IType>)

Retrieves the first operation with the specified name, parameter names, and parameter types from this classifier.

IOperation GetOperation(string name, IEnumerable<string> parameterNames, IEnumerable<IType> parameterTypes)

Parameters

name string

The name of the operation to retrieve, or null.

parameterNames IEnumerable<string>

The parameter names of the operation to retrieve, or null.

parameterTypes IEnumerable<IType>

The parameter types of the operation to retrieve, or null.

Returns

IOperation

GetOperation(string, IEnumerable<string>, IEnumerable<IType>, bool)

Retrieves the first operation with the specified name, parameter names, and parameter types from this classifier, ignoring case if indicated.

IOperation GetOperation(string name, IEnumerable<string> parameterNames, IEnumerable<IType> parameterTypes, bool ignoreCase)

Parameters

name string

The name of the operation to retrieve, or null.

parameterNames IEnumerable<string>

The parameter names of the operation to retrieve, or null.

parameterTypes IEnumerable<IType>

The parameter types of the operation to retrieve, or null.

ignoreCase bool

Whether to ignore case in String comparisons.

Returns

IOperation

GetOperations()

Retrieves the operations of this classifier.

ISetExpression<IOperation> GetOperations()

Returns

ISetExpression<IOperation>

GetUsedInterfaces()

Retrieves the interfaces on which this classifier has a usage dependency.

ISetExpression<IInterface> GetUsedInterfaces()

Returns

ISetExpression<IInterface>

HasVisibilityOf(INamedElement)

The query hasVisibilityOf() determines whether a NamedElement is visible in the classifier. Non-private members are visible. It is only called when the argument is something owned by a parent. allParents()->including(self)->collect(member)->includes(n) result = (n.visibility <> VisibilityKind::private) <p>From package UML::Classification.</p>

bool HasVisibilityOf(INamedElement n)

Parameters

n INamedElement

Returns

bool

Inherit(IEnumerable<INamedElement>)

The query inherit() defines how to inherit a set of elements passed as its argument. It excludes redefined elements from the result. result = (inhs->reject(inh | inh.oclIsKindOf(RedefinableElement) and ownedMember->select(oclIsKindOf(RedefinableElement))-> select(redefinedElement->includes(inh.oclAsType(RedefinableElement))) ->notEmpty())) <p>From package UML::Classification.</p>

ISetExpression<INamedElement> Inherit(IEnumerable<INamedElement> inhs)

Parameters

inhs IEnumerable<INamedElement>

Returns

ISetExpression<INamedElement>

InheritableMembers(IClassifier)

The query inheritableMembers() gives all of the members of a Classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply. c.allParents()->includes(self) result = (member->select(m | c.hasVisibilityOf(m))) <p>From package UML::Classification.</p>

ISetExpression<INamedElement> InheritableMembers(IClassifier c)

Parameters

c IClassifier

Returns

ISetExpression<INamedElement>

IsSubstitutableFor(IClassifier)

result = (substitution.contract->includes(contract)) <p>From package UML::Classification.</p>

bool IsSubstitutableFor(IClassifier contract)

Parameters

contract IClassifier

Returns

bool

Maps_to_generalization_set(object, object)

The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses. powertypeExtent->forAll( gs | gs.generalization->forAll( gen | not (gen.general = self) and not gen.general.allParents()->includes(self) and not (gen.specific = self) and not self.allParents()->includes(gen.specific) ))

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

MaySpecializeType(IClassifier)

The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. result = (self.oclIsKindOf(c.oclType())) <p>From package UML::Classification.</p>

bool MaySpecializeType(IClassifier c)

Parameters

c IClassifier

Returns

bool

No_cycles_in_generalization(object, object)

Generalization hierarchies must be directed and acyclical. A Classifier can not be both a transitively general and transitively specific Classifier of the same Classifier. not allParents()->includes(self)

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

Non_final_parents(object, object)

The parents of a Classifier must be non-final. parents()->forAll(not isFinalSpecialization)

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

Parents()

The query parents() gives all of the immediate ancestors of a generalized Classifier. result = (generalization.general->asSet()) <p>From package UML::Classification.</p>

ISetExpression<IClassifier> Parents()

Returns

ISetExpression<IClassifier>

Specialize_type(object, object)

A Classifier may only specialize Classifiers of a valid type. parents()->forAll(c | self.maySpecializeType(c))

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