Listing the Children of a Context
A common JNDI operation is retrieving the
list of names of an object’s children. For example,
an application might get the names of Enterprise JavaBeans in a Java
application server, or list the names of user profile information in
an LDAP server in order to populate a Swing JTree
component in an address-book application. You list the names of an
object’s children using the list( )
method of Context
:
NamingEnumeration children = initialContext.list("");
The
list( )
method returns a
javax.naming.NamingEnumeration
of
javax.naming.NameClassPair
objects, where each
NameClassPair
contains the name and class of a
single child of the Context
. Note that the
NameClassPair
is not the child itself. Its
getName( )
method, however, enables us to learn
the name of the child, while getClassName( )
lets
us access the child’s class name. The
NamingEnumeration
implements the
java.util.Enumeration
interface, so it allows us
to loop through the results of calling list( )
using the familiar enumeration methods. JNDI actually uses
NamingEnumeration
as the return type of a number
of naming operations; the actual objects in the enumeration vary
depending on the operation.
Example 7-6 shows the implementation of a
list command for our
NamingShell
.
Because executing list( )
requires a current
Context
, the execute( )
method
queries the shell to determine whether one exists. If there is no
current Context
, the method throws an exception.
Example 7-6. The list Command ...
Get Java Enterprise in a Nutshell, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.