code: @SuppressWarnings("unchecked")
      public static <V, T extends Enum & Option> V parseValue(final T option, final String value) {
          Preconditions.checkState(StringUtils.isNotBlank(value),
                  "Empty value is not allowed for option %s", option);
          try {
              return (V) StringConverter.convert(option.getType(), value);
          } catch (Exception ex) {
              throw new IllegalStateException(String.format("Failed to convert '%s' value for option %s.%s",
                      value, option.getDeclaringClass().getSimpleName(), option), ex);
          }
      }
docs: Parse option value from string. Only basic conversions are supported: like string, boolean, integer, double,
  enum value, enum by class and arrays of these types (see {@link StringConverter}).
  
  @param option option enum
  @param value  string value
  @param <V>    option value type
  @param <T>    option type
  @return parsed option value