code: public void registerProvider(PathProvider provider) throws DuplicateObjectException {
  
      getInitializationState().requireNotInitilized();
      if (provider == null) {
        throw new NlsNullPointerException("provider");
      }
      String[] schemaPrefixes = provider.getSchemePrefixes();
      if (schemaPrefixes == null) {
        throw new NlsNullPointerException(provider.getClass().getName() + ".getSchemaPrefix()");
      }
      if (schemaPrefixes.length == 0) {
        throw new NlsIllegalArgumentException(provider.getClass().getName() + ".getSchemaPrefix()");
      }
      for (String schemePrefix : schemaPrefixes) {
        registerProvider(provider, schemePrefix);
      }
    }
docs: This method registers the given {@link PathProvider}.
  
  @param provider is the {@link PathProvider} to register.
  @throws DuplicateObjectException if a {@link PathProvider} is already registered for one of the
  {@link PathProvider#getSchemePrefixes() scheme-prefixes}.