Interface IClassifier
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
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
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
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
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
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
RedefinedClassifier
The Classifiers redefined by this Classifier. <p>From package UML::Classification.</p>
[XmlElementName("redefinedClassifier")]
[XmlAttribute(true)]
ICollectionExpression<IClassifier> RedefinedClassifier { get; }
Property Value
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
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
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
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
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
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
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
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
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
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
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
GetAllAttributes()
Retrieves all the attributes of this classifier, including those inherited from its parents.
ISetExpression<IProperty> GetAllAttributes()
Returns
GetAllOperations()
Retrieves all the operations of this classifier, including those inherited from its parents.
ISetExpression<IOperation> GetAllOperations()
Returns
GetAllUsedInterfaces()
Retrieves all the interfaces on which this classifier or any of its parents has a usage dependency.
ISetExpression<IInterface> GetAllUsedInterfaces()
Returns
GetGenerals()
The general Classifiers are the ones referenced by the Generalization relationships. result = (parents()) <p>From package UML::Classification.</p>
ISetExpression<IClassifier> GetGenerals()
Returns
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
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
stringThe 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
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
stringThe 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
boolWhether to ignore case in String comparisons.
Returns
GetOperations()
Retrieves the operations of this classifier.
ISetExpression<IOperation> GetOperations()
Returns
GetUsedInterfaces()
Retrieves the interfaces on which this classifier has a usage dependency.
ISetExpression<IInterface> GetUsedInterfaces()
Returns
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
Returns
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
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
Returns
IsSubstitutableFor(IClassifier)
result = (substitution.contract->includes(contract)) <p>From package UML::Classification.</p>
bool IsSubstitutableFor(IClassifier contract)
Parameters
contract
IClassifier
Returns
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
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
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
Returns
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
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
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
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
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
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
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.