## org.eclipse.uml2.uml
Interface Message

All Superinterfaces:
  Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, NamedElement, org.eclipse.emf.common.notify.Notifier

    public interface Message

extends NamedElement

A representation of the model object 'Message'. A message defines a particular communication between lifelines of an interaction.

The following features are supported:

- `Message Kind`
- `Message Sort`
- `Receive Event`
- `Send Event`
- `Connector`
- `Interaction`
- `Argument`
- `Signature`

See Also:
  `UMLPackage.getMessage()`

Field Summary

Fields inherited from interface org.eclipse.uml2.uml.NamedElement
`SEPARATOR`

Method Summary
`ValueSpecification` `createArgument(java.lang.String name, Type type, org.eclipse.emf.ecore.EClass eClass)` Creates a new `ValueSpecification`, with the specified 'Name', and 'Type', and appends it to the 'Argument' containment reference list
`ValueSpecification` `getArgument(java.lang.String name, Type type)` Retrieves the first `ValueSpecification` with the specified 'Name', and 'Type' from the 'Argument' containment reference list
`ValueSpecification` `getArgument(java.lang.String name, Type type, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass, boolean createOnDemand)` Retrieves the first `ValueSpecification` with the specified 'Name', and 'Type' from the 'Argument' containment reference list
`org.eclipse.emf.common.util.EList<ValueSpecification>` `getArguments()` Returns the value of the 'Argument' containment reference list.
`Connector` `getConnector()` Returns the value of the 'Connector' reference
`Interaction` `getInteraction()` Returns the value of the 'Interaction' container reference.
`MessageKind` `getMessageKind()` Returns the value of the 'Message Kind' attribute.
`MessageSort` `getMessageSort()` Returns the value of the 'Message Sort' attribute.
`MessageEnd` `getReceiveEvent()` Returns the value of the 'Receive Event' reference
`MessageEnd` `getSendEvent()` Returns the value of the 'Send Event' reference
`NamedElement` `getSignature()` Returns the value of the 'Signature' reference
`void` `setConnector(Connector value)` Sets the value of the '`Connector`' reference
`void` `setInteraction(Interaction value)` Sets the value of the '`Interaction`' container reference
`void` `setMessageSort(MessageSort value)` Sets the value of the '`Message Sort`' attribute
`void` `setReceiveEvent(MessageEnd value)` Sets the value of the '`Receive Event`' reference
`void` `setSendEvent(MessageEnd value)` Sets the value of the '`Send Event`' reference

`boolean`

`validateArguments(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)`
Arguments of a Message must only be: i) attributes of the sending lifeline ii) constants iii) symbolic values (which are wildcard values representing any legal value) iv) explicit parameters of the enclosing Interaction v) attributes of the class owning the Interaction true

