Package org.ldaptive.control.util
Class PersistentSearchClient
- java.lang.Object
-
- org.ldaptive.control.util.PersistentSearchClient
-
public class PersistentSearchClient extends Object
Client that simplifies using the persistent search control.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
changesOnly
Whether to return only changed entries.private EnumSet<PersistentSearchChangeType>
changeTypes
Change types.private ConnectionFactory
factory
Connection factory to get a connection from.private SearchOperationHandle
handle
Search operation handle.protected Logger
logger
Logger for this class.private Consumer<LdapEntry>
onEntry
Invoked when an entry is received.private Consumer<Exception>
onException
Invoked when an exception is received.private Consumer<Result>
onResult
Invoked when a result is received.private boolean
returnEcs
Whether to return an Entry Change Notification control.
-
Constructor Summary
Constructors Constructor Description PersistentSearchClient(ConnectionFactory cf, EnumSet<PersistentSearchChangeType> types, boolean co, boolean re)
Creates a new persistent search client.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
abandon()
Invokes an abandon operation on the search handle.private RequestControl[]
appendRequestControls(SearchRequest request)
Creates a new array of request controls which includes the persistent search request control.SearchOperationHandle
send(SearchRequest request)
Performs an async search operation with thePersistentSearchRequestControl
.void
setOnEntry(Consumer<LdapEntry> consumer)
Sets the onEntry consumer.void
setOnException(Consumer<Exception> consumer)
Sets the onException consumer.void
setOnResult(Consumer<Result> consumer)
Sets the onResult consumer.
-
-
-
Field Detail
-
logger
protected final Logger logger
Logger for this class.
-
factory
private final ConnectionFactory factory
Connection factory to get a connection from.
-
changeTypes
private final EnumSet<PersistentSearchChangeType> changeTypes
Change types.
-
changesOnly
private final boolean changesOnly
Whether to return only changed entries.
-
returnEcs
private final boolean returnEcs
Whether to return an Entry Change Notification control.
-
handle
private SearchOperationHandle handle
Search operation handle.
-
-
Constructor Detail
-
PersistentSearchClient
public PersistentSearchClient(ConnectionFactory cf, EnumSet<PersistentSearchChangeType> types, boolean co, boolean re)
Creates a new persistent search client.- Parameters:
cf
- to get a connection fromtypes
- persistent search change typesco
- whether only changed entries are returnedre
- return an Entry Change Notification control
-
-
Method Detail
-
setOnEntry
public void setOnEntry(Consumer<LdapEntry> consumer)
Sets the onEntry consumer.- Parameters:
consumer
- to invoke when an entry is received
-
setOnResult
public void setOnResult(Consumer<Result> consumer)
Sets the onResult consumer.- Parameters:
consumer
- to invoke when a result is received
-
setOnException
public void setOnException(Consumer<Exception> consumer)
Sets the onException consumer.- Parameters:
consumer
- to invoke when a sync info message is received
-
send
public SearchOperationHandle send(SearchRequest request) throws LdapException
Performs an async search operation with thePersistentSearchRequestControl
. The supplied request is modified in the following way:AbstractRequestMessage.setControls( org.ldaptive.control.RequestControl...)
is invoked withPersistentSearchRequestControl
The search request object should not be reused for any other search operations.
- Parameters:
request
- search request to execute- Returns:
- search operation handle
- Throws:
LdapException
- if the search fails
-
abandon
public void abandon()
Invokes an abandon operation on the search handle.
-
appendRequestControls
private RequestControl[] appendRequestControls(SearchRequest request)
Creates a new array of request controls which includes the persistent search request control. Any other request controls are included.- Parameters:
request
- to read controls from- Returns:
- search request controls
-
-