code: public static LdapName removeFirst(Name dn, Name pathToRemove) {
          Assert.notNull(dn, "dn must not be null");
          Assert.notNull(pathToRemove, "pathToRemove must not be null");
  
          LdapName result = newLdapName(dn);
          LdapName path = returnOrConstructLdapNameFromName(pathToRemove);
  
          if(path.size() == 0 || !dn.startsWith(path)) {
              return result;
          }
  
          for(int i = 0; i < path.size(); i++) {
              try {
                  result.remove(0);
              } catch (InvalidNameException e) {
                  throw convertLdapException(e);
              }
          }
  
          return result;
      }
docs: Remove the supplied path from the beginning the specified
  <code>Name</code> if the name instance starts with
  <code>path</code>. Useful for stripping base path suffix from a
  <code>Name</code>. The original Name will not be affected.
  
  @param dn the dn to strip from.
  @param pathToRemove the path to remove from the beginning the dn instance.
  @return an LdapName instance that is a copy of the original name with the
  specified path stripped from its beginning.
  @since 2.0