code: @Override
      public StringConverter<?> findConverter(Class<?> cls) {
          Class<?> sup = cls.getSuperclass();
          if (sup == Enum.class) {
              return new EnumStringConverter(cls);
          } else if (sup != null && sup.getSuperclass() == Enum.class) {
              return new EnumStringConverter(sup);
          }
          return null;
      }
docs: Finds a converter by type.
  
  @param cls  the type to lookup, not null
  @return the converter, null if not found
  @throws RuntimeException (or subclass) if source code is invalid