code: public void registerFactory(final StringConverterFactory factory) {
          if (factory == null) {
              throw new IllegalArgumentException("Factory must not be null");
          }
          if (this == INSTANCE) {
              throw new IllegalStateException("Global singleton cannot be extended");
          }
          factories.add(0, factory);
      }
docs: Registers a converter factory.
  <p>
  This will be registered ahead of all existing factories.
  <p>
  No new factories may be registered for the global singleton.
  
  @param factory  the converter factory, not null
  @throws IllegalStateException if trying to alter the global singleton
  @since 1.5