Hi guys,

as I'm working on the messages, I have looked at the Control Interface. Here is the way it's used in all the different APIs :

ADS :
we used the JNDI interface, and we will change to switch to a LDAP API Control

jLdap/LDAPSdk
=============
class :
 LDAPControl

constructors :
 LDAPControl()
 LDAPControl(String, boolean byte[]))

methods :
 getID()
 getValue()
 isCritical()
 newInstance(byte[])
 clone()


JNDI
====
interface :
 Control

methods :
 getEncodedValue()
 getID()
 isCritical()


ODS
===
abstract class :
 Control

constructors :
 Control( String, boolean)

methods :
 getOID()
 getValue()
 hasValue()
 isCritical()


UID
===
class :
Control

constructors :
 Control(String)
 Control(String, boolean)
 Control(String, boolean, ASN1OctetString)

methods :
 encode()
 equals( Object )
 getControlName()
 getOID()
 getValue()
 hasValue()
 isCritical()


Checking all those implementations, I would suggest that we stick with something like :

interface Control

<discussion>
Not sure we need a class, when most of the controls will be named, like VLVControl, PageSearchControl, ... ODS define an abstract class, which means nobody can create an instance of it. At this point, I think it's probably better to go for an interface, hidding the asbtract class to the client.
</discussion>

constructors :
<discussion>
No need of them, if it's an interface. From the server POV, this will be an issue, as we must be able to create Controls while decoding them and we don't necessarily know if the control will be supported or not. We will probably need an intermediate ControlImpl and an AbstractControl class in order to deal with this, but from the Client POV, this is nt relevant
</discussion>

methods :
 getOid() or getOID().
 getValue()
 isCritical()

<discussion>
Those three methoda re the bare minimum we need from the client side. I'm not sure that the hasValue() method is necessary, when the getValue() returning a null value will provide the same result.
</discussion>

Thoughts ?


--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com


Reply via email to