code: @Override
  	public Set<String> getRoundingNames(String... providers) {
          Set<String> result = new HashSet<>();
          String[] providerNames = providers;
          if (providerNames.length == 0) {
              providerNames = Monetary.getDefaultRoundingProviderChain().toArray(new String[Monetary.getDefaultRoundingProviderChain().size()]);
          }
          for (String providerName : providerNames) {
              for (RoundingProviderSpi prov : Bootstrap.getServices(RoundingProviderSpi.class)) {
                  try {
                      if (prov.getProviderName().equals(providerName) || prov.getProviderName().matches(providerName)) {
                          result.addAll(prov.getRoundingNames());
                      }
                  } catch (Exception e) {
                      Logger.getLogger(DefaultMonetaryRoundingsSingletonSpi.class.getName())
                              .log(Level.SEVERE, "Error loading RoundingProviderSpi from provider: " + prov, e);
                  }
              }
          }
          return result;
      }
docs: Allows to access the identifiers of the current defined roundings.
  
  @param providers the providers and ordering to be used. By default providers and ordering as defined in
  #getDefaultProviders is used, not null.
  @return the set of custom rounding ids, never {@code null}.