public void inject(T csvBean, Map<Field, String> values) throws CsvReadException {
    if (csvBean == null || values == null || values.isEmpty())
      return;

    for (Map.Entry<Field, String> entry : values.entrySet()) {
      Field field = entry.getKey();
      String content = entry.getValue();

      Object value = null;
      try {
        value = convert(content, field);
      } catch (Exception e) {
        String caption = ReflectUtil.getFieldCaption(field);
        csvBean.setResult(ProcessResult.failed);
        csvBean.addMessage(caption + e.getMessage());
      }

      if (value != null)
        injectField(csvBean, field, value);
    }
  }