@Mutable @ThreadSafety(level=NOT_THREADSAFE) public final class MatchingEntryCountRequestControlProperties extends java.lang.Object implements java.io.Serializable
MatchingEntryCountRequestControl
.
NOTE: This class, and other classes within the
com.unboundid.ldap.sdk.unboundidds
package structure, are only
supported for use against Ping Identity, UnboundID, and
Nokia/Alcatel-Lucent 8661 server products. These classes provide support
for proprietary functionality or for external specifications that are not
considered stable or mature enough to be guaranteed to work in an
interoperable way with other types of LDAP servers.
Constructor and Description |
---|
MatchingEntryCountRequestControlProperties()
Creates a new matching entry count request control properties object with
the default settings.
|
MatchingEntryCountRequestControlProperties(MatchingEntryCountRequestControl control)
Creates a new matching entry count request control properties object with
the settings used for the provided control.
|
MatchingEntryCountRequestControlProperties(MatchingEntryCountRequestControlProperties properties)
Creates a new matching entry count request control properties object that
is a copy of the provided properties.
|
Modifier and Type | Method and Description |
---|---|
boolean |
alwaysExamineCandidates()
Indicates whether the server should always examine candidate entries in
fully-indexed searches to determine whether they would actually be returned
to the client in a normal search with the same criteria.
|
java.lang.Long |
getFastShortCircuitThreshold()
Retrieves the short-circuit threshold that the server should use when
determining whether to continue with index processing in an attempt to
further pare down a candidate set that already has a defined superset of
the entries that actually match the filter.
|
int |
getMaxCandidatesToExamine()
Retrieves the maximum number of candidate entries that should be examined
in order to determine accurate count of the number of matching entries.
|
java.lang.Long |
getSlowShortCircuitThreshold()
Retrieves the short-circuit threshold that the server should use when
determining whether to continue with index processing for evaluation that
may be more expensive than what falls into the "fast" category (e.g.,
substring and range filter components).
|
boolean |
includeDebugInfo()
Indicates whether the server should include debug information in the
response control that provides additional information about how the server
arrived at the result.
|
boolean |
includeExtendedResponseData()
Indicates whether the server may include extended response data in the
corresponding response control, which may provide information like whether
all of the identified candidate entries are within the scope of the search
and any unindexed or unevaluated portion of the search filter.
|
boolean |
processSearchIfUnindexed()
Indicates whether the server should internally retrieve and examine all
entries within the search scope in order to obtain an exact matching entry
count for an unindexed search.
|
void |
setAlwaysExamineCandidates(boolean alwaysExamineCandidates)
Specifies whether the server should always examine candidate entries in
fully-indexed searches to determine whether they would actually be returned
to the client in a normal search with the same criteria.
|
void |
setFastShortCircuitThreshold(java.lang.Long fastShortCircuitThreshold)
Specifies the short-circuit threshold that the server should use when
determining whether to continue with index processing in an attempt to
further pare down a candidate set that already has a defined superset of
entries that actually match the filter.
|
void |
setIncludeDebugInfo(boolean includeDebugInfo)
Specifies whether the server should include debug information in the
response control that provides additional information about how the server
arrived at the result.
|
void |
setIncludeExtendedResponseData(boolean includeExtendedResponseData)
Indicates whether the server may include extended response data in the
corresponding response control, which may provide information like whether
all of the identified candidate entries are within the scope of the search
and any unindexed or unevaluated portion of the search filter.
|
void |
setMaxCandidatesToExamine(int maxCandidatesToExamine)
Specifies the maximum number of candidate entries that should be examined
in order to determine accurate count of the number of matching entries.
|
void |
setProcessSearchIfUnindexed(boolean processSearchIfUnindexed)
Specifies whether the server should internally retrieve and examine all
entries within the search scope in order to obtain an exact matching entry
count for an unindexed search.
|
void |
setSkipResolvingExplodedIndexes(boolean skipResolvingExplodedIndexes)
Specifies whether the server should skip the effort of actually retrieving
the candidate entry IDs for exploded index keys in which the number of
matching entries is known.
|
void |
setSlowShortCircuitThreshold(java.lang.Long slowShortCircuitThreshold)
Specifies the short-circuit threshold that the server should use when
determining whether to continue with index processing for evaluation that
may be more expensive than what falls into the "fast" category (e.g.,
substring and range filter components).
|
boolean |
skipResolvingExplodedIndexes()
Indicates whether the server should skip the effort of actually retrieving
the candidate entry IDs for exploded index keys in which the number of
matching entries is known.
|
java.lang.String |
toString()
Retrieves a string representation of the matching entry count request
control properties.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of the matching entry count request control
properties to the provided buffer.
|
public MatchingEntryCountRequestControlProperties()
public MatchingEntryCountRequestControlProperties(@NotNull MatchingEntryCountRequestControlProperties properties)
properties
- The properties to use to create the new set of
properties.public MatchingEntryCountRequestControlProperties(@NotNull MatchingEntryCountRequestControl control)
control
- The matching entry count request control to use to
initialize this set of properties.public int getMaxCandidatesToExamine()
alwaysExamineCandidates
is true. If the number of candidate
entries identified is less than the maximum number of candidates to
examine, then the server will return an EXAMINED_COUNT
result that
indicates the number of entries matching the criteria that would actually
be returned in a normal search with the same criteria. If the number of
candidate entries exceeds the maximum number of candidates to examine, then
the server will return an UNEXAMINED_COUNT
result that indicates
the number of entries matching the search criteria but that may include
entries that would not actually be returned to the client.
EXAMINED_COUNT
result with that count. If the upper bound on the
number of candidates is greater than the maximum number of candidates to
examine, then the server will return an UPPER_BOUND
result to
indicate that the exact count is not known but an upper bound is available.public void setMaxCandidatesToExamine(int maxCandidatesToExamine)
alwaysExamineCandidates
is true. If the number of candidate
entries identified is less than the maximum number of candidates to
examine, then the server will return an EXAMINED_COUNT
result that
indicates the number of entries matching the criteria that would actually
be returned in a normal search with the same criteria. If the number of
candidate entries exceeds the maximum number of candidates to examine, then
the server will return an UNEXAMINED_COUNT
result that indicates
the number of entries matching the search criteria but that may include
entries that would not actually be returned to the client.
EXAMINED_COUNT
result with that count. If the upper bound on the
number of candidates is greater than the maximum number of candidates to
examine, then the server will return an UPPER_BOUND
result to
indicate that the exact count is not known but an upper bound is available.maxCandidatesToExamine
- The maximum number of candidate entries
that the server should retrieve and examine
to determine whether they actually match
the search criteria. If the search is
partially indexed and the total number of
candidate entries is less than or equal to
this value, then these candidate entries
will be examined to determine which of them
match the search criteria so that an
accurate count can be determined. If the
search is fully indexed such that the all
candidate entries are known to match the
search criteria, then the server may still
examine each of these entries if the number
of candidates is less than
maxCandidatesToExamine
and
alwaysExamineCandidates
is
true
in order to allow the entry
count that is returned to be restricted to
only those entries that would actually be
returned to the client. This will be
ignored for searches that are completely
unindexed.
Integer.MAX_VALUE
may be
specified.public boolean alwaysExamineCandidates()
true
if the server should attempt to internally retrieve
and examine matching entries to determine whether they would
normally be returned to the client (e.g., that the client has
permission to access the entry and that it is not a
normally-hidden entry like an LDAP subentry, a replication
conflict entry, or a soft-deleted entry), or false
if the
server should return an unverified count.public void setAlwaysExamineCandidates(boolean alwaysExamineCandidates)
alwaysExamineCandidates
- Indicates whether the server should always
examine candidate entries to determine
whether they would actually be returned to
the client in a normal search. This will
only be used for fully-indexed searches in
which the set of matching entries is known.
If the value is true
and the number
of candidates is smaller than
maxCandidatesToExamine
, then each
matching entry will be internally retrieved
and examined to determine whether it would
be returned to the client based on the
details of the search request (e.g.,
whether the requester has permission to
access the entry, whether it's an LDAP
subentry, replication conflict entry,
soft-deleted entry, or other type of entry
that is normally hidden, etc.) so that an
exact count can be returned. If this is
false
or the number of candidates
exceeds maxCandidatesToExamine
,
then the server will only be able to return
an unexamined count which may include
entries that match the search criteria but
that would not normally be returned to the
requester.public boolean processSearchIfUnindexed()
true
if the server should internally retrieve and examine
all entries within the search scope in order to obtain an exact
matching entry count for an unindexed search, or false
if
not.public void setProcessSearchIfUnindexed(boolean processSearchIfUnindexed)
processSearchIfUnindexed
- Indicates whether the server should
attempt to determine the number of
matching entries if the search criteria
is completely unindexed. If this is
true
and the requester has the
unindexed-search privilege, then the
server will iterate through all entries
in the scope (which may take a very long
time to complete) in order to to
determine which of them match the search
criteria so that it can return an
accurate count. If this is
false
or the requester does not
have the unindexed-search privilege, then
the server will not spend any time
attempting to determine the number of
matching entries and will instead return
a matching entry count response control
indicating that the entry count is
unknown.public boolean skipResolvingExplodedIndexes()
true
if the server should skip the effort of actually
retrieving the candidate entry IDs for exploded index keys in
which the number of matching entries is known, or false
if
it may retrieve candidates from an exploded index in the course of
determining the matching entry count.public void setSkipResolvingExplodedIndexes(boolean skipResolvingExplodedIndexes)
skipResolvingExplodedIndexes
- Indicates whether the server should
skip the effort of actually
retrieving the candidate entry IDs
for exploded index keys in which the
number of matching entries is known.@Nullable public java.lang.Long getFastShortCircuitThreshold()
null
if the server should
determine the appropriate fast short-circuit threshold to use.public void setFastShortCircuitThreshold(@Nullable java.lang.Long fastShortCircuitThreshold)
fastShortCircuitThreshold
- The short-circuit threshold that the
server should use when determining
whether to continue with index
processing in an attempt to further pare
down a candidate set that already has a
defined superset of the entries that
actually match the filter. A value that
is less than or equal to zero indicates
that the server should never short
circuit when performing fast index
processing. A value of null
indicates that the server should
determine the appropriate fast
short-circuit threshold to use.@Nullable public java.lang.Long getSlowShortCircuitThreshold()
null
if the
server should determine the appropriate slow short-circuit
threshold to use.public void setSlowShortCircuitThreshold(@Nullable java.lang.Long slowShortCircuitThreshold)
slowShortCircuitThreshold
- The short-circuit threshold that the server should use when
determining whether to continue with index processing for
evaluation that may be more expensive than what falls into the
"fast" category. A value that is less than or equal to zero
indicates that the server should never short circuit when
performing slow index processing. A value of null
indicates that the server should determine the appropriate
slow short-circuit threshold to use.public boolean includeExtendedResponseData()
true
if the server may include extended response data
in the corresponding response control, or false
if not.public void setIncludeExtendedResponseData(boolean includeExtendedResponseData)
true
, the client should first
verify that the server supports this functionality by checking to see if
RootDSE.supportsFeature(java.lang.String)
returns true
for MatchingEntryCountRequestControl.EXTENDED_RESPONSE_DATA_FEATURE_OID
.
Setting this value to true
for servers that do not support this
feature may cause the server to reject the request.includeExtendedResponseData
- Indicates whether the server may
include extended response data in the
corresponding response control.public boolean includeDebugInfo()
true
if the server should include debug information in
the response control, or false
if not.public void setIncludeDebugInfo(boolean includeDebugInfo)
includeDebugInfo
- Indicates whether the server should include debug
information in the response control that provides
additional information about how the server
arrived at the result.@NotNull public java.lang.String toString()
toString
in class java.lang.Object