Boolean
Defining

A boolean in OCL can be both Non-nullable and Nullable.

NonNullableBoolean : Boolean
NullableBoolean : Boolean?

As an attribute on a class that is saved to database, almost always use non-nullable. Why? Because otherwise it will default to null and it's easy to by mistake not handle False and Null correctly.

Evaluating

Remember to evaluate booleans like this

class.BooleanAttribute

not class.BooleanAttribute

not like this

class.BooleanAttribute = True

class.BooleanAttribute = False

i.e. without an equal sign and True, False.

Mistakes we have seen happen
class.BooleanAttribute->notEmpty

The expression will always return True, because will be converted to a list with one Boolean in it, and that list will never be empty.

This page was edited 84 days ago on 02/10/2024. What links here