> > This is not an easy choice. > > The problme is that the user might be puzzled to see that a > LdapConnection.search( SearchRequest ) returns a cursor<SearchResponse> but > that the LdapConnection.search( base, filter, scope, attrs... ) returns a > cursor<Entry>. > > Using send( Request ) instead first makes the API lighter (we don't have to > create one send() method per type of request, it can be hidden in the > LdapConnection class) and it's also for advanced users.
Another idea: We have two interfaces: LdapConnection and LdapAsyncConnection. What about a third interface (e.g. AdvancedLdapConnection, need to find a better name) which extends LdapConnections. Then we can move all the methods for advanced users to this new interface. Then the LdapConnection interface is much smaller. We still can have a single LdapNetworkConnection class that implements all three interfaces. Thoughts? Kind Regards, Stefan
