Abstract Class UML 2.5::Classifier
Description:
A Classifier represents a classification of instances according to their
Features.
Direct Superclasses: Namespace,
Type,
TemplateableElement,
RedefinableElementDirect Subclasses: StructuredClassifier,
Signal,
Interface,
InformationItem,
DataType,
BehavioredClassifier,
Association,
ArtifactClass Precedence List: Classifier,
Namespace,
Type,
PackageableElement,
ParameterableElement,
TemplateableElement,
RedefinableElement,
NamedElement,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
attribute :
Property (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
collaborationUse :
CollaborationUse (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
feature :
Feature (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
general :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
inheritedMember :
NamedElement (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
isAbstract : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
ownedUseCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
representation :
CollaborationUse (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
substitution :
Substitution (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
useCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
package :
Package (0 1); -- source
Type![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
visibility :
VisibilityKind (0 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=65562%3AD68399D4A48A786F72967357DAE387EC)
owner :
Element (0 1); -- source
ElementConstraints:
No additional constraints.
Operations:
Signature: parents() : Classifier;
Description: The query parents() gives all of the immediate ancestors of a generalized
Classifier.
Expression: result = (generalization.general->asSet())
Signature: maySpecializeType(c : Classifier; ) : Boolean;
Description: 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.
Expression: result = (self.oclIsKindOf(c.oclType()))
Signature: isTemplate() : Boolean;
Description: The query isTemplate() returns whether this Classifier is actually a template.
Expression: result = (ownedTemplateSignature <> null or general->exists(g | g.isTemplate()))
Signature: isSubstitutableFor(contract : Classifier; ) : Boolean;
Description: Expression: result = (substitution.contract->includes(contract))
Signature: inheritedMember.1() : NamedElement;
Description: The inheritedMember association is derived by inheriting the inheritable
members of the parents.
Expression: result = (inherit(parents()->collect(inheritableMembers(self))->asSet()))
Signature: inheritableMembers(c : Classifier; ) : NamedElement;
Description: 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.
Expression: result = (member->select(m | c.hasVisibilityOf(m)))
Signature: inherit(inhs : NamedElement; ) : NamedElement;
Description: The query inherit() defines how to inherit a set of elements passed as
its argument. It excludes redefined elements from the result.
Expression: result = (inhs->reject(inh | inh.oclIsKindOf(RedefinableElement) and ownedMember->select(oclIsKindOf(RedefinableElement))-> select(redefinedElement->includes(inh.oclAsType(RedefinableElement))) ->notEmpty()))
Signature: hasVisibilityOf(n : NamedElement; ) : Boolean;
Description: 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.
Expression: result = (n.visibility <> VisibilityKind::private)
Signature: general.1() : Classifier;
Description: The general Classifiers are the ones referenced by the Generalization relationships.
Expression: result = (parents())
Signature: directlyUsedInterfaces() : Interface;
Description: The Interfaces directly used by this Classifier
Expression: result = ((supplierDependency-> select(oclIsKindOf(Usage) and client->forAll(oclIsKindOf(Interface))))-> collect(client.oclAsType(Interface))->asSet())
Signature: directlyRealizedInterfaces() : Interface;
Description: The Interfaces directly realized by this Classifier
Expression: result = ((clientDependency-> select(oclIsKindOf(Realization) and supplier->forAll(oclIsKindOf(Interface))))-> collect(supplier.oclAsType(Interface))->asSet())
Signature: conformsTo(other : Type; ) : Boolean;
Description: The query conformsTo() gives true for a Classifier that defines a type
that conforms to another. This is used, for example, in the specification
of signature conformance for operations.
Expression: result = (if other.oclIsKindOf(Classifier) then let otherClassifier : Classifier = other.oclAsType(Classifier) in self = otherClassifier or allParents()->includes(otherClassifier) else false endif)
Signature: allUsedInterfaces() : Interface;
Description: The Interfaces used by this Classifier and all of its generalizations
Expression: result = (directlyUsedInterfaces()->union(self.allParents()->collect(directlyUsedInterfaces()))->asSet())
Signature: allSlottableFeatures() : StructuralFeature;
Description: 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.
Expression: result = (member->select(oclIsKindOf(StructuralFeature))-> collect(oclAsType(StructuralFeature))-> union(self.inherit(self.allParents()->collect(p | p.attribute)->asSet())-> collect(oclAsType(StructuralFeature)))->asSet())
Signature: allRealizedInterfaces() : Interface;
Description: The Interfaces realized by this Classifier and all of its generalizations
Expression: result = (directlyRealizedInterfaces()->union(self.allParents()->collect(directlyRealizedInterfaces()))->asSet())
Signature: allParents() : Classifier;
Description: The query allParents() gives all of the direct and indirect ancestors of
a generalized Classifier.
Expression: result = (parents()->union(parents()->collect(allParents())->asSet()))
Signature: allFeatures() : Feature;
Description: 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.
Expression: result = (member->select(oclIsKindOf(Feature))->collect(oclAsType(Feature))->asSet())
Signature: allAttributes() : Property;
Description: 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.
Expression: result = (attribute->asSequence()->union(parents()->asSequence().allAttributes())->select(p | member->includes(p))->asOrderedSet())
Send questions or comments to
[email protected].