OCLOperators oclSingleton
No edit summary
(Updated Edited template to July 12, 2025.)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<message>Write the content here to display this box</message>
There is an operator in OCL you may not know about yet: oclSingleton.
''Use it like this:'' Class1.oclSingleton <and follow with operations or navigations on that single instance>
If Class1 does not have an instance at the time of executing the oclSingleton, one is created.
To use this, set the taggedvalue on Class1 “Eco.IsSingleton” to “true”.
It is a very practical design pattern to have a modeled Singleton class – this removes the need for other global variables – like logged-in user, etc. Since the Singleton class can have code-derived attributes and associations, you can pick up important info from the running environment and make it available in the model context. Try it – it will make your code less hairy.
oclSingleton is an operator that helps you implement the Singleton pattern (the pattern states that there is exactly one instance of this class - never more, never less).
oclSingleton is an operator that helps you implement the Singleton pattern (the pattern states that there is exactly one instance of this class - never more, never less).


If you mark a class with IsSingleton=true you can use this oclSingleton operator to get access to the only object instance of this class.
If you mark a class with IsSingleton=true, you can use this oclSingleton operator to get access to the only object instance of this class.
 
Example:


Class: SysSingleton  
=== '''Example:''' ===
'''Class:''' SysSingleton  


Common expression: SysSingleton.oclSingleton.CurrentUser.IsAdmin  -- this expression looks up the only SysSingleton instance that acts as a Global variable that points out the CurrentUser.
'''Common expression:''' SysSingleton.oclSingleton.CurrentUser.IsAdmin  -- this expression looks up the only SysSingleton instance that acts as a Global variable that points out the CurrentUser.
[[File:2017-08-07 21h31 37.png|none|thumb]]
[[File:2017-08-07 21h31 37.png|none|thumb]]
[[Category:OCLOperators]]
[[Category:OCLOperators]]
{{Edited|July|12|2025}}

Latest revision as of 05:58, 20 January 2025

This page was created by Hans.karlsen@mdriven.net on 2017-08-07. Last edited by Edgar on 2025-01-20.

There is an operator in OCL you may not know about yet: oclSingleton.

Use it like this: Class1.oclSingleton <and follow with operations or navigations on that single instance>

If Class1 does not have an instance at the time of executing the oclSingleton, one is created.

To use this, set the taggedvalue on Class1 “Eco.IsSingleton” to “true”.

It is a very practical design pattern to have a modeled Singleton class – this removes the need for other global variables – like logged-in user, etc. Since the Singleton class can have code-derived attributes and associations, you can pick up important info from the running environment and make it available in the model context. Try it – it will make your code less hairy.

oclSingleton is an operator that helps you implement the Singleton pattern (the pattern states that there is exactly one instance of this class - never more, never less).

If you mark a class with IsSingleton=true, you can use this oclSingleton operator to get access to the only object instance of this class.

Example:

Class: SysSingleton

Common expression: SysSingleton.oclSingleton.CurrentUser.IsAdmin -- this expression looks up the only SysSingleton instance that acts as a Global variable that points out the CurrentUser.

2017-08-07 21h31 37.png
MDriven Chat

How would you like to chat today?

Setting up your conversation…

This may take a few moments