OCLOperators value
(Adding message template to the top of the page)
(Updated Edited template to July 12, 2025.)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{message|Write the content here to display this box}}
<message>Write the content here to display this box</message>
Returns the the non-null value of a simple nullable type.
Returns the the non-null value of a simple nullable type.
{| class="wikitable"
{| class="wikitable"
Line 8: Line 8:
|0
|0
|}
|}
{{Edited|July|12|2024}}
{{Edited|July|12|2025}}The value of the current nullable object is returned if it has been assigned a valid underlying value - otherwise, 0 is returned.
 
Some expressions may require  a non-null value and yet your attribute is a nullable type. A scenario like this is catered for in the MDriven OCL expressions.
'''.Value''' is available for all number types including Integer, Decimal, Double, and Int64.
For example:
 
[[File:getting-value-for-nullable-type.png|alt=getting value for nullable type|frameless|202x202px]]
 
To calculate the Total Price of all products use:
Product.allinstances.Price->sum.Value
or:
Product.allinstances->collect(i|i.Price.Value)->sum
This will ensure a value is always returned by the expression, either when there are no product instances or the product price is not set for all instances.
[[Category:OCLOperators]]

Latest revision as of 05:59, 20 January 2025

This page was created by Lars.olofsson@mdriven.net on 2024-06-11. Last edited by Edgar on 2025-01-20.

Returns the the non-null value of a simple nullable type.

Expression Result
int? with the value null 0

The value of the current nullable object is returned if it has been assigned a valid underlying value - otherwise, 0 is returned.

Some expressions may require a non-null value and yet your attribute is a nullable type. A scenario like this is catered for in the MDriven OCL expressions.

.Value is available for all number types including Integer, Decimal, Double, and Int64.

For example:

getting value for nullable type

To calculate the Total Price of all products use:

Product.allinstances.Price->sum.Value

or:

Product.allinstances->collect(i|i.Price.Value)->sum

This will ensure a value is always returned by the expression, either when there are no product instances or the product price is not set for all instances.