ClassFromString
(Created page with "When going meta it is sometimes interesting to treat your system types as strings – and then be able to treat those strings as types again. If you have a type you use the o...")
 
(Updated Edited template to July 12, 2025.)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
When going meta it is sometimes interesting to treat your system types as strings – and then be able to treat those strings as types again.
<message>Write the content here to display this box</message>
When going meta, it is sometimes interesting to treat your system types as strings – and then treat those strings as types again.


If you have a type you use the operator AsString to treat it as a string.
If you have a type, use the operator AsString to treat it as a string.


Until now there was no way to go from a string back to a type. Now there is : '''ClassFromString'''.
Until now, there was no way to go from a string back to a type. Now, there is '''ClassFromString'''.


Consider this model:
Consider this model:
Line 11: Line 12:
I had the requirement to list all the subclasses except the purple ones…
I had the requirement to list all the subclasses except the purple ones…


I added a tagged value to the purple and then went like this:
I added a tagged value to the purple and then did this:
 
ComponentSpecification.allSubClasses->select(x|x.ClassFromString.TaggedValue(‘TypeSort’)<>’SKIPTHIS’)
ComponentSpecification.allSubClasses->select(x|x.ClassFromString.TaggedValue(‘TypeSort’)<>’SKIPTHIS’)
The result is a collection of strings with the selected subclasses.
 
The  result is a collection of strings with the selected subclasses.
[[Category:OCL]]
[[Category:OCL]]
[[Category:Operators]]
[[Category:Operators]]
[[Category:OCLOperators]]
{{Edited|July|12|2025}}

Latest revision as of 05:47, 20 January 2025

This page was created by Alexandra on 2018-10-17. Last edited by Edgar on 2025-01-20.

When going meta, it is sometimes interesting to treat your system types as strings – and then treat those strings as types again.

If you have a type, use the operator AsString to treat it as a string.

Until now, there was no way to go from a string back to a type. Now, there is ClassFromString.

Consider this model:

Classfromstring -1 .png

I had the requirement to list all the subclasses except the purple ones…

I added a tagged value to the purple and then did this:

ComponentSpecification.allSubClasses->select(x|x.ClassFromString.TaggedValue(‘TypeSort’)<>’SKIPTHIS’)

The result is a collection of strings with the selected subclasses.