Alex Karasulu wrote: > As a rule things start getting ugly with API methods when you have more than > 4 arguments and more than 4 overloads. > True. > The most important thing to realize is what changes most with each search > request. The base does change most. The filter does but sometimes does not > need to be provided since people just want everything. I can see something > like: > > conn.search() => searches the rootDSE ? Or should this be conn.getRootDse() > ? > I would rather use a getRootDse() instead of a weird search request with no baseDn. So +1 > conn.search( baseDN ) => searches the base with one level scope and > (objectClass=*) > conn.search( baseDN, filter ) > conn.search( baseDN, filter, scope ) > We can add those three methods. > Attributes and size/time limits might be best left to be overridden in the > SearchRequest? I think that the Attributes should be the forth param. Anything else should be handled using a SearchRequest object. > However these parameters should be set to some smart default > when using the signatures above. For example the sizeLimit may default to > 1000 entries. > Exactly. > NOTE: timeLimit != timeout where the timeLimit is the limit for a search > operation on the server, and the timeout is the time the client will wait at > most for any operation to complete before disconnecting/abandoning the > client request. > TimeLimit is handled by the server, not the client. So yes, they are different values. We should have a default timeout value on the client, stored into the connection though. > Also I was wondering how the Cursor interface fits into this. Right now we > used the DirectoryListener. > Man, it fits just fine :) You have to see it... -- -- cordialement, regards, Emmanuel Lécharny www.iktek.com directory.apache.org