Emmanuel Lecharny wrote: > Hallvard B Furuseth wrote: >> Michael Ströder writes: >> >>> It really depends on what you want to express. Note that "" represents >>> the rootDSE or root naming context. So "" would reference something >>> existing or well-defined. IMHO NULL (or None in Python) would better >>> signal something undefined or none-existing. >> >> Yes. There is one case in the LDAP ASN.1 grammar (in rfc 4511) where >> you need to distinguish between an absent DN and an empty DN: The LDAPDN >> field ModifyDNRequest.newSuperior, which is 'OPTIONAL'. There may be >> others in LDAP extensions defined elsewhere. >> > This is starting to be confusing. The initial question was : > > "Should the toString() method of a class that represents a DN return > null or an empty string?"
This can't be answered consistently without knowing what this returned value is used for. But I'll try: If you just created an object instance of the DN class without assigning any real DN to it method toString() should return NULL instead of "". > But if the question is : > "How do I represent a DN in a structure when I do a toString() on this > structure", then the answer would be : > - null if the DN member is null I guess with "DN member" you're referring to the class' attribute for storing the DN. So I guess this is the case I described above. > - "" if the DN does not hold any value. I doubt that this is right or maybe I misunderstood "does not hold any value". Again: "" refers to the rootDSE or is the root naming context in search requests with scope!=base. If you pass "" to any other method (e.g. for a modify request) then it has a specific meaning (e.g. modifying the rootDSE). Well, not being a Java programmer I will stay out of further discussion because I don't know what's common in the Java world. Ciao, Michael.
