Software Disclaimer

Abstract Class UML 2.3::ValueSpecification


ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.

Direct Superclasses: PackageableElement, TypedElement

Direct Subclasses: TimeExpression, OpaqueExpression, LiteralSpecification, Interval, InstanceValue, Expression, Duration

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


visibility : VisibilityKind (1 1); -- source PackageableElement

Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
Redefines: NamedElement.visibility
Default value: PUBLIC

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


No additional constraints.


Signature: unlimitedValue() : UnlimitedNatural;
Description: The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
Expression: result = Set{}

Signature: stringValue() : String;
Description: The query stringValue() gives a single String value when one can be computed.
Expression: result = Set{}

Signature: isNull() : Boolean;
Description: The query isNull() returns true when it can be computed that the value is null.
Expression: result = false

Signature: isComputable() : Boolean;
Description: The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.
Expression: result = false

Signature: isCompatibleWith(p : ParameterableElement; ) : Boolean;
Description: The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element.
The OCL used here is not normative.
Editor's notes: oclType() not oclType. no oclType in OCL, AFAIK. This implementation has one one though...
Expression: result = p->oclIsKindOf(self.oclType()) and self.type.conformsTo(p.oclAsType(TypedElement).type)
Original: result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)

Signature: integerValue() : Integer;
Description: The query integerValue() gives a single Integer value when one can be computed.
Expression: result = Set{}

Signature: booleanValue() : Boolean;
Description: The query booleanValue() gives a single Boolean value when one can be computed.
Expression: result = Set{}

Send questions or comments to