code: public static StreamParametersMapFunction<String> stringToParameterMap(
              Class<?> testClass) {
          StreamParametersMapFunction<String> map = new StreamParametersMapFunction<>();
          Arrays.stream(testClass.getDeclaredFields())
                  .filter(f -> f.isAnnotationPresent(Parameter.class))
                  .forEach(
                          f -> {
                              int pid = f.getAnnotation(Parameter.class).value();
                              Function<String, ?> fct = null;
                              if (f.getGenericType() instanceof Class) {
                                  Class<?> c = (Class<?>) f.getGenericType();
                                  fct = getEntryClassMapperFunction(c);
  
                              } else if (f.getGenericType() instanceof ParameterizedType) {
                                  ParameterizedType p = (ParameterizedType) f
                                          .getGenericType();
                                  fct = getEntryParameterizedTypeFunction(p);
                              }
                              if (fct != null) {
                                  map.andMap(pid, fct);
                              }
                          });
          return map;
      }
docs: Start building a Parameter Mapper function, assuming that the input are
  String, and using the type of the {@link Parameter &#64;Parameter} field.
  <p>
  Fields not supported will not be mapped and must be handled manually,
  using {@link StreamParametersMapFunction#andMap(int, Function) andMap}
  method.
  
  @param testClass
  the testClass with the annotation
  @return the function on the parameter array
  @see <a href="./doc-files/convertedType.html">Supported automated
  conversion</a>