Server Smalltalk Guide : Building server applications : Categorization and Interfaces
Categorization and Interfaces
SST uses method categories and interface specifications to document API. All methods categorized SST-API User or SST-API Developer are public API available to you. User APIs are intended for use by typically high-level users of SST while the Developer APIs are intended for programmers building or integrating new SST components. Methods categorized as SST-Internal, whether marked as public or private are not intended for general programmer use. Most of the major SST elements have interface specifications. SST interfaces are similar to those in Java and are used to represent an implementation independent specification of protocols.
Methods implementing an interface are categorized in a category named using the following convention: @ I?Sst<InterfaceName> where the ? is either a u or d denoting user or developer API, respectively, and the <InterfaceName> is the common use name of the interface.
For example, methods implementing parts of the Startable user-level interface are categorized as @ IuSstStartable. Implementation classes may implement methods from many categories (that is, they may have many @ categories).
Interfaces themselves are implemented by a class bearing the same name as the category, but without the @. So the user-level Startable interface is defined in the class IuSstStartable. In some cases there are both IuSstFoo and IdSstFoo interface classes. That is, both user and developer sides of the Foo interface exist. The full developer interface is always a superset of the related user-level interface.
Inheritance within an interface is represented by categories in the interface class whose names follow the same convention as above but begin with @@ rather than @. Note that @@ categories only appear in interface classes. Multiple inheritance within interfaces is achieved by adding several @@ categories.
The interface classes are contained in separate applications and can be loaded independently of the code itself.
The interface specifications for each component and its API are published within the Smalltalk environment and available when browsing the interface applications.
Where SST implements API derived from an existing standard such as Java or CORBA, the API category uses the appropriate name from the standard. These names are preceded by a character unique to the standard. For example, the Java RMI remote object interface is specified in the class java.rmi.Remote. The SST methods implementing that interface are categorized as ! java.rmi.Remote where ! denotes Java. Similarly, CORBA API category names are preceded with a :. For more detail on methods in these categories, see the relevant standard documentation.
Last modified date: 01/29/2015