On Thu, Apr 28, 2011 at 7:28 PM, Emmanuel Lecharny <[email protected]> wrote: > On 4/28/11 6:28 PM, Stefan Seelmann wrote: >>> >>> 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? > > We can do that. However, I would make the LdapAdvancedConnection interface > inheriting from LdapConnection. The following hierarchy would make sense, > IMHO : > > LdapAdvancedConnection extends LdapAsyncConnection extends LdapConnection
I thought more about LdapAsyncConnection extends LdapAdvancedConnection extends LdapConnection
