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 the database, almost always use non-nullable. Why? Because otherwise, it will default to null, and it's easy to handle False and Null mistakenly and incorrectly.


Remember to evaluate booleans like this:


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

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

See also Initial values and Default Database values for more information on adding Boolean values and evolving the database

This page was edited 29 days ago on 06/17/2024. What links here