ClassFromString
No edit summary
(Updated Edited template to July 12, 2025.)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<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.
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.
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 12: Line 13:


I added a tagged value to the purple and then did 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]]
{{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.