code: public void addRequiredValues(@Nonnull final Values sourceValues) {
          Object taskDirectory = sourceValues.getObject(TASK_DIRECTORY_KEY, Object.class);
          MfClientHttpRequestFactoryProvider requestFactoryProvider =
                  sourceValues.getObject(CLIENT_HTTP_REQUEST_FACTORY_KEY,
                                         MfClientHttpRequestFactoryProvider.class);
          Template template = sourceValues.getObject(TEMPLATE_KEY, Template.class);
          PDFConfig pdfConfig = sourceValues.getObject(PDF_CONFIG_KEY, PDFConfig.class);
          String subReportDir = sourceValues.getString(SUBREPORT_DIR_KEY);
  
          this.values.put(TASK_DIRECTORY_KEY, taskDirectory);
          this.values.put(CLIENT_HTTP_REQUEST_FACTORY_KEY, requestFactoryProvider);
          this.values.put(TEMPLATE_KEY, template);
          this.values.put(PDF_CONFIG_KEY, pdfConfig);
          this.values.put(SUBREPORT_DIR_KEY, subReportDir);
          this.values.put(VALUES_KEY, this);
          this.values.put(JOB_ID_KEY, sourceValues.getString(JOB_ID_KEY));
          this.values.put(LOCALE_KEY, sourceValues.getObject(LOCALE_KEY, Locale.class));
      }
docs: Add the elements that all values objects require from the provided values object.
  
  @param sourceValues the values object containing the required elements