@ThreadSafety(level=NOT_THREADSAFE) public final class DNEntrySource extends EntrySource
EntrySource
that will retrieve entries
referenced by a provided set of DNs. The connection will remain open after
all entries have been read.
nextEntry()
method will have the mayContinueReading
value set to true
.
DNEntrySource
to iterate across the members of that
group:
Entry groupEntry = connection.getEntry("cn=My Group,ou=Groups,dc=example,dc=com"); String[] memberValues = groupEntry.getAttributeValues("member"); int entriesReturned = 0; int exceptionsCaught = 0; if (memberValues != null) { DNEntrySource entrySource = new DNEntrySource(connection, memberValues, "cn"); try { while (true) { Entry memberEntry; try { memberEntry = entrySource.nextEntry(); } catch (EntrySourceException ese) { // A problem was encountered while attempting to obtain an entry. // We may be able to continue reading entries (e.g., if the problem // was that the group referenced an entry that doesn't exist), or // we may not (e.g., if the problem was a significant search error // or problem with the connection). exceptionsCaught++; if (ese.mayContinueReading()) { continue; } else { break; } } if (memberEntry == null) { // We've retrieved all of the entries for the given set of DNs. break; } else { entriesReturned++; } } } finally { entrySource.close(); } }
Constructor and Description |
---|
DNEntrySource(LDAPInterface connection,
java.util.Collection<java.lang.String> dns,
java.lang.String... attributes)
Creates a new DN entry source with the provided information.
|
DNEntrySource(LDAPInterface connection,
DN[] dns,
java.lang.String... attributes)
Creates a new DN entry source with the provided information.
|
DNEntrySource(LDAPInterface connection,
java.lang.String[] dns,
java.lang.String... attributes)
Creates a new DN entry source with the provided information.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Indicates that this entry source will no longer be needed and any resources
associated with it may be closed.
|
Entry |
nextEntry()
Retrieves the next entry from the entry source, if there is at least one
remaining entry.
|
public DNEntrySource(@NotNull LDAPInterface connection, @NotNull DN[] dns, @Nullable java.lang.String... attributes)
connection
- The connection to the directory server from which the
entries will be read. It must not be null
.dns
- The set of DNs to be read. It must not be
null
.attributes
- The set of attributes to include in entries that are
returned. If this is empty or null
, then all
user attributes will be requested.public DNEntrySource(@NotNull LDAPInterface connection, @NotNull java.lang.String[] dns, @Nullable java.lang.String... attributes)
connection
- The connection to the directory server from which the
entries will be read. It must not be null
.dns
- The set of DNs to be read. It must not be
null
.attributes
- The set of attributes to include in entries that are
returned. If this is empty or null
, then all
user attributes will be requested.public DNEntrySource(@NotNull LDAPInterface connection, @NotNull java.util.Collection<java.lang.String> dns, @Nullable java.lang.String... attributes)
connection
- The connection to the directory server from which the
entries will be read. It must not be null
.dns
- The set of DNs to be read. It must not be
null
.attributes
- The set of attributes to include in entries that are
returned. If this is empty or null
, then all
user attributes will be requested.@Nullable public Entry nextEntry() throws EntrySourceException
nextEntry
in class EntrySource
null
if there are
no more entries to retrieve.EntrySourceException
- If a problem occurs while attempting to read
the next entry from the entry source.public void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class EntrySource