docs: public String getParamForAnnotation(Class<?> clazz) {
      try {
        return (String) clazz.getField("param").get("");
      } catch (NoSuchFieldException e) {
        try {
          return getFirstExistingParamName(
              StringUtils.onCommas().splitToList((String) clazz.getField("params").get(""))
                  .toArray(new String[]{}));
        } catch (NoSuchFieldException e1) {
          throw new ParameterException("Annotation " + clazz + " must have param or params field");
        } catch (IllegalAccessException e1) {
          throw new ParameterException("While fetching parameter from annotation " + clazz, e);
        }
      } catch (IllegalAccessException e) {
        throw new ParameterException("While fetching parameter from annotation " + clazz, e);
      }
    }