OCLOperators Not
From MDrivenWiki
"Not" is the usual Not operator found in most languages.
But there are a few things to point out when writing expressions using True, False, nullable booleans and Not.
Avoid the risk with nullable booleans
Consider xxxx.DisableEditing = false
When you think you want to use "a boolean" with = true/false , don't - It's almost never correct.
The reason is that an nullable boolean is tri-state. False, True and Null. If an expression is xxxx.DisableEditing that is false for BOTH False and Null.
So, almost always use "xxxx.DisableEditing" or "not xxxx.DisableEditing" (there are exceptions, but not many)
For example
self.ValidTo.notNull and self.AddedTo.isNull and (self.Agreement.Facilitator.DisableEditing = false)
If DisableEditing is Null, then "(self.Agreement.Facilitator.DisableEditing = false)" is actually True. (the above false/null problem)
self.ValidTo.notNull and self.AddedToJournalSearch.isNull and not self.Agreement.Facilitator.DisableEditing