Class UML 2.4.1::OpaqueExpression
Description:
An opaque expression is an uninterpreted textual statement that denotes
a (possibly empty) set of values when evaluated in a context.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,
TypedElement,
PackageableElement,
ParameterableElement,
NamedElement,
ElementProperties:
behavior :
Behavior (0 1); -- source
OpaqueExpression body : String (0 *); -- source
OpaqueExpression language : String (0 *); -- source
OpaqueExpressionSpecifies the languages in which the expression is stated. The interpretation
of the expression body depends on the languages. If the languages are unspecified,
they might be implicit from the expression body or the context. Languages
are matched to body strings by order.
{
ordered}
result :
Parameter (0 1); -- source
OpaqueExpression type :
Type (0 1); -- source
TypedElement visibility :
VisibilityKind (1 1); -- source
PackageableElement owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement templateParameter :
TemplateParameter (0 1); -- source
ParameterableElement 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
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: self.isIntegral()
true
Signature: isPositive() : Boolean;
Description: The query isPositive() tells whether an integer expression has a positive
value.
Expression: result = false
self.isIntegral()
Signature: isNonNegative() : Boolean;
Description: The query isNonNegative() tells whether an integer expression has a non-negative
value.
Expression: result = false
self.isIntegral()
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].