User Directory API
The Domino directory API is accessible by calling openUserDirectory(...)
on a DominoClient
instance. The parameter is the server to target, or null
for the current runtime.
Querying
Directory querying can be done via the query()
method on UserDirectory
, which creates a query builder. This can be used like:
UserDirectory dir = getClient().openUserDirectory(null);
Stream<List<Map<String, List<Object>>>> result = dir.query()
.names("Joe Schmoe/SomeOrg")
.items("InternetAddress")
.stream();
This admittedly-complicated return type represents:
- One stream entry per queried name, containing…
- One list entry per queried namespace (by default one), containing…
- A map of queried items to item values
For example, to find the email address for a given user, you can do:
String emailAddress = dir.query()
.names("Joe Schmoe/SomeOrg")
.items("InternetAddress")
.stream()
.findFirst()
.map(queriedName ->
queriedName.stream()
.findFirst()
.orElse(null)
)
.orElse(null);
Convenience Methods
Since querying can be verbose for common cases, there are also convenience methods available on the UserDirectory
class:
Map<String, List<Object>> lookupUserValue(String name, String... items)
allows you to look up item values for the given single user, returning the results from the first match