Class UML 2.3::OpaqueExpression
Description:
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: ValueSpecificationDirect Subclasses: Class Precedence List: OpaqueExpression,
ValueSpecification,
PackageableElement,
ParameterableElement,
TypedElement,
NamedElement,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
behavior :
Behavior (0 1); -- source
OpaqueExpression![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
body : String (0 *); -- source
OpaqueExpression![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
language : String (0 *); -- source
OpaqueExpression![](/se-interop/image/right-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
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!![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
visibility :
VisibilityKind (1 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
templateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
type :
Type (0 1); -- source
TypedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=107302%3A1F9B1A9E125115D93C6D3A4EAFE32CB8)
owner :
Element (0 1); -- source
ElementConstraints:
Signature: CMOF_14_3_31() : Boolean;
Description: 14.3 [31] The body of an OpaqueExpression must not be empty.
see also: https://sites.google.com/site/metamodelingantipatterns/catalog/mof/opaque-expression-has-no-or-empty-body
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())
Operations:
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
[email protected].