code: private static Gson createGson(String className) {
          GsonBuilder builder = new GsonBuilder();
  
          // ISO8601 date format support
          builder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
  
          builder.registerTypeAdapter(TranslationStatus.class,
                  new EnumWithFallbackAdapter<TranslationStatus>(TranslationStatus.UNKNOWN));
  
          builder.registerTypeAdapter(TranslationRequestStatus.class,
                  new EnumWithFallbackAdapter<TranslationRequestStatus>(TranslationRequestStatus.UNKNOWN));
  
          builder.registerTypeAdapter(
                  new TypeToken<EnumMap<TranslationStatus, Integer>>() {}.getType(),
                  new EnumMapInstanceCreator<TranslationStatus, Integer>(TranslationStatus.class));
  
          builder.registerTypeAdapterFactory(new NullMapValueTypeAdapterFactory());
         
          return builder.create();
      }
docs: Creates a new Gson object
  
  @param className A class name used for serialization/deserialization.
  <p>Note: This implementation does not use this argument
  for now. If we need different kinds of type adapters
  depending on class, the implementation might be updated
  to set up appropriate set of type adapters.
  @return  A Gson object