/**
* @see javax.naming.Context#rename(javax.naming.Name, javax.naming.Name)
*/
public void rename( Name oldName, Name newName ) throws NamingException
{
DN oldDn = buildTarget( oldName );
DN newDn = buildTarget( newName );
if ( oldDn.size() == 0 )
{
throw new LdapNoPermissionException( I18n.err( I18n.ERR_312 ) );
}
// calculate parents
DN oldParent = (DN)oldDn.clone();
oldParent.remove( oldDn.size() - 1 );
DN newParent = ( DN ) newDn.clone();
newParent.remove( newDn.size() - 1 );
RDN oldRdn = oldDn.getRdn();
RDN newRdn = newDn.getRdn();
boolean delOldRdn = true;