directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject Some more thoughts about the Dn class
Date Wed, 16 Feb 2011 14:50:34 GMT

we have had some convo about the Dn methods last night. Here are some of 
the things we discussed and came with :

o the getPrefix(N)/getSuffix(N) are cumbersome, and not easy to 
manipulate. The main issue is that they depend on the RDN order, which 
is the opposite as what people are used to manipulate. Everytime you 
have to get a prefix from a Dn, you always wonder what the position 
should be, and if it's 0 based or 1 based...

We propose to replace those methods by getParent(Dn) and 
getDescendant(Dn). Let me give you an example :

// A DN
Dn dn = new Dn( "cn=test,ou=server,ou=directory,dc=apache,dc=org" );

// Get the right part (equivalent to getprefix( 2 ) )
Dn parent = dn.getParent( "cn=test,ou=server,ou=directory" ); // returns 

// Get the left part (equivalent to getSuffix( 3 ))
Dn descendant = dn.getDescendant( "ou=directory,dc=apache,dc=org" ); // 
returns "cn=test,ou=server"

o The Add method is a bit annoying to remove, because first, the JNDI 
Name interface has such a method, and people are used to it, second 
removing it means we have to add some more constructors line Dn( Dn, 
Rdn... ). I agree that someone doing something like :

Dn dn = new Dn( "dc=apache,dc=org" );
dn.add( "ou=directory" );

will expect that the dn is now "ou=directory,dc=apache,dc=org", when 
it's unchanged.

This is really troublesome... What about rename it concatenate() ?

Thoughts ?

Emmanuel L├ęcharny

View raw message