`boolean` `validateCannotCrossBoundaries(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Messages cannot cross bounderies of CombinedFragments or their operands.
`boolean` `validateOccurrenceSpecifications(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.
`boolean` `validateSendingReceivingMessageEvent(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` If the sending MessageEvent and the receiving MessageEvent of the same Message are on the same Lifeline, the sending MessageEvent must be ordered before the receiving MessageEvent.
`boolean` `validateSignatureIsOperation(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation.
`boolean` `validateSignatureIsSignal(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal.
`boolean` `validateSignatureReferTo(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal).

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

`allNamespaces, allOwningPackages, createDependency, createNameExpression, createUsage, getClientDependencies, getClientDependency, getClientDependency, getLabel, getLabel, getName, getNameExpression, getNamespace, getQualifiedName, getVisibility, isDistinguishableFrom, isSetName, isSetVisibility, separator, setName, setNameExpression, setVisibility, unsetName, unsetVisibility, validateHasNoQualifiedName, validateHasQualifiedName, validateVisibilityNeedsOwnership`

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`

Method Detail

### getMessageKind

    MessageKind getMessageKind()

  Returns the value of the 'Message Kind' attribute. The default value is `"unknown"`. The literals are from the enumeration `MessageKind`. The derived kind of the Message (complete, lost, found or unknown)

  Returns:
    the value of the 'Message Kind' attribute.
  See Also:
    `MessageKind`, `UMLPackage.getMessage_MessageKind()`

### getMessageSort

    MessageSort getMessageSort()

  Returns the value of the 'Message Sort' attribute. The default value is `"synchCall"`. The literals are from the enumeration `MessageSort`. The sort of communication reflected by the Message

  Returns:
    the value of the 'Message Sort' attribute.
  See Also:
    `MessageSort`, `setMessageSort(MessageSort)`, `UMLPackage.getMessage_MessageSort()`

### setMessageSort

    void setMessageSort(MessageSort value)

  Sets the value of the '`Message Sort`' attribute.

  Parameters:
    `value` - the new value of the 'Message Sort' attribute.
  See Also:
    `MessageSort`, `getMessageSort()`

### getReceiveEvent

    MessageEnd getReceiveEvent()

  Returns the value of the 'Receive Event' reference. References the Receiving of the Message

  Returns:
    the value of the 'Receive Event' reference.
  See Also:
    `setReceiveEvent(MessageEnd)`, `UMLPackage.getMessage_ReceiveEvent()`

### setReceiveEvent

    void setReceiveEvent(MessageEnd value)

  Sets the value of the '`Receive Event`' reference.

  Parameters:
    `value` - the new value of the 'Receive Event' reference.
  See Also:
    `getReceiveEvent()`

### getSendEvent

    MessageEnd getSendEvent()

  Returns the value of the 'Send Event' reference. References the Sending of the Message.

  Returns:
    the value of the 'Send Event' reference.
  See Also:
    `setSendEvent(MessageEnd)`, `UMLPackage.getMessage_SendEvent()`

### setSendEvent

    void setSendEvent(MessageEnd value)

  Sets the value of the '`Send Event`' reference.

  Parameters:
    `value` - the new value of the 'Send Event' reference.
  See Also:
    `getSendEvent()`

### getConnector

    Connector getConnector()

  Returns the value of the 'Connector' reference. The Connector on which this Message is sent.

  Returns:
    the value of the 'Connector' reference.
  See Also:
    `setConnector(Connector)`, `UMLPackage.getMessage_Connector()`

### setConnector

    void setConnector(Connector value)

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

  Parameters:
    `value` - the new value of the 'Connector' reference.
  See Also:
    `getConnector()`

### getInteraction

    Interaction getInteraction()

  Returns the value of the 'Interaction' container reference. It is bidirectional and its opposite is '`Message`'.

  This feature subsets the following features:

  - '`Namespace`'
  The enclosing Interaction owning the Message

  Returns:
    the value of the 'Interaction' container reference.
  See Also:
    `setInteraction(Interaction)`, `UMLPackage.getMessage_Interaction()`, `Interaction.getMessages()`

### setInteraction

    void setInteraction(Interaction value)

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

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

### getArguments

    org.eclipse.emf.common.util.EList<ValueSpecification> getArguments()

  Returns the value of the 'Argument' containment reference list. The list contents are of type `ValueSpecification`.

  This feature subsets the following features:

  - '`Owned Element`'
  The arguments of the Message

  Returns:
    the value of the 'Argument' containment reference list.
  See Also:
    `UMLPackage.getMessage_Argument()`

### createArgument

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

  Creates a new `ValueSpecification`, with the specified 'Name', and 'Type', and appends it to the 'Argument' containment reference list.

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

### getArgument

    ValueSpecification getArgument(java.lang.String name,
                                   Type type)

  Retrieves the first `ValueSpecification` with the specified 'Name', and 'Type' from the 'Argument' containment reference list.

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

### getArgument

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

  Retrieves the first `ValueSpecification` with the specified 'Name', and 'Type' from the 'Argument' containment reference list.

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

### getSignature

    NamedElement getSignature()

  Returns the value of the 'Signature' reference. The definition of the type or signature of the Message (depending on its kind). The associated named element is derived from the message end that constitutes the sending or receiving message event. If both a sending event and a receiving message event are present, the signature is obtained from the sending event.

  Returns:
    the value of the 'Signature' reference.
  See Also:
    `UMLPackage.getMessage_Signature()`

### validateSendingReceivingMessageEvent

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

  If the sending MessageEvent and the receiving MessageEvent of the same Message are on the same Lifeline, the sending MessageEvent must be ordered before the receiving MessageEvent. true

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

### validateSignatureReferTo

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

  The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message. true

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

### validateSignatureIsOperation

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

  In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter. true

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

### validateSignatureIsSignal

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

  In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute. true

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

### validateArguments

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

  Arguments of a Message must only be: i) attributes of the sending lifeline ii) constants iii) symbolic values (which are wildcard values representing any legal value) iv) explicit parameters of the enclosing Interaction v) attributes of the class owning the Interaction true

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

### validateCannotCrossBoundaries

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

  Messages cannot cross bounderies of CombinedFragments or their operands. true

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

### validateOccurrenceSpecifications

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

  If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds. true

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

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