Software Disclaimer

Class UML 2.3::OpaqueExpression


Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result.

Direct Superclasses: ValueSpecification

Direct Subclasses:

Class Precedence List: OpaqueExpression, ValueSpecification, PackageableElement, ParameterableElement, TypedElement, NamedElement, Element


behavior : Behavior (0 1); -- source OpaqueExpression
body : String (0 *); -- source OpaqueExpression
language : String (0 *); -- source OpaqueExpression
result : Parameter (0 1); -- source OpaqueExpression

Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior.
{readonly, derived}
The spec does not provide a function to compute this derived property!

visibility : VisibilityKind (1 1); -- source PackageableElement
owningTemplateParameter : TemplateParameter (0 1); -- source ParameterableElement
templateParameter : TemplateParameter (0 1); -- source ParameterableElement
type : Type (0 1); -- source TypedElement
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element


Signature: CMOF_14_3_31() : Boolean;
Description: 14.3 [31] The body of an OpaqueExpression must not be empty. see also:
Expression: body->notEmpty() and body <> ''

Signature: only_return_result_parameters() : Boolean;
Description: The behavior may only have return result parameters.
The OCL used here is not normative.
Editor's notes: ownedParameter, not ownedParameters.
Expression: self.behavior.notEmpty() implies self.behavior.ownedParameter->select(p | p.direction<>#return)->isEmpty()
Original: self.behavior.notEmpty() implies self.behavior.ownedParameters->select(p | p.direction<>#return)->isEmpty()

Signature: one_return_result_parameter() : Boolean;
Description: The behavior must have exactly one return result parameter.
Expression: self.behavior.notEmpty() implies self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1

Signature: language_body_size() : Boolean;
Description: If the language attribute is not empty, then the size of the body and language arrays must be the same.
Expression: language->notEmpty() implies (body->size() = language->size())


Signature: value() : Integer;
Description: The query value() gives an integer value for an expression intended to produce one.
Expression: true

Signature: isPositive() : Boolean;
Description: The query isPositive() tells whether an integer expression has a positive value.
Expression: result = false

Signature: isNonNegative() : Boolean;
Description: The query isNonNegative() tells whether an integer expression has a non-negative value.
Expression: result = false

Signature: isIntegral() : Boolean;
Description: The query isIntegral() tells whether an expression is intended to produce an integer.
Expression: result = false

Send questions or comments to