## org.eclipse.uml2.uml
Interface Classifier

All Superinterfaces:
  Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, NamedElement, Namespace, org.eclipse.emf.common.notify.Notifier, PackageableElement, ParameterableElement, RedefinableElement, TemplateableElement, Type

All Known Subinterfaces:
  Activity, Actor, Artifact, Association, AssociationClass, Behavior, BehavioredClassifier, Class, Collaboration, CommunicationPath, Component, DataType, DeploymentSpecification, Device, EncapsulatedClassifier, Enumeration, ExecutionEnvironment, Extension, FunctionBehavior, InformationItem, Interaction, Interface, Node, OpaqueBehavior, PrimitiveType, ProtocolStateMachine, Signal, StateMachine, Stereotype, StructuredClassifier, UseCase

    public interface Classifier

extends Namespace, RedefinableElement, Type, TemplateableElement

A representation of the model object 'Classifier'. A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers. A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier. A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case. Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.

The following features are supported:

- `Is Abstract`
- `Generalization`
- `Powertype Extent`
- `Feature`
- `Inherited Member`
- `Redefined Classifier`
- `General`
- `Substitution`
- `Attribute`
- `Representation`
- `Collaboration Use`
- `Owned Use Case`
- `Use Case`

See Also:
  `UMLPackage.getClassifier()`

