On Thu, Apr 28, 2011 at 7:28 PM, Stefan Seelmann <[email protected]>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? > > This is what I was thinking. More so like a SimpleLdapConnection which can wrap the LowLevelConnection to expose the simple easy to use methods that sit on top of the low level protocol aligned operations. Regards, Alex
