Scope and visibility
Rules for scope and visibility of model elements.
Up until now, all model elements of whatever class have been given as instance-level scope and public visibility. As of now this is changing:
- Visibility is still fixed to public. For attributes and roles this is a matter of interpretation, the values are public, in the sense that you can access them, but the internal attributes used to store them are private.
- For MetaOperations and MetaAttributes, scope is not longer fixed. The default remains 'instance_level', but scope 'class_level' (equal to 'static') is now allowed and catered for in the generation machinery. In Python the implementation is as a 'staticmethod'.
- The scope of MetaExceptions and MetaRoles is still fixed as 'instance_level'.