Further Uses of Entries
The primary intention of entries is to provide extra information about services so that clients can decide whether or not they are the services the client wants to use. An expectation in this is that the information in an entry is primarily static. However, entries are objects, and they could also implement behavior as well as state. This should not be used to extend the behavior of a service, since all service behavior should be captured in the service interface specification.
A good example of a "non-static" entry is ServiceType , which is an abstract subclass of AbstractEntry . This contains "human oriented" information about a service, and contains abstract methods , such as String getDisplayName() . This method is intended to provide a localized name for the service. Localization (for example, producing an appropriate French name for the service for French-speaking communities) can only be done on the client side and will require code to be executed in the client to examine the locale and produce a name .
Another use is to define the user interface for a service. Services do not have or require user interfaces for human users, since they are defined by Java interfaces that can be called by any other Java objects. However, some services may wish to offer a way of interacting with themselves by means of a user interface, and this involves much executable code. Since it is not part of the service itself, this should be left in suitable Entry objects. This topic is looked at in detail in Chapter 19.