code: public NlsFormatter<?> registerFormatter(NlsFormatterPlugin<?> formatter, String formatType, String formatStyle) {
  
      Objects.requireNonNull(formatter, "formatter");
      if (formatStyle != null) {
        Objects.requireNonNull(formatType, "formatType");
      }
      Map<String, NlsFormatterPlugin<?>> style2builderMap = this.builders.get(formatType);
      if (style2builderMap == null) {
        style2builderMap = new HashMap<>();
        this.builders.put(formatType, style2builderMap);
      }
      return style2builderMap.put(formatStyle, formatter);
    }
docs: This method registers the given {@code formatBuilder}.
  
  @param formatter is the formatter to register.
  @param formatType is the type to be formatted.
  @param formatStyle is the style defining details of formatting. May be {@code null} for default
  formatter.
  @return the {@link NlsFormatter} that was registered for the given {@code formatType} and
  {@code formatStyle} and is now replaced by the given {@code formatter} or {@code null} if no
  {@link NlsFormatter} was replaced.