/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.handler;
import org.ldaptive.Connection;
import org.ldaptive.LdapException;
import org.ldaptive.Request;
/**
* Interface for ldap handlers.
*
* @param <Q> type of ldap request
* @param <S> type of ldap response
*
* @author Middleware Services
*/
public interface Handler<Q extends Request, S>
{
/**
* Handle the supplied result.
*
* @param conn connection the operation was executed on
* @param request executed by the operation
* @param result produced from the operation
*
* @return handler result
*
* @throws LdapException if handling fails
*/
HandlerResult<S> handle(Connection conn, Q request, S result)
throws LdapException;
}