Package org.ldaptive.ext
Class MergeOperation
java.lang.Object
org.ldaptive.ext.MergeOperation
The merge operation performs the LDAP operations necessary to synchronize the data in an
LdapEntry
with it's
corresponding entry in the LDAP. The following logic is executed:
- if the entry does not exist in the LDAP, execute an add
- if the request is for a delete, execute a delete
- if the entry exists in the LDAP, execute a modify
LdapEntry.computeModifications(LdapEntry, LdapEntry)
is used to determine the list of attribute
modifications that are necessary to perform the merge. Either MergeRequest.getIncludeAttributes()
or MergeRequest.getExcludeAttributes()
will be used, but not both.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ConnectionFactory
Connection factory.private final org.slf4j.Logger
Logger for this class.private ResultPredicate
Function to test results. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.MergeOperation
(ConnectionFactory factory) Creates a new merge operation. -
Method Summary
Modifier and TypeMethodDescriptionprotected Result
add
(Connection conn, MergeRequest request, LdapEntry entry) Executes anAddOperation
for the supplied entry.protected Result
delete
(Connection conn, MergeRequest request, LdapEntry entry) Executes aDeleteOperation
for the supplied entry.execute
(MergeRequest request) Executes a merge request.protected Result
modify
(Connection conn, MergeRequest request, LdapEntry source, LdapEntry target) Retrieves the attribute modifications fromLdapEntry.computeModifications(LdapEntry, LdapEntry)
and executes aModifyOperation
with those results.void
setConnectionFactory
(ConnectionFactory factory) void
setThrowCondition
(ResultPredicate function)
-
Field Details
-
logger
private final org.slf4j.Logger loggerLogger for this class. -
connectionFactory
Connection factory. -
throwCondition
Function to test results.
-
-
Constructor Details
-
MergeOperation
public MergeOperation()Default constructor. -
MergeOperation
Creates a new merge operation.- Parameters:
factory
- connection factory
-
-
Method Details
-
getConnectionFactory
-
setConnectionFactory
-
getThrowCondition
-
setThrowCondition
-
execute
Executes a merge request. SeeOperationHandle.execute()
.- Parameters:
request
- merge request- Returns:
- merge result
- Throws:
LdapException
- if the connection cannot be opened
-
modify
protected Result modify(Connection conn, MergeRequest request, LdapEntry source, LdapEntry target) throws LdapException Retrieves the attribute modifications fromLdapEntry.computeModifications(LdapEntry, LdapEntry)
and executes aModifyOperation
with those results. If no modifications are necessary, no operation is performed.- Parameters:
conn
- connection to perform operation onrequest
- merge requestsource
- ldap entry to merge into the LDAPtarget
- ldap entry that exists in the LDAP- Returns:
- response of the modify operation or an empty response if no operation is performed
- Throws:
LdapException
- if an error occurs executing the modify operation
-
add
Executes anAddOperation
for the supplied entry.- Parameters:
conn
- connection to perform operation onrequest
- merge requestentry
- to add to the LDAP- Returns:
- response of the add operation
- Throws:
LdapException
- if an error occurs executing the add operation
-
delete
protected Result delete(Connection conn, MergeRequest request, LdapEntry entry) throws LdapException Executes aDeleteOperation
for the supplied entry.- Parameters:
conn
- connection to perform operation onrequest
- merge requestentry
- to delete from the LDAP- Returns:
- response of the delete operation
- Throws:
LdapException
- if an error occurs executing the deleting operation
-