OCLOperators casetruefalse
Hans Karlsen (talk | contribs) No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
This operator enables you to write the same thing as | This operator enables you to write the same thing as | ||
somebool.casetruefalse(someexpressionwithtypeX,someOtherexpressionwithtypeX) | somebool.casetruefalse(someexpressionwithtypeX,someOtherexpressionwithtypeX) | ||
===== Using in EAL ===== | |||
If you want to execute methods in a case/switch -like statement. | |||
This makes a switch like construct look like this: | This makes a switch like construct look like this: | ||
let x=SomeObject.SomeEnum in | let x=SomeObject.SomeEnum in | ||
Line 14: | Line 18: | ||
(x=#Enum3).casetruefalse(SomeObject.DoYourThing3,DoNothing) | (x=#Enum3).casetruefalse(SomeObject.DoYourThing3,DoNothing) | ||
) | ) | ||
===== Using in OCL ===== | |||
If you want to derive a string based on a list of conditions and have an else -statement if none of the expressions where True | |||
self.oclIsInState(#New).caseTrueFalse('New/Ordering', String.nullValue)+ | |||
self.oclIsInState(#Waiting).caseTrueFalse('Waiting', String.nullValue)+ | |||
self.oclIsInState(#Ordered).caseTrueFalse('Ordered', String.nullValue)-> | |||
collect(s| s.notNull.caseTrueFalse(s, self.State))->first | |||
See also [[OCLOperators_whentrue]] | See also [[OCLOperators_whentrue]] |
Revision as of 14:50, 7 April 2022
This is a new compact form to write :
if somebool then someexpressionwithtypeX else someOtherexpressionwithtypeX endif
This operator enables you to write the same thing as
somebool.casetruefalse(someexpressionwithtypeX,someOtherexpressionwithtypeX)
Using in EAL
If you want to execute methods in a case/switch -like statement.
This makes a switch like construct look like this:
let x=SomeObject.SomeEnum in ( (x=#Enum1).casetruefalse(SomeObject.DoYourThing1,DoNothing); (x=#Enum2).casetruefalse(SomeObject.DoYourThing2,DoNothing); (x=#Enum3).casetruefalse(SomeObject.DoYourThing3,DoNothing) )
Using in OCL
If you want to derive a string based on a list of conditions and have an else -statement if none of the expressions where True
self.oclIsInState(#New).caseTrueFalse('New/Ordering', String.nullValue)+ self.oclIsInState(#Waiting).caseTrueFalse('Waiting', String.nullValue)+ self.oclIsInState(#Ordered).caseTrueFalse('Ordered', String.nullValue)-> collect(s| s.notNull.caseTrueFalse(s, self.State))->first
See also OCLOperators_whentrue
This page was edited more than 11 months ago on 02/10/2024. What links here