Enumerations
No edit summary |
(Automatically adding template at the end of the page.) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
You edit enumerations by right-clicking on any model element in the "model content" window. | You can edit enumerations by right-clicking on any model element in the "model content" window. | ||
[[File:Edit enumerations menu.png|none|thumb|469x469px]] | [[File:Edit enumerations menu.png|none|thumb|469x469px]] | ||
The enumeration editing window[[File:Defining enumerations.png|none|thumb|685x685px]] | The enumeration editing window:[[File:Defining enumerations.png|none|thumb|685x685px]] | ||
The defined enumeration is a class in the model's | The defined enumeration is a class in the model's type system. | ||
For example, you can | For example, you can return a list of the values. This returns a collection of ImportColumn [[Tuple]]<nowiki/>s. | ||
ImportColumn.allInstances | ImportColumn.allInstances | ||
Convert this to a list of strings for each Enum value (for example to be used in a list on screen): | |||
ImportColumn.allInstances.asString | ImportColumn.allInstances.asString | ||
===== Select an | ===== Select an Enum value from the list, then get the string value from that: ===== | ||
ImportColumn.allInstances->select(ic|ic = #JournalName).asString | ImportColumn.allInstances->select(ic|ic = #JournalName).asString | ||
===== | ===== Get the value of an Enum [[tuple]]: ===== | ||
(#JournalName).toString | (#JournalName).toString | ||
('''note: asString''' | ('''note: asString''' does not work on Enum tuples) | ||
===== Checking if a collection includes a value ===== | ===== Checking if a collection includes a value ===== | ||
You can't | You can't use the [[OCLOperators includes|includes]] operator on collections of Enum. You have to select the value and check if you get a "hit". | ||
This works | This works: | ||
SysSingleton.SO.ActiveUser.UserModes->select(x|x = #Consultant)->notEmpty | SysSingleton.SO.ActiveUser.UserModes->select(x|x = #Consultant)->notEmpty | ||
''This does not work | '''''This does not work'':''' SysSingleton.SO.ActiveUser.UserModes->includes(#Consultant) | ||
[[Category:MDriven Designer]] | |||
[[Category:OCL]] | |||
{{Edited|July|12|2024}} |
Latest revision as of 15:34, 10 February 2024
You can edit enumerations by right-clicking on any model element in the "model content" window.
The enumeration editing window:
The defined enumeration is a class in the model's type system.
For example, you can return a list of the values. This returns a collection of ImportColumn Tuples.
ImportColumn.allInstances
Convert this to a list of strings for each Enum value (for example to be used in a list on screen):
ImportColumn.allInstances.asString
Select an Enum value from the list, then get the string value from that:
ImportColumn.allInstances->select(ic|ic = #JournalName).asString
Get the value of an Enum tuple:
(#JournalName).toString
(note: asString does not work on Enum tuples)
Checking if a collection includes a value
You can't use the includes operator on collections of Enum. You have to select the value and check if you get a "hit".
This works:
SysSingleton.SO.ActiveUser.UserModes->select(x|x = #Consultant)->notEmpty
This does not work: SysSingleton.SO.ActiveUser.UserModes->includes(#Consultant)
This page was edited more than 11 months ago on 02/10/2024. What links here