Difference between revisions of "XCSG:Visibility"

From AtlasWiki
Jump to: navigation, search
(Specification: renaming "package" visibility to "packageVisibility" to avoid issues with keyword, Package kind)
(Specification)
Line 4: Line 4:
 
| description = The visibility of a [[Type]], [[Variable]], or [[Function]] in its [[Namespace]].
 
| description = The visibility of a [[Type]], [[Variable]], or [[Function]] in its [[Namespace]].
 
| required = For nodes [[Contains|contained]] in a [[Namespace]].
 
| required = For nodes [[Contains|contained]] in a [[Namespace]].
| members =public,,Globally accessible;;protectedPackage,,Accessible from classes that extend the [[Class]] it is declared in and from the [[Package]] it is declared in;;packageVisibility,,Accessible only within the [[Package]] it is contained in;;private,,Accessible only within the [[Class]] it is declared in
+
| members =public,,Globally accessible;;protectedPackage,,Accessible from classes that extend the [[Class]] it is declared in and from the [[Package]] it is declared in;;package,,Accessible only within the [[Package]] it is contained in;;private,,Accessible only within the [[Class]] it is declared in
 
}}
 
}}
  
n.b.: packageVisibility's name is chosen to avoid confusion with [[Package]], and to avoid issues with the <code>package</code> keyword.
+
Implementation note: in Atlas, to avoid name collisions with Java keywords, the visibility tags are accessed through <code>XCSG.publicVisibility</code>, <code>XCSG.protectedPackageVisibility</code>, <code>XCSG.packageVisibility</code>, and <code>XCSG.privateVisibility</code>.

Revision as of 15:58, 14 April 2014

Specification

Enumeration Visibility
Description The visibility of a Type, Variable, or Function in its Namespace.
Visibility Description
public Globally accessible
protectedPackage Accessible from classes that extend the Class it is declared in and from the Package it is declared in
package Accessible only within the Package it is contained in
private Accessible only within the Class it is declared in

Used on: Type, Variable

Implementation note: in Atlas, to avoid name collisions with Java keywords, the visibility tags are accessed through XCSG.publicVisibility, XCSG.protectedPackageVisibility, XCSG.packageVisibility, and XCSG.privateVisibility.