## org.eclipse.uml2.uml
Interface Operation

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

    public interface Operation

extends BehavioralFeature, ParameterableElement, TemplateableElement

A representation of the model object 'Operation'. An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior. An operation may invoke both the execution of method behaviors as well as other behavioral responses. Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.

The following features are supported:

- `Interface`
- `Class`
- `Is Query`
- `Is Ordered`
- `Is Unique`
- `Lower`
- `Upper`
- `Precondition`
- `Postcondition`
- `Redefined Operation`
- `Datatype`
- `Body Condition`
- `Type`

See Also:
  `UMLPackage.getOperation()`

Method Summary
`Constraint` `createBodyCondition(java.lang.String name)` Creates a new `Constraint`,with the specified 'Name', and sets the 'Body Condition' reference
`Constraint` `createBodyCondition(java.lang.String name, org.eclipse.emf.ecore.EClass eClass)` Creates a new `Constraint`, with the specified 'Name', and sets the 'Body Condition' reference
`Constraint` `createPostcondition(java.lang.String name)` Creates a new `Constraint`, with the specified 'Name', and appends it to the 'Postcondition' reference list
`Constraint` `createPostcondition(java.lang.String name, org.eclipse.emf.ecore.EClass eClass)` Creates a new `Constraint`, with the specified 'Name', and appends it to the 'Postcondition' reference list
`Constraint` `createPrecondition(java.lang.String name)` Creates a new `Constraint`, with the specified 'Name', and appends it to the 'Precondition' reference list
`Constraint` `createPrecondition(java.lang.String name, org.eclipse.emf.ecore.EClass eClass)` Creates a new `Constraint`, with the specified 'Name', and appends it to the 'Precondition' reference list
`Constraint` `getBodyCondition()` Returns the value of the 'Body Condition' reference.
`Class` `getClass_()` Returns the value of the 'Class' container reference.
`DataType` `getDatatype()` Returns the value of the 'Datatype' container reference.
`Interface` `getInterface()` Returns the value of the 'Interface' container reference.
`int` `getLower()` Returns the value of the 'Lower' attribute.
`Constraint` `getPostcondition(java.lang.String name)` Retrieves the first `Constraint` with the specified 'Name' from the 'Postcondition' reference list
`Constraint` `getPostcondition(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass, boolean createOnDemand)` Retrieves the first `Constraint` with the specified 'Name' from the 'Postcondition' reference list
`org.eclipse.emf.common.util.EList<Constraint>` `getPostconditions()` Returns the value of the 'Postcondition' reference list.
`Constraint` `getPrecondition(java.lang.String name)` Retrieves the first `Constraint` with the specified 'Name' from the 'Precondition' reference list
`Constraint` `getPrecondition(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass, boolean createOnDemand)` Retrieves the first `Constraint` with the specified 'Name' from the 'Precondition' reference list
`org.eclipse.emf.common.util.EList<Constraint>` `getPreconditions()` Returns the value of the 'Precondition' reference list.
`Operation` `getRedefinedOperation(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 'Redefined Operation' reference list
`Operation` `getRedefinedOperation(java.lang.String name, org.eclipse.emf.common.util.EList<java.lang.String> ownedParameterNames, org.eclipse.emf.common.util.EList<Type> ownedParameterTypes, boolean ignoreCase)` Retrieves the first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Redefined Operation' reference list
`org.eclipse.emf.common.util.EList<Operation>` `getRedefinedOperations()` Returns the value of the 'Redefined Operation' reference list.
`Parameter` `getReturnResult()` Retrieves the (only) return result parameter for this operation
`Type` `getType()` Returns the value of the 'Type' reference
`int` `getUpper()` Returns the value of the 'Upper' attribute.
`boolean` `isOrdered()` Returns the value of the 'Is Ordered' attribute.
`boolean` `isQuery()` Returns the value of the 'Is Query' attribute.
`boolean` `isUnique()` Returns the value of the 'Is Unique' attribute.
`int` `lowerBound()` If this operation has a return parameter, lower equals the value of lower for that parameter.
`org.eclipse.emf.common.util.EList<Parameter>` `returnResult()` The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set result = ownedParameter->select (par | par.direction = #return)
`void` `setBodyCondition(Constraint value)` Sets the value of the '`Body Condition`' reference
`void` `setClass_(Class value)` Sets the value of the '`Class`' container reference
`void` `setDatatype(DataType value)` Sets the value of the '`Datatype`' container reference
`void` `setInterface(Interface value)` Sets the value of the '`Interface`' container reference
`void` `setIsOrdered(boolean value)` Sets the value of the '`Is Ordered`' attribute
`void` `setIsQuery(boolean value)` Sets the value of the '`Is Query`' attribute
`void` `setIsUnique(boolean value)` Sets the value of the '`Is Unique`' attribute
`void` `setLower(int value)` Sets the value of the '`Lower`' attribute
`void` `setType(Type value)` Sets the value of the '`Type`' reference
`void` `setUpper(int value)` Sets the value of the '`Upper`' attribute
`int` `upperBound()` If this operation has a return parameter, upper equals the value of upper for that parameter.
`boolean` `validateAtMostOneReturn(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return' self.ownedParameter->select(par | par.direction = #return)->size() <= 1
`boolean` `validateOnlyBodyForQuery(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A bodyCondition can only be specified for a query operation.

Methods inherited from interface org.eclipse.uml2.uml.BehavioralFeature
`createOwnedParameter, createOwnedParameterSet, createReturnResult, getConcurrency, getMethod, getMethod, getMethods, getOwnedParameter, getOwnedParameter, getOwnedParameters, getOwnedParameterSet, getOwnedParameterSet, getOwnedParameterSets, getRaisedException, getRaisedException, getRaisedExceptions, isAbstract, setConcurrency, setIsAbstract`

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.Feature
`getFeaturingClassifier, getFeaturingClassifier, getFeaturingClassifiers, isStatic, setIsStatic`

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.ParameterableElement
`getOwningTemplateParameter, getTemplateParameter, isCompatibleWith, isTemplateParameter, setOwningTemplateParameter, setTemplateParameter`

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

Method Detail

### isQuery

    boolean isQuery()

  Returns the value of the 'Is Query' attribute. The default value is `"false"`. Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false).

  Returns:
    the value of the 'Is Query' attribute.
  See Also:
    `setIsQuery(boolean)`, `UMLPackage.getOperation_IsQuery()`

### setIsQuery

    void setIsQuery(boolean value)

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

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

### isOrdered

    boolean isOrdered()

  Returns the value of the 'Is Ordered' attribute. The default value is `"false"`. This information is derived from the return result for this Operation. Specifies whether the return parameter is ordered or not, if present.

  Returns:
    the value of the 'Is Ordered' attribute.
  See Also:
    `setIsOrdered(boolean)`, `UMLPackage.getOperation_IsOrdered()`

### setIsOrdered

    void setIsOrdered(boolean value)

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

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

### isUnique

    boolean isUnique()

  Returns the value of the 'Is Unique' attribute. The default value is `"true"`. This information is derived from the return result for this Operation. Specifies whether the return parameter is unique or not, if present.

  Returns:
    the value of the 'Is Unique' attribute.
  See Also:
    `setIsUnique(boolean)`, `UMLPackage.getOperation_IsUnique()`

### setIsUnique

    void setIsUnique(boolean value)

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

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

### getLower

    int getLower()

  Returns the value of the 'Lower' attribute. The default value is `"1"`. This information is derived from the return result for this Operation. Specifies the lower multiplicity of the return parameter, if present.

  Returns:
    the value of the 'Lower' attribute.
  See Also:
    `setLower(int)`, `UMLPackage.getOperation_Lower()`

### setLower

    void setLower(int value)

  Sets the value of the '`Lower`' attribute.

  Parameters:
    `value` - the new value of the 'Lower' attribute.
  See Also:
    `getLower()`

### getUpper

    int getUpper()

  Returns the value of the 'Upper' attribute. The default value is `"1"`. This information is derived from the return result for this Operation. Specifies the upper multiplicity of the return parameter, if present.

  Returns:
    the value of the 'Upper' attribute.
  See Also:
    `setUpper(int)`, `UMLPackage.getOperation_Upper()`

### setUpper

    void setUpper(int value)

  Sets the value of the '`Upper`' attribute.

  Parameters:
    `value` - the new value of the 'Upper' attribute.
  See Also:
    `getUpper()`

### getClass_

    Class getClass_()

  Returns the value of the 'Class' container reference. It is bidirectional and its opposite is '`Owned Operation`'.

  This feature subsets the following features:

  - '`Redefinition Context`'
  - '`Namespace`'
  - '`Featuring Classifier`'
  The class that owns the operation.

  Returns:
    the value of the 'Class' container reference.
  See Also:
    `setClass_(Class)`, `UMLPackage.getOperation_Class()`, `Class.getOwnedOperations()`

### setClass_

    void setClass_(Class value)

  Sets the value of the '`Class`' container reference.

  Parameters:
    `value` - the new value of the 'Class' container reference.
  See Also:
    `getClass_()`

### getPreconditions

    org.eclipse.emf.common.util.EList<Constraint> getPreconditions()

  Returns the value of the 'Precondition' reference list. The list contents are of type `Constraint`.

  This feature subsets the following features:

  - '`Owned Rule`'
  An optional set of Constraints on the state of the system when the Operation is invoked.

  Returns:
    the value of the 'Precondition' reference list.
  See Also:
    `UMLPackage.getOperation_Precondition()`

### createPrecondition

    Constraint createPrecondition(java.lang.String name,
                                  org.eclipse.emf.ecore.EClass eClass)

  Creates a new `Constraint`, with the specified 'Name', and appends it to the 'Precondition' reference list.

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

### createPrecondition

    Constraint createPrecondition(java.lang.String name)

  Creates a new `Constraint`, with the specified 'Name', and appends it to the 'Precondition' reference list.

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

### getPrecondition

    Constraint getPrecondition(java.lang.String name)

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

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

### getPrecondition

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

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

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

### getPostconditions

    org.eclipse.emf.common.util.EList<Constraint> getPostconditions()

  Returns the value of the 'Postcondition' reference list. The list contents are of type `Constraint`.

  This feature subsets the following features:

  - '`Owned Rule`'
  An optional set of Constraints specifying the state of the system when the Operation is completed.

  Returns:
    the value of the 'Postcondition' reference list.
  See Also:
    `UMLPackage.getOperation_Postcondition()`

### createPostcondition

    Constraint createPostcondition(java.lang.String name,
                                   org.eclipse.emf.ecore.EClass eClass)

  Creates a new `Constraint`, with the specified 'Name', and appends it to the 'Postcondition' reference list.

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

### createPostcondition

    Constraint createPostcondition(java.lang.String name)

  Creates a new `Constraint`, with the specified 'Name', and appends it to the 'Postcondition' reference list.

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

### getPostcondition

    Constraint getPostcondition(java.lang.String name)

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

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

### getPostcondition

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

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

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

### getRedefinedOperations

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

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

  This feature subsets the following features:

  - '`Redefined Element`'
  References the Operations that are redefined by this Operation.

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

### getRedefinedOperation

    Operation getRedefinedOperation(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 'Redefined Operation' 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:
    `getRedefinedOperations()`

### getRedefinedOperation

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

  Retrieves the first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types' from the 'Redefined Operation' 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.
  Returns:
    The first `Operation` with the specified 'Name', 'Owned Parameter Names', and 'Owned Parameter Types', or `null`.
  See Also:
    `getRedefinedOperations()`

### getDatatype

    DataType getDatatype()

  Returns the value of the 'Datatype' container reference. It is bidirectional and its opposite is '`Owned Operation`'.

  This feature subsets the following features:

  - '`Redefinition Context`'
  - '`Namespace`'
  - '`Featuring Classifier`'
  The DataType that owns this Operation.

  Returns:
    the value of the 'Datatype' container reference.
  See Also:
    `setDatatype(DataType)`, `UMLPackage.getOperation_Datatype()`, `DataType.getOwnedOperations()`

### setDatatype

    void setDatatype(DataType value)

  Sets the value of the '`Datatype`' container reference.

  Parameters:
    `value` - the new value of the 'Datatype' container reference.
  See Also:
    `getDatatype()`

### getBodyCondition

    Constraint getBodyCondition()

  Returns the value of the 'Body Condition' reference.

  This feature subsets the following features:

  - '`Owned Rule`'
  An optional Constraint on the result values of an invocation of this Operation.

  Returns:
    the value of the 'Body Condition' reference.
  See Also:
    `setBodyCondition(Constraint)`, `UMLPackage.getOperation_BodyCondition()`

### setBodyCondition

    void setBodyCondition(Constraint value)

  Sets the value of the '`Body Condition`' reference.

  Parameters:
    `value` - the new value of the 'Body Condition' reference.
  See Also:
    `getBodyCondition()`

### createBodyCondition

    Constraint createBodyCondition(java.lang.String name,
                                   org.eclipse.emf.ecore.EClass eClass)

  Creates a new `Constraint`, with the specified 'Name', and sets the 'Body Condition' reference.

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

### createBodyCondition

    Constraint createBodyCondition(java.lang.String name)

  Creates a new `Constraint`,with the specified 'Name', and sets the 'Body Condition' reference.

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

### getType

    Type getType()

  Returns the value of the 'Type' reference. This information is derived from the return result for this Operation. Specifies the return result of the operation, if present.

  Returns:
    the value of the 'Type' reference.
  See Also:
    `setType(Type)`, `UMLPackage.getOperation_Type()`

### setType

    void setType(Type value)

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

  Parameters:
    `value` - the new value of the 'Type' reference.
  See Also:
    `getType()`

### getInterface

    Interface getInterface()

  Returns the value of the 'Interface' container reference. It is bidirectional and its opposite is '`Owned Operation`'.

  This feature subsets the following features:

  - '`Redefinition Context`'
  The Interface that owns this Operation.

  Returns:
    the value of the 'Interface' container reference.
  See Also:
    `setInterface(Interface)`, `UMLPackage.getOperation_Interface()`, `Interface.getOwnedOperations()`

### setInterface

    void setInterface(Interface value)

  Sets the value of the '`Interface`' container reference.

  Parameters:
    `value` - the new value of the 'Interface' container reference.
  See Also:
    `getInterface()`

### validateAtMostOneReturn

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

  An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return' self.ownedParameter->select(par | par.direction = #return)->size() <= 1

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

### validateOnlyBodyForQuery

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

  A bodyCondition can only be specified for a query operation. bodyCondition->notEmpty() implies isQuery

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

### getReturnResult

    Parameter getReturnResult()

  Retrieves the (only) return result parameter for this operation.

### lowerBound

    int lowerBound()

  If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif

### upperBound

    int upperBound()

  If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif

### returnResult

    org.eclipse.emf.common.util.EList<Parameter> returnResult()

  The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set result = ownedParameter->select (par | par.direction = #return)

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