@Override
  public boolean commitAndValidate() {
    boolean isValid = true;

    for (IUploadComponent upload : uploadFields) {
      if (!upload.isValid()) {
        isValid = false;
      }
    }

    for (Field inputField : inputFields) {
      // remove older component errors first
      if (inputField instanceof AbstractComponent) {
        ((AbstractComponent) inputField).setComponentError(null);
      }
      try {
        // Commit user input to data source
        inputField.commit();
      } catch (EmptyValueException e) {
        isValid = false;
        // set component error if empty is not allowed
        if (inputField instanceof AbstractComponent) {
          ((AbstractComponent) inputField).setComponentError(ERROR_EMPTY);
        }
      } catch (InvalidValueException e) {
        // component error is set automatically
        isValid = false;
      }
    }

    return isValid;
  }
 @Override
 public void afterCommitAndValidate(AbstractInputMask defaultInputMask) {
   for (IUploadComponent upload : uploadFields) {
     try {
       upload.startPostprocessing();
       upload.doTemplateIntegrations(getJob().getInitialization());
     } catch (PostprocessorException e) {
       LOGGER.error(e.getMessage(), e);
     } catch (MSMLConversionException e) {
       LOGGER.error(e.getMessage(), e);
     }
   }
 }
 /** Helper method which adds all uploaded files to the UploadCollector */
 @Override
 public void collectUploads(UploadCollector collector) {
   for (IUploadComponent uploadField : uploadFields) {
     uploadField.collectUploads(collector);
   }
 }