Note: information on this page refers to Ceylon 1.2, not to the current release.
shared
annotation
It is also applied to module imports which are visible in the API of the module, and therefore must be exported to clients of the module.
Usage
On a declaration:
shared void method() {
}
On a package:
shared package org.example.bar;
On a module import:
module com.example.foo "1.0" {
shared import org.example.bar "4.5.1";
}
Description
Visibility is a critical concern when building modular systems. Clients of a module should not be able to come to 'accidently' depend upon details of the module which are not considered part of its well-defined API. Therefore, Ceylon requires that exported program elements be explicitly marked as such.
By default, a declaration may not be referred to outside the scope
in which it is declared. The shared
annotation makes a declaration
visible to any client of the package or type to which it belongs.
See also
- API documentation for
shared
- Reference for annotations in general
- Visibility in the Ceylon language spec