class RebindOperationExecutor implements
        CompensatingTransactionOperationExecutor {

    public void rollback() {
        log.debug("Rolling back rebind operation");
        try {
            ldapOperations.unbind(originalDn);
            ldapOperations.rename(temporaryDn, originalDn);
        } catch (Exception e) {
            log.warn("Failed to rollback operation, dn: " + originalDn
                    + "; temporary DN: " + temporaryDn, e);
        }
    }

    public  RebindOperationExecutor(LdapOperations ldapOperations,
            Name originalDn, Name temporaryDn, Object originalObject,
            Attributes originalAttributes);

}