## org.eclipse.uml2.uml
Interface UseCase

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

    public interface UseCase

extends BehavioredClassifier

A representation of the model object 'Use Case'. A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system.

The following features are supported:

- `Include`
- `Extend`
- `Extension Point`
- `Subject`

See Also:
  `UMLPackage.getUseCase()`

Method Summary
`org.eclipse.emf.common.util.EList<UseCase>` `allIncludedUseCases()` The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.
`Extend` `createExtend(java.lang.String name, UseCase extendedCase)` Creates a new `Extend`, with the specified 'Name', and 'Extended Case', and appends it to the 'Extend' containment reference list
`ExtensionPoint` `createExtensionPoint(java.lang.String name)` Creates a new `ExtensionPoint`, with the specified 'Name', and appends it to the 'Extension Point' containment reference list
`Include` `createInclude(java.lang.String name, UseCase addition)` Creates a new `Include`, with the specified 'Name', and 'Addition', and appends it to the 'Include' containment reference list
`Extend` `getExtend(java.lang.String name, UseCase extendedCase)` Retrieves the first `Extend` with the specified 'Name', and 'Extended Case' from the 'Extend' containment reference list
`Extend` `getExtend(java.lang.String name, UseCase extendedCase, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `Extend` with the specified 'Name', and 'Extended Case' from the 'Extend' containment reference list
`org.eclipse.emf.common.util.EList<Extend>` `getExtends()` Returns the value of the 'Extend' containment reference list.
`ExtensionPoint` `getExtensionPoint(java.lang.String name)` Retrieves the first `ExtensionPoint` with the specified 'Name' from the 'Extension Point' containment reference list
`ExtensionPoint` `getExtensionPoint(java.lang.String name, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `ExtensionPoint` with the specified 'Name' from the 'Extension Point' containment reference list
`org.eclipse.emf.common.util.EList<ExtensionPoint>` `getExtensionPoints()` Returns the value of the 'Extension Point' containment reference list.
`Include` `getInclude(java.lang.String name, UseCase addition)` Retrieves the first `Include` with the specified 'Name', and 'Addition' from the 'Include' containment reference list
`Include` `getInclude(java.lang.String name, UseCase addition, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `Include` with the specified 'Name', and 'Addition' from the 'Include' containment reference list
`org.eclipse.emf.common.util.EList<Include>` `getIncludes()` Returns the value of the 'Include' containment reference list.
`Classifier` `getSubject(java.lang.String name)` Retrieves the first `Classifier` with the specified 'Name' from the 'Subject' reference list
`Classifier` `getSubject(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass)` Retrieves the first `Classifier` with the specified 'Name' from the 'Subject' reference list
`org.eclipse.emf.common.util.EList<Classifier>` `getSubjects()` Returns the value of the 'Subject' reference list.
`boolean` `validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` UseCases can only be involved in binary Associations.
`boolean` `validateCannotIncludeSelf(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A use case cannot include use cases that directly or indirectly include it.
`boolean` `validateMustHaveName(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A UseCase must have a name.
`boolean` `validateNoAssociationToUseCase(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` UseCases can not have Associations to UseCases specifying the same subject.

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

`createClassifierBehavior, createInterfaceRealization, createOwnedBehavior, createOwnedTrigger, getAllImplementedInterfaces, getClassifierBehavior, getImplementedInterfaces, getInterfaceRealization, getInterfaceRealization, getInterfaceRealizations, getOwnedBehavior, getOwnedBehavior, getOwnedBehaviors, getOwnedTrigger, getOwnedTrigger, getOwnedTriggers, setClassifierBehavior, validateClassBehavior`

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

`allFeatures, allParents, conformsTo, createCollaborationUse, createGeneralization, createOwnedUseCase, createRepresentation, createSubstitution, getAllAttributes, getAllOperations, getAllUsedInterfaces, getAttribute, getAttribute, getAttributes, getCollaborationUse, getCollaborationUse, getCollaborationUses, getFeature, getFeature, getFeatures, getGeneral, getGeneral, getGeneralization, getGeneralization, getGeneralizations, getGenerals, getInheritedMember, getInheritedMember, getInheritedMembers, getOperation, getOperation, getOperations, getOwnedUseCase, getOwnedUseCase, getOwnedUseCases, getPowertypeExtent, getPowertypeExtent, getPowertypeExtents, getRedefinedClassifier, getRedefinedClassifier, getRedefinedClassifiers, getRepresentation, getSubstitution, getSubstitution, getSubstitutions, getUseCase, getUseCase, getUseCases, getUsedInterfaces, hasVisibilityOf, inherit, inheritableMembers, isAbstract, maySpecializeType, parents, setIsAbstract, setRepresentation, validateGeneralizationHierarchies, validateMapsToGeneralizationSet, validateNoCyclesInGeneralization, validateSpecializeType`

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

### getIncludes

    org.eclipse.emf.common.util.EList<Include> getIncludes()

  Returns the value of the 'Include' containment reference list. The list contents are of type `Include`. It is bidirectional and its opposite is '`Including Case`'. References the Include relationships owned by this use case.

  Returns:
    the value of the 'Include' containment reference list.
  See Also:
    `UMLPackage.getUseCase_Include()`, `Include.getIncludingCase()`

### createInclude

    Include createInclude(java.lang.String name,
                          UseCase addition)

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

  Parameters:
    `name` - The 'Name' for the new `Include`, or `null`.
    `addition` - The 'Addition' for the new `Include`, or `null`.
  Returns:
    The new `Include`.
  See Also:
    `getIncludes()`

### getInclude

    Include getInclude(java.lang.String name,
                       UseCase addition)

  Retrieves the first `Include` with the specified 'Name', and 'Addition' from the 'Include' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Include` to retrieve, or `null`.
    `addition` - The 'Addition' of the `Include` to retrieve, or `null`.
  Returns:
    The first `Include` with the specified 'Name', and 'Addition', or `null`.
  See Also:
    `getIncludes()`

### getInclude

    Include getInclude(java.lang.String name,
                       UseCase addition,
                       boolean ignoreCase,
                       boolean createOnDemand)

  Retrieves the first `Include` with the specified 'Name', and 'Addition' from the 'Include' containment reference list.

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

### getExtends

    org.eclipse.emf.common.util.EList<Extend> getExtends()

  Returns the value of the 'Extend' containment reference list. The list contents are of type `Extend`. It is bidirectional and its opposite is '`Extension`'. References the Extend relationships owned by this use case.

  Returns:
    the value of the 'Extend' containment reference list.
  See Also:
    `UMLPackage.getUseCase_Extend()`, `Extend.getExtension()`

### createExtend

    Extend createExtend(java.lang.String name,
                        UseCase extendedCase)

  Creates a new `Extend`, with the specified 'Name', and 'Extended Case', and appends it to the 'Extend' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `Extend`, or `null`.
    `extendedCase` - The 'Extended Case' for the new `Extend`, or `null`.
  Returns:
    The new `Extend`.
  See Also:
    `getExtends()`

### getExtend

    Extend getExtend(java.lang.String name,
                     UseCase extendedCase)

  Retrieves the first `Extend` with the specified 'Name', and 'Extended Case' from the 'Extend' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Extend` to retrieve, or `null`.
    `extendedCase` - The 'Extended Case' of the `Extend` to retrieve, or `null`.
  Returns:
    The first `Extend` with the specified 'Name', and 'Extended Case', or `null`.
  See Also:
    `getExtends()`

### getExtend

    Extend getExtend(java.lang.String name,
                     UseCase extendedCase,
                     boolean ignoreCase,
                     boolean createOnDemand)

  Retrieves the first `Extend` with the specified 'Name', and 'Extended Case' from the 'Extend' containment reference list.

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

### getExtensionPoints

    org.eclipse.emf.common.util.EList<ExtensionPoint> getExtensionPoints()

  Returns the value of the 'Extension Point' containment reference list. The list contents are of type `ExtensionPoint`. It is bidirectional and its opposite is '`Use Case`'. References the ExtensionPoints owned by the use case.

  Returns:
    the value of the 'Extension Point' containment reference list.
  See Also:
    `UMLPackage.getUseCase_ExtensionPoint()`, `ExtensionPoint.getUseCase()`

### createExtensionPoint

    ExtensionPoint createExtensionPoint(java.lang.String name)

  Creates a new `ExtensionPoint`, with the specified 'Name', and appends it to the 'Extension Point' containment reference list.

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

### getExtensionPoint

    ExtensionPoint getExtensionPoint(java.lang.String name)

  Retrieves the first `ExtensionPoint` with the specified 'Name' from the 'Extension Point' containment reference list.

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

### getExtensionPoint

    ExtensionPoint getExtensionPoint(java.lang.String name,
                                     boolean ignoreCase,
                                     boolean createOnDemand)

  Retrieves the first `ExtensionPoint` with the specified 'Name' from the 'Extension Point' containment reference list.

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

### getSubjects

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

  Returns the value of the 'Subject' reference list. The list contents are of type `Classifier`. It is bidirectional and its opposite is '`Use Case`'. References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it.

  Returns:
    the value of the 'Subject' reference list.
  See Also:
    `UMLPackage.getUseCase_Subject()`, `Classifier.getUseCases()`

### getSubject

    Classifier getSubject(java.lang.String name)

  Retrieves the first `Classifier` with the specified 'Name' from the 'Subject' 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:
    `getSubjects()`

### getSubject

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

  Retrieves the first `Classifier` with the specified 'Name' from the 'Subject' 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:
    `getSubjects()`

### validateMustHaveName

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

  A UseCase must have a name. self.name -> notEmpty ()

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

### validateBinaryAssociations

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

  UseCases can only be involved in binary Associations. true

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

### validateNoAssociationToUseCase

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

  UseCases can not have Associations to UseCases specifying the same subject. true

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

### validateCannotIncludeSelf

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

  A use case cannot include use cases that directly or indirectly include it. not self.allIncludedUseCases()->includes(self)

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

### allIncludedUseCases

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

  The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case. result = self.include->union(self.include->collect(in | in.allIncludedUseCases()))

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