## org.eclipse.uml2.uml
Interface Interface

All Superinterfaces:
  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 Interface

extends Classifier

A representation of the model object 'Interface'. An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface. Interfaces may include receptions (in addition to operations). Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.

The following features are supported:

- `Owned Attribute`
- `Owned Operation`
- `Nested Classifier`
- `Redefined Interface`
- `Owned Reception`
- `Protocol`

See Also:
  `UMLPackage.getInterface()`

Method Summary
`Classifier` `createNestedClassifier(java.lang.String name, org.eclipse.emf.ecore.EClass eClass)` Creates a new `Classifier`, with the specified 'Name', and appends it to the 'Nested Classifier' containment reference list
`Property` `createOwnedAttribute(java.lang.String name, Type type)` Creates a new `Property`, with the specified 'Name', and 'Type', and appends it to the 'Owned Attribute' containment reference list
`Property` `createOwnedAttribute(java.lang.String name, Type type, org.eclipse.emf.ecore.EClass eClass)` Creates a new `Property`, with the specified 'Name', and 'Type', and appends it to the 'Owned Attribute' containment reference list
`Property` `createOwnedAttribute(java.lang.String name, Type type, int lower, int upper)` Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this interface.
`Operation` `createOwnedOperation(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames, org.eclipse.emf.common.util.EList<Type> ownedParameterTypes)` Creates a new `Operation`, with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', and appends it to the 'Owned Operation' containment reference list
`Operation` `createOwnedOperation(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> parameterNames, org.eclipse.emf.common.util.EList<Type> parameterTypes, Type returnType)` Creates an operation with the specified name, parameter names, parameter types, and return type (or null) as an owned operation of this interface.
`Reception` `createOwnedReception(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames, org.eclipse.emf.common.util.EList<Type> ownedParameterTypes)` Creates a new `Reception`, with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', and appends it to the 'Owned Reception' containment reference list
`ProtocolStateMachine` `createProtocol(java.lang.String name)` Creates a new `ProtocolStateMachine`,with the specified 'Name', and sets the 'Protocol' containment reference
`Classifier` `getNestedClassifier(java.lang.String name)` Retrieves the first `Classifier` with the specified 'Name' from the 'Nested Classifier' containment reference list
`Classifier` `getNestedClassifier(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass, boolean createOnDemand)` Retrieves the first `Classifier` with the specified 'Name' from the 'Nested Classifier' containment reference list
`org.eclipse.emf.common.util.EList<Classifier>` `getNestedClassifiers()` Returns the value of the 'Nested Classifier' containment reference list.
`Property` `getOwnedAttribute(java.lang.String name, Type type)` Retrieves the first `Property` with the specified 'Name', and 'Type' from the 'Owned Attribute' containment reference list
`Property` `getOwnedAttribute(java.lang.String name, Type type, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass, boolean createOnDemand)` Retrieves the first `Property` with the specified 'Name', and 'Type' from the 'Owned Attribute' containment reference list
`org.eclipse.emf.common.util.EList<Property>` `getOwnedAttributes()` Returns the value of the 'Owned Attribute' containment reference list.
`Operation` `getOwnedOperation(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames, org.eclipse.emf.common.util.EList<Type> ownedParameterTypes)` Retrieves the first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Owned Operation' containment reference list
`Operation` `getOwnedOperation(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames, org.eclipse.emf.common.util.EList<Type> ownedParameterTypes, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Owned Operation' containment reference list
`org.eclipse.emf.common.util.EList<Operation>` `getOwnedOperations()` Returns the value of the 'Owned Operation' containment reference list.
`Reception` `getOwnedReception(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames, org.eclipse.emf.common.util.EList<Type> ownedParameterTypes)` Retrieves the first `Reception` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Owned Reception' containment reference list
`Reception` `getOwnedReception(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames, org.eclipse.emf.common.util.EList<Type> ownedParameterTypes, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `Reception` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Owned Reception' containment reference list
`org.eclipse.emf.common.util.EList<Reception>` `getOwnedReceptions()` Returns the value of the 'Owned Reception' containment reference list.
`ProtocolStateMachine` `getProtocol()` Returns the value of the 'Protocol' containment reference.
`Interface` `getRedefinedInterface(java.lang.String name)` Retrieves the first `Interface` with the specified 'Name' from the 'Redefined Interface' reference list
`Interface` `getRedefinedInterface(java.lang.String name, boolean ignoreCase)` Retrieves the first `Interface` with the specified 'Name' from the 'Redefined Interface' reference list
`org.eclipse.emf.common.util.EList<Interface>` `getRedefinedInterfaces()` Returns the value of the 'Redefined Interface' reference list.
`void` `setProtocol(ProtocolStateMachine value)` Sets the value of the '`Protocol`' containment reference
`boolean` `validateVisibility(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The visibility of all features owned by an interface must be public.

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

### getOwnedAttributes

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

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

  This feature subsets the following features:

  - '`Attribute`'
  - '`Owned Member`'
  The attributes (i.e. the properties) owned by the class.

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

### createOwnedAttribute

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

  Creates a new `Property`, with the specified 'Name', and 'Type', and appends it to the 'Owned Attribute' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `Property`, or `null`.
    `type` - The 'Type' for the new `Property`, or `null`.
    `eClass` - The Ecore class of the `Property` to create.
  Returns:
    The new `Property`.
  See Also:
    `getOwnedAttributes()`

### createOwnedAttribute

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

  Creates a new `Property`, with the specified 'Name', and 'Type', and appends it to the 'Owned Attribute' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `Property`, or `null`.
    `type` - The 'Type' for the new `Property`, or `null`.
  Returns:
    The new `Property`.
  See Also:
    `getOwnedAttributes()`

### getOwnedAttribute

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

  Retrieves the first `Property` with the specified 'Name', and 'Type' from the 'Owned Attribute' containment 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:
    `getOwnedAttributes()`

### getOwnedAttribute

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

  Retrieves the first `Property` with the specified 'Name', and 'Type' from the 'Owned Attribute' containment 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`.
    `createOnDemand` - Whether to create a `Property` on demand if not found.
  Returns:
    The first `Property` with the specified 'Name', and 'Type', or `null`.
  See Also:
    `getOwnedAttributes()`

### getNestedClassifiers

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

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

  This feature subsets the following features:

  - '`Owned Member`'
  References all the Classifiers that are defined (nested) within the Class.

  Returns:
    the value of the 'Nested Classifier' containment reference list.
  See Also:
    `UMLPackage.getInterface_NestedClassifier()`

### createNestedClassifier

    Classifier createNestedClassifier(java.lang.String name,
                                      org.eclipse.emf.ecore.EClass eClass)

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

  Parameters:
    `name` - The 'Name' for the new `Classifier`, or `null`.
    `eClass` - The Ecore class of the `Classifier` to create.
  Returns:
    The new `Classifier`.
  See Also:
    `getNestedClassifiers()`

### getNestedClassifier

    Classifier getNestedClassifier(java.lang.String name)

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

### getNestedClassifier

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

  Retrieves the first `Classifier` with the specified 'Name' from the 'Nested Classifier' containment 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`.
    `createOnDemand` - Whether to create a `Classifier` on demand if not found.
  Returns:
    The first `Classifier` with the specified 'Name', or `null`.
  See Also:
    `getNestedClassifiers()`

### getRedefinedInterfaces

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

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

  This feature subsets the following features:

  - '`Redefined Element`'
  References all the Interfaces redefined by this Interface.

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

### getRedefinedInterface

    Interface getRedefinedInterface(java.lang.String name)

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

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

### getRedefinedInterface

    Interface getRedefinedInterface(java.lang.String name,
                                    boolean ignoreCase)

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

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

### getOwnedReceptions

    org.eclipse.emf.common.util.EList<Reception> getOwnedReceptions()

  Returns the value of the 'Owned Reception' containment reference list. The list contents are of type `Reception`.

  This feature subsets the following features:

  - '`Feature`'
  - '`Owned Member`'
  Receptions that objects providing this interface are willing to accept.

  Returns:
    the value of the 'Owned Reception' containment reference list.
  See Also:
    `UMLPackage.getInterface_OwnedReception()`

### createOwnedReception

    Reception createOwnedReception(java.lang.String name,
                                   org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames,
                                   org.eclipse.emf.common.util.EList<Type> ownedParameterTypes)

  Creates a new `Reception`, with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', and appends it to the 'Owned Reception' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `Reception`, or `null`.
    `ownedParameterNames` - The 'Owned Parameter Names' for the new `Reception`, or `null`.
    `ownedParameterTypes` - The 'Owned Parameter Types' for the new `Reception`, or `null`.
  Returns:
    The new `Reception`.
  See Also:
    `getOwnedReceptions()`

### getOwnedReception

    Reception getOwnedReception(java.lang.String name,
                                org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames,
                                org.eclipse.emf.common.util.EList<Type> ownedParameterTypes)

  Retrieves the first `Reception` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Owned Reception' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Reception` to retrieve, or `null`.
    `ownedParameterNames` - The 'Owned Parameter Names' of the `Reception` to retrieve, or `null`.
    `ownedParameterTypes` - The 'Owned Parameter Types' of the `Reception` to retrieve, or `null`.
  Returns:
    The first `Reception` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', or `null`.
  See Also:
    `getOwnedReceptions()`

### getOwnedReception

    Reception getOwnedReception(java.lang.String name,
                                org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames,
                                org.eclipse.emf.common.util.EList<Type> ownedParameterTypes,
                                boolean ignoreCase,
                                boolean createOnDemand)

  Retrieves the first `Reception` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Owned Reception' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Reception` to retrieve, or `null`.
    `ownedParameterNames` - The 'Owned Parameter Names' of the `Reception` to retrieve, or `null`.
    `ownedParameterTypes` - The 'Owned Parameter Types' of the `Reception` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `Reception` on demand if not found.
  Returns:
    The first `Reception` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', or `null`.
  See Also:
    `getOwnedReceptions()`

### getProtocol

    ProtocolStateMachine getProtocol()

  Returns the value of the 'Protocol' containment reference.

  This feature subsets the following features:

  - '`Owned Member`'
  References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface.

  Returns:
    the value of the 'Protocol' containment reference.
  See Also:
    `setProtocol(ProtocolStateMachine)`, `UMLPackage.getInterface_Protocol()`

### setProtocol

    void setProtocol(ProtocolStateMachine value)

  Sets the value of the '`Protocol`' containment reference.

  Parameters:
    `value` - the new value of the 'Protocol' containment reference.
  See Also:
    `getProtocol()`

### createProtocol

    ProtocolStateMachine createProtocol(java.lang.String name)

  Creates a new `ProtocolStateMachine`,with the specified 'Name', and sets the 'Protocol' containment reference.

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

### getOwnedOperations

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

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

  This feature subsets the following features:

  - '`Feature`'
  - '`Owned Member`'
  The operations owned by the class.

  Returns:
    the value of the 'Owned Operation' containment reference list.
  See Also:
    `UMLPackage.getInterface_OwnedOperation()`, `Operation.getInterface()`

### createOwnedOperation

    Operation createOwnedOperation(java.lang.String name,
                                   org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames,
                                   org.eclipse.emf.common.util.EList<Type> ownedParameterTypes)

  Creates a new `Operation`, with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', and appends it to the 'Owned Operation' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `Operation`, or `null`.
    `ownedParameterNames` - The 'Owned Parameter Names' for the new `Operation`, or `null`.
    `ownedParameterTypes` - The 'Owned Parameter Types' for the new `Operation`, or `null`.
  Returns:
    The new `Operation`.
  See Also:
    `getOwnedOperations()`

### getOwnedOperation

    Operation getOwnedOperation(java.lang.String name,
                                org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames,
                                org.eclipse.emf.common.util.EList<Type> ownedParameterTypes)

  Retrieves the first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Owned Operation' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Operation` to retrieve, or `null`.
    `ownedParameterNames` - The 'Owned Parameter Names' of the `Operation` to retrieve, or `null`.
    `ownedParameterTypes` - The 'Owned Parameter Types' of the `Operation` to retrieve, or `null`.
  Returns:
    The first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', or `null`.
  See Also:
    `getOwnedOperations()`

### getOwnedOperation

    Operation getOwnedOperation(java.lang.String name,
                                org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames,
                                org.eclipse.emf.common.util.EList<Type> ownedParameterTypes,
                                boolean ignoreCase,
                                boolean createOnDemand)

  Retrieves the first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Owned Operation' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Operation` to retrieve, or `null`.
    `ownedParameterNames` - The 'Owned Parameter Names' of the `Operation` to retrieve, or `null`.
    `ownedParameterTypes` - The 'Owned Parameter Types' of the `Operation` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `Operation` on demand if not found.
  Returns:
    The first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', or `null`.
  See Also:
    `getOwnedOperations()`

### validateVisibility

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

  The visibility of all features owned by an interface must be public. self.feature->forAll(f | f.visibility = #public)

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

### createOwnedOperation

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

  Creates an operation with the specified name, parameter names, parameter types, and return type (or null) as an owned operation of this interface.

  Parameters:
    `name` - The name for the new operation, or null.
    `parameterNames` - The parameter names for the new operation, or null.
    `parameterTypes` - The parameter types for the new operation, or null.
    `returnType` - The return type for the new operation, or null.

### createOwnedAttribute

    Property createOwnedAttribute(java.lang.String name,
                                  Type type,
                                  int lower,
                                  int upper)

  Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this interface.

  Parameters:
    `name` - The name for the new attribute, or null.
    `type` - The type for the new attribute, or null.
    `lower` - The lower bound for the new attribute.
    `upper` - The upper bound for the new attribute.

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