Messengers often appear in APIs as the types
of parameters and return values. For example, collections such as
arrays, List
s, and Set
s are often used
as messengers to pass multiple pieces of data to or from methods
or constructors. Occasionally, messenger classes appear in APIs
whose instances are intended to be used solely to pass specific
data in parameters or return values.
Another place that messengers appear in APIs is to transfer information from one node of a distributed system to another. In the J2EE world such messengers are called transfer objects, which are serializable objects that contain business data. If a client needs several pieces of data from a business object, invoking a separate remote method to get each piece of data is generally less efficient than invoking a single method that returns all needed data. Transfer objects enable clients to receive a collection of needed business data from a business object as the return value of a single remote method call.
A specific example of a messenger used to
transmit information across a network is class Locales
from
the ServiceUI API. As shown in Locales
describes
the locales supported by a service UI associated with a Jini service.
In the ServiceUI architecture, services describe UIs with data such
as Locales
objects. Clients inspect the description
information and select a best-fit service UI based on the client's
capabilities and its user's preferences. Messengers are used
to describe service UIs, because although information about UIs
is known to UI providers, the behavior of selecting a best-fit UI
exists at the client. Thus, UI providers use messengers such as Locales
to
send UI description data across the network to clients that know
how to use that information to select a best-fit UI.
Diagram 7-5. The Locales
class
net.jini.lookup.ui.attribute Locales
|
public class Locales implements java.io.Serializable UI attribute that lists the locales supported by a generated UI. |
Constructors |
public Locales(java.util.Set locales) Constructs a Locales using the
passed Set .
|
Methods |
public boolean equals(Object o) Compares the specified object (the Object passed
in o ) with this Locales
object for equality.
|
public java.util.Locale getFirstSupportedLocale(java.util.List locales) Iterates through the passed List of Locale s
and returns the first Locale that is
supported by the UI (as defined by isLocaleSupported() ),
or null , if none of the Locale s in
the passed array are supported by the UI.
|
public java.util.Locale getFirstSupportedLocale(java.util.Locale locales) Looks through the passed array of Locale s
(in the order they appear in the array)
and returns the first Locale that is
supported by the UI (as defined by isLocaleSupported() ),
or null , if none of the Locale s in
the passed array are supported by the UI.
|
public java.util.Set getLocales() Returns an unmodifiable java.util.Set that contains
java.util.Locale objects, one for each locale supported
by the UI generated by the UI factory stored in
the marshalled object of the same UIDescriptor .
|
public int hashCode() Returns the hash code value for this Locales object.
|
public boolean isLocaleSupported(java.util.Locale locale) Indicates whether or not a locale is supported by the UI generated by the UI factory stored in the marshalled object of the same UIDescriptor .
|
public java.util.Iterator iterator() Returns an iterator over the set of java.util.Locale
objects, one for each locale supported
by the UI generated by the UI factory stored in
the marshalled object of the same UIDescriptor .
|
|
Last Updated: Sunday, May 11, 2003
Copyright © 1996-2003 Artima Software, Inc. All Rights Reserved. |
URL: http://www.artima.com/objectdesign/object19.html
Artima.com is created by Bill Venners |