code: public void registerProvider(PathProvider provider, String schemePrefix) throws DuplicateObjectException {
  
      getInitializationState().requireNotInitilized();
      if (provider == null) {
        throw new NlsNullPointerException("provider");
      }
      if (this.schema2providerMap.containsKey(schemePrefix)) {
        throw new DuplicateObjectException(provider, schemePrefix);
      }
      this.schema2providerMap.put(schemePrefix, provider);
    }
docs: This method registers the given {@link PathProvider}.
  
  @param provider is the {@link PathProvider} to register.
  @param schemePrefix is the {@link PathUri#getSchemePrefix() scheme-prefix} for which the {@link PathProvider} shall
  be registered.
  @throws DuplicateObjectException if a {@link PathProvider} is already registered for one of the
  {@link PathProvider#getSchemePrefixes() scheme-prefixes}.