@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 EntrySourcenull 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.Closeableclose in interface java.lang.AutoCloseableclose in class EntrySource