Method Summary
`org.eclipse.emf.common.util.EList<Feature>` `allFeatures()` The query allFeatures() gives all of the features in the namespace of the classifier.
`org.eclipse.emf.common.util.EList<Classifier>` `allParents()` The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
`boolean` `conformsTo(Classifier other)` This operation redefines the following operations: '`Conforms To`'
`CollaborationUse` `createCollaborationUse(java.lang.String name)` Creates a new `CollaborationUse`, with the specified 'Name', and appends it to the 'Collaboration Use' containment reference list
`Generalization` `createGeneralization(Classifier general)` Creates a new `Generalization`, with the specified 'General', and appends it to the 'Generalization' containment reference list
`UseCase` `createOwnedUseCase(java.lang.String name)` Creates a new `UseCase`, with the specified 'Name', and appends it to the 'Owned Use Case' containment reference list
`CollaborationUse` `createRepresentation(java.lang.String name)` Creates a new `CollaborationUse`,with the specified 'Name', and sets the 'Representation' reference
`Substitution` `createSubstitution(java.lang.String name, Classifier contract)` Creates a new `Substitution`, with the specified 'Name', and 'Contract', and appends it to the 'Substitution' containment reference list
`org.eclipse.emf.common.util.EList<Property>` `getAllAttributes()` Retrieves all the attributes of this classifier, including those inherited from its parents
`org.eclipse.emf.common.util.EList<Operation>` `getAllOperations()` Retrieves all the operations of this classifier, including those inherited from its parents
`org.eclipse.emf.common.util.EList<Interface>` `getAllUsedInterfaces()` Retrieves all the interfaces on which this classifier or any of its parents has a usage dependency
`Property` `getAttribute(java.lang.String name, Type type)` Retrieves the first `Property` with the specified 'Name', and 'Type' from the 'Attribute' reference list
`Property` `getAttribute(java.lang.String name, Type type, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass)` Retrieves the first `Property` with the specified 'Name', and 'Type' from the 'Attribute' reference list
`org.eclipse.emf.common.util.EList<Property>` `getAttributes()` Returns the value of the 'Attribute' reference list.
`CollaborationUse` `getCollaborationUse(java.lang.String name)` Retrieves the first `CollaborationUse` with the specified 'Name' from the 'Collaboration Use' containment reference list
`CollaborationUse` `getCollaborationUse(java.lang.String name, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `CollaborationUse` with the specified 'Name' from the 'Collaboration Use' containment reference list
`org.eclipse.emf.common.util.EList<CollaborationUse>` `getCollaborationUses()` Returns the value of the 'Collaboration Use' containment reference list.
`Feature` `getFeature(java.lang.String name)` Retrieves the first `Feature` with the specified 'Name' from the 'Feature' reference list
`Feature` `getFeature(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass)` Retrieves the first `Feature` with the specified 'Name' from the 'Feature' reference list
`org.eclipse.emf.common.util.EList<Feature>` `getFeatures()` Returns the value of the 'Feature' reference list.
`Classifier` `getGeneral(java.lang.String name)` Retrieves the first `Classifier` with the specified 'Name' from the 'General' reference list
`Classifier` `getGeneral(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass)` Retrieves the first `Classifier` with the specified 'Name' from the 'General' reference list
`Generalization` `getGeneralization(Classifier general)` Retrieves the first `Generalization` with the specified 'General' from the 'Generalization' containment reference list
`Generalization` `getGeneralization(Classifier general, boolean createOnDemand)` Retrieves the first `Generalization` with the specified 'General' from the 'Generalization' containment reference list
`org.eclipse.emf.common.util.EList<Generalization>` `getGeneralizations()` Returns the value of the 'Generalization' containment reference list.
`org.eclipse.emf.common.util.EList<Classifier>` `getGenerals()` Returns the value of the 'General' reference list.
`NamedElement` `getInheritedMember(java.lang.String name)` Retrieves the first `NamedElement` with the specified 'Name' from the 'Inherited Member' reference list
`NamedElement` `getInheritedMember(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass)` Retrieves the first `NamedElement` with the specified 'Name' from the 'Inherited Member' reference list
`org.eclipse.emf.common.util.EList<NamedElement>` `getInheritedMembers()` Returns the value of the 'Inherited Member' reference list.
`Operation` `getOperation(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> parameterNames, org.eclipse.emf.common.util.EList<Type> parameterTypes)` Retrieves the first operation with the specified name, parameter names, and parameter types from this classifier.
`Operation` `getOperation(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> parameterNames, org.eclipse.emf.common.util.EList<Type> parameterTypes, boolean ignoreCase)` Retrieves the first operation with the specified name, parameter names, and parameter types from this classifier, ignoring case if indicated.
`org.eclipse.emf.common.util.EList<Operation>` `getOperations()` Retrieves the operations of this classifier
`UseCase` `getOwnedUseCase(java.lang.String name)` Retrieves the first `UseCase` with the specified 'Name' from the 'Owned Use Case' containment reference list
`UseCase` `getOwnedUseCase(java.lang.String name, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `UseCase` with the specified 'Name' from the 'Owned Use Case' containment reference list
`org.eclipse.emf.common.util.EList<UseCase>` `getOwnedUseCases()` Returns the value of the 'Owned Use Case' containment reference list.
`GeneralizationSet` `getPowertypeExtent(java.lang.String name)` Retrieves the first `GeneralizationSet` with the specified 'Name' from the 'Powertype Extent' reference list
`GeneralizationSet` `getPowertypeExtent(java.lang.String name, boolean ignoreCase)` Retrieves the first `GeneralizationSet` with the specified 'Name' from the 'Powertype Extent' reference list
`org.eclipse.emf.common.util.EList<GeneralizationSet>` `getPowertypeExtents()` Returns the value of the 'Powertype Extent' reference list.
`Classifier` `getRedefinedClassifier(java.lang.String name)` Retrieves the first `Classifier` with the specified 'Name' from the 'Redefined Classifier' reference list
`Classifier` `getRedefinedClassifier(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass)` Retrieves the first `Classifier` with the specified 'Name' from the 'Redefined Classifier' reference list
`org.eclipse.emf.common.util.EList<Classifier>` `getRedefinedClassifiers()` Returns the value of the 'Redefined Classifier' reference list.
`CollaborationUse` `getRepresentation()` Returns the value of the 'Representation' reference.
`Substitution` `getSubstitution(java.lang.String name, Classifier contract)` Retrieves the first `Substitution` with the specified 'Name', and 'Contract' from the 'Substitution' containment reference list
`Substitution` `getSubstitution(java.lang.String name, Classifier contract, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `Substitution` with the specified 'Name', and 'Contract' from the 'Substitution' containment reference list
`org.eclipse.emf.common.util.EList<Substitution>` `getSubstitutions()` Returns the value of the 'Substitution' containment reference list.
`UseCase` `getUseCase(java.lang.String name)` Retrieves the first `UseCase` with the specified 'Name' from the 'Use Case' reference list
`UseCase` `getUseCase(java.lang.String name, boolean ignoreCase)` Retrieves the first `UseCase` with the specified 'Name' from the 'Use Case' reference list
`org.eclipse.emf.common.util.EList<UseCase>` `getUseCases()` Returns the value of the 'Use Case' reference list.
`org.eclipse.emf.common.util.EList<Interface>` `getUsedInterfaces()` Retrieves the interfaces on which this classifier has a usage dependency
`boolean` `hasVisibilityOf(NamedElement n)` The query hasVisibilityOf() determines whether a named element is visible in the classifier.
`org.eclipse.emf.common.util.EList<NamedElement>` `inherit(org.eclipse.emf.common.util.EList<NamedElement> inhs)` The inherit operation is overridden to exclude redefined properties.
`org.eclipse.emf.common.util.EList<NamedElement>` `inheritableMembers(Classifier c)` 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.
`boolean` `isAbstract()` Returns the value of the 'Is Abstract' attribute.
`boolean` `maySpecializeType(Classifier c)` The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type.
`org.eclipse.emf.common.util.EList<Classifier>` `parents()` The query parents() gives all of the immediate ancestors of a generalized Classifier.
`void` `setIsAbstract(boolean value)` Sets the value of the '`Is Abstract`' attribute
`void` `setRepresentation(CollaborationUse value)` Sets the value of the '`Representation`' reference
`boolean` `validateGeneralizationHierarchies(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Generalization hierarchies must be directed and acyclical.
`boolean` `validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` 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.
`boolean` `validateNoCyclesInGeneralization(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Generalization hierarchies must be directed and acyclical.
`boolean` `validateSpecializeType(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A classifier may only specialize classifiers of a valid type.

Methods inherited from interface org.eclipse.uml2.uml.Namespace

`createElementImport, createElementImport, createOwnedRule, createOwnedRule, createPackageImport, createPackageImport, excludeCollisions, getElementImport, getElementImport, getElementImports, getImportedElements, getImportedMember, getImportedMember, getImportedMembers, getImportedPackages, getMember, getMember, getMembers, getNamesOfMember, getOwnedMember, getOwnedMember, getOwnedMembers, getOwnedRule, getOwnedRule, getOwnedRules, getPackageImport, getPackageImport, getPackageImports, importMembers, membersAreDistinguishable, validateMembersDistinguishable`

Methods inherited from interface org.eclipse.uml2.uml.Element

`addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf`

Methods inherited from interface org.eclipse.emf.ecore.EModelElement
`getEAnnotation, getEAnnotations`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.RedefinableElement
`getRedefinedElement, getRedefinedElement, getRedefinedElements, getRedefinitionContext, getRedefinitionContext, getRedefinitionContexts, isConsistentWith, isLeaf, isRedefinitionContextValid, setIsLeaf, validateRedefinitionConsistent, validateRedefinitionContextValid`

Methods inherited from interface org.eclipse.uml2.uml.Element

`addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf`

Methods inherited from interface org.eclipse.emf.ecore.EModelElement
`getEAnnotation, getEAnnotations`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.Type
`conformsTo, createAssociation, getAssociations, getPackage, setPackage`

Methods inherited from interface org.eclipse.uml2.uml.Element

`addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf`

Methods inherited from interface org.eclipse.emf.ecore.EModelElement
`getEAnnotation, getEAnnotations`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.ParameterableElement
`getOwningTemplateParameter, getTemplateParameter, isCompatibleWith, isTemplateParameter, setOwningTemplateParameter, setTemplateParameter`

Methods inherited from interface org.eclipse.uml2.uml.Element

`addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf`

Methods inherited from interface org.eclipse.emf.ecore.EModelElement
`getEAnnotation, getEAnnotations`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.TemplateableElement
`createOwnedTemplateSignature, createOwnedTemplateSignature, createTemplateBinding, getOwnedTemplateSignature, getTemplateBinding, getTemplateBinding, getTemplateBindings, isTemplate, parameterableElements, setOwnedTemplateSignature`

Method Detail

### isAbstract

    boolean isAbstract()

  Returns the value of the 'Is Abstract' attribute. The default value is `"false"`. If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.

  Returns:
    the value of the 'Is Abstract' attribute.
  See Also:
    `setIsAbstract(boolean)`, `UMLPackage.getClassifier_IsAbstract()`

### setIsAbstract

    void setIsAbstract(boolean value)

  Sets the value of the '`Is Abstract`' attribute.

  Parameters:
    `value` - the new value of the 'Is Abstract' attribute.
  See Also:
    `isAbstract()`

### getGeneralizations

    org.eclipse.emf.common.util.EList<Generalization> getGeneralizations()

  Returns the value of the 'Generalization' containment reference list. The list contents are of type `Generalization`. It is bidirectional and its opposite is '`Specific`'.

  This feature subsets the following features:

  - '`Owned Element`'
  Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.

  Returns:
    the value of the 'Generalization' containment reference list.
  See Also:
    `UMLPackage.getClassifier_Generalization()`, `Generalization.getSpecific()`

### getPowertypeExtents

    org.eclipse.emf.common.util.EList<GeneralizationSet> getPowertypeExtents()

  Returns the value of the 'Powertype Extent' reference list. The list contents are of type `GeneralizationSet`. It is bidirectional and its opposite is '`Powertype`'. Designates the GeneralizationSet of which the associated Classifier is a power type.

  Returns:
    the value of the 'Powertype Extent' reference list.
  See Also:
    `UMLPackage.getClassifier_PowertypeExtent()`, `GeneralizationSet.getPowertype()`

### getPowertypeExtent

    GeneralizationSet getPowertypeExtent(java.lang.String name)

  Retrieves the first `GeneralizationSet` with the specified 'Name' from the 'Powertype Extent' reference list.

  Parameters:
    `name` - The 'Name' of the `GeneralizationSet` to retrieve, or `null`.
  Returns:
    The first `GeneralizationSet` with the specified 'Name', or `null`.
  See Also:
    `getPowertypeExtents()`

### getPowertypeExtent

    GeneralizationSet getPowertypeExtent(java.lang.String name,
                                         boolean ignoreCase)

  Retrieves the first `GeneralizationSet` with the specified 'Name' from the 'Powertype Extent' reference list.

  Parameters:
    `name` - The 'Name' of the `GeneralizationSet` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
  Returns:
    The first `GeneralizationSet` with the specified 'Name', or `null`.
  See Also:
    `getPowertypeExtents()`

### getFeatures

    org.eclipse.emf.common.util.EList<Feature> getFeatures()

  Returns the value of the 'Feature' reference list. The list contents are of type `Feature`. It is bidirectional and its opposite is '`Featuring Classifier`'.

  This feature subsets the following features:

  - '`Member`'
  This feature is a derived union. Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features. Specifies each feature defined in the classifier.

  Returns:
    the value of the 'Feature' reference list.
  See Also:
    `UMLPackage.getClassifier_Feature()`, `Feature.getFeaturingClassifiers()`

### getFeature

    Feature getFeature(java.lang.String name)

  Retrieves the first `Feature` with the specified 'Name' from the 'Feature' reference list.

  Parameters:
    `name` - The 'Name' of the `Feature` to retrieve, or `null`.
  Returns:
    The first `Feature` with the specified 'Name', or `null`.
  See Also:
    `getFeatures()`

### getFeature

    Feature getFeature(java.lang.String name,
                       boolean ignoreCase,
                       org.eclipse.emf.ecore.EClass eClass)

  Retrieves the first `Feature` with the specified 'Name' from the 'Feature' reference list.

  Parameters:
    `name` - The 'Name' of the `Feature` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `Feature` to retrieve, or `null`.
  Returns:
    The first `Feature` with the specified 'Name', or `null`.
  See Also:
    `getFeatures()`

### getInheritedMembers

    org.eclipse.emf.common.util.EList<NamedElement> getInheritedMembers()

  Returns the value of the 'Inherited Member' reference list. The list contents are of type `NamedElement`.

  This feature subsets the following features:

  - '`Member`'
  Specifies all elements inherited by this classifier from the general classifiers.

  Returns:
    the value of the 'Inherited Member' reference list.
  See Also:
    `UMLPackage.getClassifier_InheritedMember()`

### getInheritedMember

    NamedElement getInheritedMember(java.lang.String name)

  Retrieves the first `NamedElement` with the specified 'Name' from the 'Inherited Member' reference list.

  Parameters:
    `name` - The 'Name' of the `NamedElement` to retrieve, or `null`.
  Returns:
    The first `NamedElement` with the specified 'Name', or `null`.
  See Also:
    `getInheritedMembers()`

### getInheritedMember

    NamedElement getInheritedMember(java.lang.String name,
                                    boolean ignoreCase,
                                    org.eclipse.emf.ecore.EClass eClass)

  Retrieves the first `NamedElement` with the specified 'Name' from the 'Inherited Member' reference list.

  Parameters:
    `name` - The 'Name' of the `NamedElement` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `NamedElement` to retrieve, or `null`.
  Returns:
    The first `NamedElement` with the specified 'Name', or `null`.
  See Also:
    `getInheritedMembers()`

### getRedefinedClassifiers

    org.eclipse.emf.common.util.EList<Classifier> getRedefinedClassifiers()

  Returns the value of the 'Redefined Classifier' reference list. The list contents are of type `Classifier`.

  This feature subsets the following features:

  - '`Redefined Element`'
  References the Classifiers that are redefined by this Classifier.

  Returns:
    the value of the 'Redefined Classifier' reference list.
  See Also:
    `UMLPackage.getClassifier_RedefinedClassifier()`

### getRedefinedClassifier

    Classifier getRedefinedClassifier(java.lang.String name)

  Retrieves the first `Classifier` with the specified 'Name' from the 'Redefined Classifier' reference list.

  Parameters:
    `name` - The 'Name' of the `Classifier` to retrieve, or `null`.
  Returns:
    The first `Classifier` with the specified 'Name', or `null`.
  See Also:
    `getRedefinedClassifiers()`

### getRedefinedClassifier

    Classifier getRedefinedClassifier(java.lang.String name,
                                      boolean ignoreCase,
                                      org.eclipse.emf.ecore.EClass eClass)

  Retrieves the first `Classifier` with the specified 'Name' from the 'Redefined Classifier' reference list.

  Parameters:
    `name` - The 'Name' of the `Classifier` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `Classifier` to retrieve, or `null`.
  Returns:
    The first `Classifier` with the specified 'Name', or `null`.
  See Also:
    `getRedefinedClassifiers()`

### getGenerals

    org.eclipse.emf.common.util.EList<Classifier> getGenerals()

  Returns the value of the 'General' reference list. The list contents are of type `Classifier`. References the general classifier in the Generalization relationship. Specifies the general Classifiers for this Classifier.

  Returns:
    the value of the 'General' reference list.
  See Also:
    `UMLPackage.getClassifier_General()`

### getGeneral

    Classifier getGeneral(java.lang.String name)

  Retrieves the first `Classifier` with the specified 'Name' from the 'General' reference list.

  Parameters:
    `name` - The 'Name' of the `Classifier` to retrieve, or `null`.
  Returns:
    The first `Classifier` with the specified 'Name', or `null`.
  See Also:
    `getGenerals()`

### getGeneral

    Classifier getGeneral(java.lang.String name,
                          boolean ignoreCase,
                          org.eclipse.emf.ecore.EClass eClass)

  Retrieves the first `Classifier` with the specified 'Name' from the 'General' reference list.

  Parameters:
    `name` - The 'Name' of the `Classifier` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `Classifier` to retrieve, or `null`.
  Returns:
    The first `Classifier` with the specified 'Name', or `null`.
  See Also:
    `getGenerals()`

### getOwnedUseCases

    org.eclipse.emf.common.util.EList<UseCase> getOwnedUseCases()

  Returns the value of the 'Owned Use Case' containment reference list. The list contents are of type `UseCase`.

  This feature subsets the following features:

  - '`Owned Member`'
  References the use cases owned by this classifier.

  Returns:
    the value of the 'Owned Use Case' containment reference list.
  See Also:
    `UMLPackage.getClassifier_OwnedUseCase()`

### createOwnedUseCase

    UseCase createOwnedUseCase(java.lang.String name)

  Creates a new `UseCase`, with the specified 'Name', and appends it to the 'Owned Use Case' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `UseCase`, or `null`.
  Returns:
    The new `UseCase`.
  See Also:
    `getOwnedUseCases()`

### getOwnedUseCase

    UseCase getOwnedUseCase(java.lang.String name)

  Retrieves the first `UseCase` with the specified 'Name' from the 'Owned Use Case' containment reference list.

  Parameters:
    `name` - The 'Name' of the `UseCase` to retrieve, or `null`.
  Returns:
    The first `UseCase` with the specified 'Name', or `null`.
  See Also:
    `getOwnedUseCases()`

### getOwnedUseCase

    UseCase getOwnedUseCase(java.lang.String name,
                            boolean ignoreCase,
                            boolean createOnDemand)

  Retrieves the first `UseCase` with the specified 'Name' from the 'Owned Use Case' containment reference list.

  Parameters:
    `name` - The 'Name' of the `UseCase` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `UseCase` on demand if not found.
  Returns:
    The first `UseCase` with the specified 'Name', or `null`.
  See Also:
    `getOwnedUseCases()`

### getUseCases

    org.eclipse.emf.common.util.EList<UseCase> getUseCases()

  Returns the value of the 'Use Case' reference list. The list contents are of type `UseCase`. It is bidirectional and its opposite is '`Subject`'. The set of use cases for which this Classifier is the subject.

  Returns:
    the value of the 'Use Case' reference list.
  See Also:
    `UMLPackage.getClassifier_UseCase()`, `UseCase.getSubjects()`

### getUseCase

    UseCase getUseCase(java.lang.String name)

  Retrieves the first `UseCase` with the specified 'Name' from the 'Use Case' reference list.

  Parameters:
    `name` - The 'Name' of the `UseCase` to retrieve, or `null`.
  Returns:
    The first `UseCase` with the specified 'Name', or `null`.
  See Also:
    `getUseCases()`

### getUseCase

    UseCase getUseCase(java.lang.String name,
                       boolean ignoreCase)

  Retrieves the first `UseCase` with the specified 'Name' from the 'Use Case' reference list.

  Parameters:
    `name` - The 'Name' of the `UseCase` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
  Returns:
    The first `UseCase` with the specified 'Name', or `null`.
  See Also:
    `getUseCases()`

### getSubstitutions

    org.eclipse.emf.common.util.EList<Substitution> getSubstitutions()

  Returns the value of the 'Substitution' containment reference list. The list contents are of type `Substitution`. It is bidirectional and its opposite is '`Substituting Classifier`'.

  This feature subsets the following features:

  - '`Owned Element`'
  - '`Client Dependency`'
  References the substitutions that are owned by this Classifier.

  Returns:
    the value of the 'Substitution' containment reference list.
  See Also:
    `UMLPackage.getClassifier_Substitution()`, `Substitution.getSubstitutingClassifier()`

### createSubstitution

    Substitution createSubstitution(java.lang.String name,
                                    Classifier contract)

  Creates a new `Substitution`, with the specified 'Name', and 'Contract', and appends it to the 'Substitution' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `Substitution`, or `null`.
    `contract` - The 'Contract' for the new `Substitution`, or `null`.
  Returns:
    The new `Substitution`.
  See Also:
    `getSubstitutions()`

### getSubstitution

    Substitution getSubstitution(java.lang.String name,
                                 Classifier contract)

  Retrieves the first `Substitution` with the specified 'Name', and 'Contract' from the 'Substitution' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Substitution` to retrieve, or `null`.
    `contract` - The 'Contract' of the `Substitution` to retrieve, or `null`.
  Returns:
    The first `Substitution` with the specified 'Name', and 'Contract', or `null`.
  See Also:
    `getSubstitutions()`

### getSubstitution

    Substitution getSubstitution(java.lang.String name,
                                 Classifier contract,
                                 boolean ignoreCase,
                                 boolean createOnDemand)

  Retrieves the first `Substitution` with the specified 'Name', and 'Contract' from the 'Substitution' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Substitution` to retrieve, or `null`.
    `contract` - The 'Contract' of the `Substitution` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `Substitution` on demand if not found.
  Returns:
    The first `Substitution` with the specified 'Name', and 'Contract', or `null`.
  See Also:
    `getSubstitutions()`

### getAttributes

    org.eclipse.emf.common.util.EList<Property> getAttributes()

  Returns the value of the 'Attribute' reference list. The list contents are of type `Property`.

  This feature subsets the following features:

  - '`Feature`'
  This feature is a derived union. Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.

  Returns:
    the value of the 'Attribute' reference list.
  See Also:
    `UMLPackage.getClassifier_Attribute()`

### getAttribute

    Property getAttribute(java.lang.String name,
                          Type type)

  Retrieves the first `Property` with the specified 'Name', and 'Type' from the 'Attribute' reference list.

  Parameters:
    `name` - The 'Name' of the `Property` to retrieve, or `null`.
    `type` - The 'Type' of the `Property` to retrieve, or `null`.
  Returns:
    The first `Property` with the specified 'Name', and 'Type', or `null`.
  See Also:
    `getAttributes()`

### getAttribute

    Property getAttribute(java.lang.String name,
                          Type type,
                          boolean ignoreCase,
                          org.eclipse.emf.ecore.EClass eClass)

  Retrieves the first `Property` with the specified 'Name', and 'Type' from the 'Attribute' reference list.

  Parameters:
    `name` - The 'Name' of the `Property` to retrieve, or `null`.
    `type` - The 'Type' of the `Property` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `Property` to retrieve, or `null`.
  Returns:
    The first `Property` with the specified 'Name', and 'Type', or `null`.
  See Also:
    `getAttributes()`

### getRepresentation

    CollaborationUse getRepresentation()

  Returns the value of the 'Representation' reference.

  This feature subsets the following features:

  - '`Collaboration Use`'
  References a collaboration use which indicates the collaboration that represents this classifier.

  Returns:
    the value of the 'Representation' reference.
  See Also:
    `setRepresentation(CollaborationUse)`, `UMLPackage.getClassifier_Representation()`

### setRepresentation

    void setRepresentation(CollaborationUse value)

  Sets the value of the '`Representation`' reference.

  Parameters:
    `value` - the new value of the 'Representation' reference.
  See Also:
    `getRepresentation()`

### createRepresentation

    CollaborationUse createRepresentation(java.lang.String name)

  Creates a new `CollaborationUse`,with the specified 'Name', and sets the 'Representation' reference.

  Parameters:
    `name` - The 'Name' for the new `CollaborationUse`, or `null`.
  Returns:
    The new `CollaborationUse`.
  See Also:
    `getRepresentation()`

### getCollaborationUses

    org.eclipse.emf.common.util.EList<CollaborationUse> getCollaborationUses()

  Returns the value of the 'Collaboration Use' containment reference list. The list contents are of type `CollaborationUse`.

  This feature subsets the following features:

  - '`Owned Element`'
  References the collaboration uses owned by the classifier.

  Returns:
    the value of the 'Collaboration Use' containment reference list.
  See Also:
    `UMLPackage.getClassifier_CollaborationUse()`

### createCollaborationUse

    CollaborationUse createCollaborationUse(java.lang.String name)

  Creates a new `CollaborationUse`, with the specified 'Name', and appends it to the 'Collaboration Use' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `CollaborationUse`, or `null`.
  Returns:
    The new `CollaborationUse`.
  See Also:
    `getCollaborationUses()`

### getCollaborationUse

    CollaborationUse getCollaborationUse(java.lang.String name)

  Retrieves the first `CollaborationUse` with the specified 'Name' from the 'Collaboration Use' containment reference list.

  Parameters:
    `name` - The 'Name' of the `CollaborationUse` to retrieve, or `null`.
  Returns:
    The first `CollaborationUse` with the specified 'Name', or `null`.
  See Also:
    `getCollaborationUses()`

### getCollaborationUse

    CollaborationUse getCollaborationUse(java.lang.String name,
                                         boolean ignoreCase,
                                         boolean createOnDemand)

  Retrieves the first `CollaborationUse` with the specified 'Name' from the 'Collaboration Use' containment reference list.

  Parameters:
    `name` - The 'Name' of the `CollaborationUse` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `CollaborationUse` on demand if not found.
  Returns:
    The first `CollaborationUse` with the specified 'Name', or `null`.
  See Also:
    `getCollaborationUses()`

### validateNoCyclesInGeneralization

    boolean validateNoCyclesInGeneralization(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                             java.util.Map<java.lang.Object,java.lang.Object> context)

  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 self.allParents()->includes(self)

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateSpecializeType

    boolean validateSpecializeType(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                   java.util.Map<java.lang.Object,java.lang.Object> context)

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

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateGeneralizationHierarchies

    boolean validateGeneralizationHierarchies(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                              java.util.Map<java.lang.Object,java.lang.Object> context)

  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 self.allParents()->includes(self)

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateMapsToGeneralizationSet

    boolean validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                            java.util.Map<java.lang.Object,java.lang.Object> context)

  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. true

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### createGeneralization

    Generalization createGeneralization(Classifier general)

  Creates a new `Generalization`, with the specified 'General', and appends it to the 'Generalization' containment reference list.

  Parameters:
    `general` - The 'General' for the new `Generalization`, or `null`.
  Returns:
    The new `Generalization`.
  See Also:
    `getGeneralizations()`

### getGeneralization

    Generalization getGeneralization(Classifier general)

  Retrieves the first `Generalization` with the specified 'General' from the 'Generalization' containment reference list.

  Parameters:
    `general` - The 'General' of the `Generalization` to retrieve, or `null`.
  Returns:
    The first `Generalization` with the specified 'General', or `null`.
  See Also:
    `getGeneralizations()`

### getGeneralization

    Generalization getGeneralization(Classifier general,
                                     boolean createOnDemand)

  Retrieves the first `Generalization` with the specified 'General' from the 'Generalization' containment reference list.

  Parameters:
    `general` - The 'General' of the `Generalization` to retrieve, or `null`.
    `createOnDemand` - Whether to create a `Generalization` on demand if not found.
  Returns:
    The first `Generalization` with the specified 'General', or `null`.
  See Also:
    `getGeneralizations()`

### getAllAttributes

    org.eclipse.emf.common.util.EList<Property> getAllAttributes()

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

### getOperations

    org.eclipse.emf.common.util.EList<Operation> getOperations()

  Retrieves the operations of this classifier.

### getAllOperations

    org.eclipse.emf.common.util.EList<Operation> getAllOperations()

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

### getOperation

    Operation getOperation(java.lang.String name,
                           org.eclipse.emf.common.util.EList<java.lang.String> parameterNames,
                           org.eclipse.emf.common.util.EList<Type> parameterTypes)

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

  Parameters:
    `name` - The name of the operation to retrieve, or null.
    `parameterNames` - The parameter names of the operation to retrieve, or null.
    `parameterTypes` - The parameter types of the operation to retrieve, or null.

### getOperation

    Operation getOperation(java.lang.String name,
                           org.eclipse.emf.common.util.EList<java.lang.String> parameterNames,
                           org.eclipse.emf.common.util.EList<Type> parameterTypes,
                           boolean ignoreCase)

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

  Parameters:
    `name` - The name of the operation to retrieve, or null.
    `parameterNames` - The parameter names of the operation to retrieve, or null.
    `parameterTypes` - The parameter types of the operation to retrieve, or null.
    `ignoreCase` - Whether to ignore case in String comparisons.

### getUsedInterfaces

    org.eclipse.emf.common.util.EList<Interface> getUsedInterfaces()

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

### getAllUsedInterfaces

    org.eclipse.emf.common.util.EList<Interface> getAllUsedInterfaces()

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

### maySpecializeType

    boolean maySpecializeType(Classifier c)

  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)

### allFeatures

    org.eclipse.emf.common.util.EList<Feature> 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))

### parents

    org.eclipse.emf.common.util.EList<Classifier> parents()

  The query parents() gives all of the immediate ancestors of a generalized Classifier. result = generalization.general

### inheritableMembers

    org.eclipse.emf.common.util.EList<NamedElement> inheritableMembers(Classifier c)

  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))

### hasVisibilityOf

    boolean hasVisibilityOf(NamedElement n)

  The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent. self.allParents()->collect(c | c.member)->includes(n) result = if (self.inheritedMember->includes(n)) then (n.visibility <> #private) else true

### conformsTo

    boolean conformsTo(Classifier other)

  This operation redefines the following operations:

  - '`Conforms To`'
  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. result = (self=other) or (self.allParents()->includes(other))

### inherit

    org.eclipse.emf.common.util.EList<NamedElement> inherit(org.eclipse.emf.common.util.EList<NamedElement> inhs)

  The inherit operation is overridden to exclude redefined properties. The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition. result = inhs

### allParents

    org.eclipse.emf.common.util.EList<Classifier> allParents()

  The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. result = self.parents()->union(self.parents()->collect(p | p.allParents())

Copyright 2003, 2007 IBM Corporation and others. All Rights Reserved.