# OclMessage

## `OclMessage`

OclMessage This sub clause contains the definition of the standard type OclMessage. As defined in this sub clause, each ocl message type is actually a template type with one parameter. ‘T’ denotes the parameter. A concrete ocl message type is created by substituting an operation or signal for the T.

The predefined type OclMessage is an instance of MessageType. Every OclMessage is fully determined by either the operation, or signal given as parameter. Note that there is conceptually an undefined (infinite) number of these types, as each is determined by a different operation or signal. These types are unnamed. Every type has as attributes the name of the operation or signal, and either all formal parameters of the operation, or all attributes of the signal. OclMessage is itself an instance of the metatype MessageType.

OclMessage has a number of predefined operations, as shown in the OCL Standard Library.

conformsTo `OclAny`

Operations

`hasReturned() : Boolean[1]`

True if type of template parameter is an operation call, and the called operation has returned a value. This implies the fact that the message has been sent. False in all other cases.

`isOperationCall() : Boolean[1]`

Returns `true` if the OclMessage represents the sending of a UML Operation call.

`isSignalSent() : Boolean[1]`

Returns `true` if the OclMessage represents the sending of a UML Signal.

`result() : OclAny[?]`

Returns the result of the called operation, if type of template parameter is an operation call, and the called operation has returned a value. Otherwise the `invalid` value is returned.