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:
behavior :
Behavior (0 1); -- source
OpaqueExpression body : String (0 *); -- source
OpaqueExpression language : String (0 *); -- source
OpaqueExpression Specifies 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.
{
composite,
ordered}
result :
Parameter (0 1); -- source
OpaqueExpression 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
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].