code: @FFDCIgnore(Throwable.class)
      @Trivial
      private void set(Class<?> MongoClientOptions_Builder, Object optionsBuilder, String propName,
                       Object value) throws IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
          try {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(this, tc, propName + '=' + value);
  
              Class<?> type = MONGO_CLIENT_OPTIONS_TYPES.get(propName);
              // setter methods are just propName, no setPropName.
              Method method = MongoClientOptions_Builder.getMethod(propName, type);
              // even though we told the config service that some of these props are Integers, they get converted to longs. Need
              // to convert them back to int so that our .invoke(..) method doesn't blow up.
              if (type.equals(int.class) && value instanceof Long) {
                  value = ((Long) value).intValue();
              }
              method.invoke(optionsBuilder, value);
              return;
  
          } catch (Throwable x) {
              if (x instanceof InvocationTargetException)
                  x = x.getCause();
              IllegalArgumentException failure = ignoreWarnOrFail(x, IllegalArgumentException.class, "CWKKD0010.prop.error", propName, MONGO, id, x);
              if (failure != null) {
                  FFDCFilter.processException(failure, getClass().getName(), "394", this, new Object[] { value == null ? null : value.getClass(), value });
                  throw failure;
              }
          }
      }
docs: Configure a mongo option.
  
  @param MongoClientOptions_Builder builder class
  @param optionsBuilder builder instance
  @param propName name of the config property.
  @param type type of the config property.