// Generated automatically from org.springframework.ldap.core.LdapOperations for testing purposes

package org.springframework.ldap.core;

import java.util.List;
import javax.naming.Name;
import javax.naming.directory.Attributes;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.SearchControls;
import org.springframework.ldap.core.AttributesMapper;
import org.springframework.ldap.core.AuthenticatedLdapEntryContextCallback;
import org.springframework.ldap.core.AuthenticatedLdapEntryContextMapper;
import org.springframework.ldap.core.AuthenticationErrorCallback;
import org.springframework.ldap.core.ContextExecutor;
import org.springframework.ldap.core.ContextMapper;
import org.springframework.ldap.core.DirContextOperations;
import org.springframework.ldap.core.DirContextProcessor;
import org.springframework.ldap.core.NameClassPairCallbackHandler;
import org.springframework.ldap.core.NameClassPairMapper;
import org.springframework.ldap.core.SearchExecutor;
import org.springframework.ldap.filter.Filter;
import org.springframework.ldap.odm.core.ObjectDirectoryMapper;
import org.springframework.ldap.query.LdapQuery;

public interface LdapOperations
{
    <T> List<T> find(LdapQuery p0, Class<T> p1);
    <T> List<T> find(Name p0, Filter p1, SearchControls p2, Class<T> p3);
    <T> List<T> findAll(Class<T> p0);
    <T> List<T> findAll(Name p0, SearchControls p1, Class<T> p2);
    <T> List<T> list(Name p0, NameClassPairMapper<T> p1);
    <T> List<T> list(String p0, NameClassPairMapper<T> p1);
    <T> List<T> listBindings(Name p0, ContextMapper<T> p1);
    <T> List<T> listBindings(Name p0, NameClassPairMapper<T> p1);
    <T> List<T> listBindings(String p0, ContextMapper<T> p1);
    <T> List<T> listBindings(String p0, NameClassPairMapper<T> p1);
    <T> List<T> search(LdapQuery p0, AttributesMapper<T> p1);
    <T> List<T> search(LdapQuery p0, ContextMapper<T> p1);
    <T> List<T> search(Name p0, String p1, AttributesMapper<T> p2);
    <T> List<T> search(Name p0, String p1, ContextMapper<T> p2);
    <T> List<T> search(Name p0, String p1, SearchControls p2, AttributesMapper<T> p3);
    <T> List<T> search(Name p0, String p1, SearchControls p2, AttributesMapper<T> p3, DirContextProcessor p4);
    <T> List<T> search(Name p0, String p1, SearchControls p2, ContextMapper<T> p3);
    <T> List<T> search(Name p0, String p1, SearchControls p2, ContextMapper<T> p3, DirContextProcessor p4);
    <T> List<T> search(Name p0, String p1, int p2, AttributesMapper<T> p3);
    <T> List<T> search(Name p0, String p1, int p2, ContextMapper<T> p3);
    <T> List<T> search(Name p0, String p1, int p2, String[] p3, AttributesMapper<T> p4);
    <T> List<T> search(Name p0, String p1, int p2, String[] p3, ContextMapper<T> p4);
    <T> List<T> search(String p0, String p1, AttributesMapper<T> p2);
    <T> List<T> search(String p0, String p1, ContextMapper<T> p2);
    <T> List<T> search(String p0, String p1, SearchControls p2, AttributesMapper<T> p3);
    <T> List<T> search(String p0, String p1, SearchControls p2, AttributesMapper<T> p3, DirContextProcessor p4);
    <T> List<T> search(String p0, String p1, SearchControls p2, ContextMapper<T> p3);
    <T> List<T> search(String p0, String p1, SearchControls p2, ContextMapper<T> p3, DirContextProcessor p4);
    <T> List<T> search(String p0, String p1, int p2, AttributesMapper<T> p3);
    <T> List<T> search(String p0, String p1, int p2, ContextMapper<T> p3);
    <T> List<T> search(String p0, String p1, int p2, String[] p3, AttributesMapper<T> p4);
    <T> List<T> search(String p0, String p1, int p2, String[] p3, ContextMapper<T> p4);
    <T> T authenticate(LdapQuery p0, String p1, AuthenticatedLdapEntryContextMapper<T> p2);
    <T> T executeReadOnly(ContextExecutor<T> p0);
    <T> T executeReadWrite(ContextExecutor<T> p0);
    <T> T findByDn(Name p0, Class<T> p1);
    <T> T findOne(LdapQuery p0, Class<T> p1);
    <T> T lookup(Name p0, AttributesMapper<T> p1);
    <T> T lookup(Name p0, ContextMapper<T> p1);
    <T> T lookup(Name p0, String[] p1, AttributesMapper<T> p2);
    <T> T lookup(Name p0, String[] p1, ContextMapper<T> p2);
    <T> T lookup(String p0, AttributesMapper<T> p1);
    <T> T lookup(String p0, ContextMapper<T> p1);
    <T> T lookup(String p0, String[] p1, AttributesMapper<T> p2);
    <T> T lookup(String p0, String[] p1, ContextMapper<T> p2);
    <T> T searchForObject(LdapQuery p0, ContextMapper<T> p1);
    <T> T searchForObject(Name p0, String p1, ContextMapper<T> p2);
    <T> T searchForObject(Name p0, String p1, SearchControls p2, ContextMapper<T> p3);
    <T> T searchForObject(String p0, String p1, ContextMapper<T> p2);
    <T> T searchForObject(String p0, String p1, SearchControls p2, ContextMapper<T> p3);
    DirContextOperations lookupContext(Name p0);
    DirContextOperations lookupContext(String p0);
    DirContextOperations searchForContext(LdapQuery p0);
    List<String> list(Name p0);
    List<String> list(String p0);
    List<String> listBindings(Name p0);
    List<String> listBindings(String p0);
    Object lookup(Name p0);
    Object lookup(String p0);
    ObjectDirectoryMapper getObjectDirectoryMapper();
    boolean authenticate(Name p0, String p1, String p2);
    boolean authenticate(Name p0, String p1, String p2, AuthenticatedLdapEntryContextCallback p3);
    boolean authenticate(Name p0, String p1, String p2, AuthenticatedLdapEntryContextCallback p3, AuthenticationErrorCallback p4);
    boolean authenticate(Name p0, String p1, String p2, AuthenticationErrorCallback p3);
    boolean authenticate(String p0, String p1, String p2);
    boolean authenticate(String p0, String p1, String p2, AuthenticatedLdapEntryContextCallback p3);
    boolean authenticate(String p0, String p1, String p2, AuthenticatedLdapEntryContextCallback p3, AuthenticationErrorCallback p4);
    boolean authenticate(String p0, String p1, String p2, AuthenticationErrorCallback p3);
    void authenticate(LdapQuery p0, String p1);
    void bind(DirContextOperations p0);
    void bind(Name p0, Object p1, Attributes p2);
    void bind(String p0, Object p1, Attributes p2);
    void create(Object p0);
    void delete(Object p0);
    void list(Name p0, NameClassPairCallbackHandler p1);
    void list(String p0, NameClassPairCallbackHandler p1);
    void listBindings(Name p0, NameClassPairCallbackHandler p1);
    void listBindings(String p0, NameClassPairCallbackHandler p1);
    void modifyAttributes(DirContextOperations p0);
    void modifyAttributes(Name p0, ModificationItem[] p1);
    void modifyAttributes(String p0, ModificationItem[] p1);
    void rebind(DirContextOperations p0);
    void rebind(Name p0, Object p1, Attributes p2);
    void rebind(String p0, Object p1, Attributes p2);
    void rename(Name p0, Name p1);
    void rename(String p0, String p1);
    void search(LdapQuery p0, NameClassPairCallbackHandler p1);
    void search(Name p0, String p1, NameClassPairCallbackHandler p2);
    void search(Name p0, String p1, SearchControls p2, NameClassPairCallbackHandler p3);
    void search(Name p0, String p1, SearchControls p2, NameClassPairCallbackHandler p3, DirContextProcessor p4);
    void search(Name p0, String p1, int p2, boolean p3, NameClassPairCallbackHandler p4);
    void search(SearchExecutor p0, NameClassPairCallbackHandler p1);
    void search(SearchExecutor p0, NameClassPairCallbackHandler p1, DirContextProcessor p2);
    void search(String p0, String p1, NameClassPairCallbackHandler p2);
    void search(String p0, String p1, SearchControls p2, NameClassPairCallbackHandler p3);
    void search(String p0, String p1, SearchControls p2, NameClassPairCallbackHandler p3, DirContextProcessor p4);
    void search(String p0, String p1, int p2, boolean p3, NameClassPairCallbackHandler p4);
    void unbind(Name p0);
    void unbind(Name p0, boolean p1);
    void unbind(String p0);
    void unbind(String p0, boolean p1);
    void update(Object p0);
}
