/**
  * Constructor.
  * @param $context Context
  * @param $submission Submission (optional)
  */
 function __construct($context, $submission = null)
 {
     parent::__construct($context, $submission, 1);
     // Validation checks for this form
     $supportedSubmissionLocales = $context->getSupportedSubmissionLocales();
     if (!is_array($supportedSubmissionLocales) || count($supportedSubmissionLocales) < 1) {
         $supportedSubmissionLocales = array($context->getPrimaryLocale());
     }
     $this->addCheck(new FormValidatorInSet($this, 'locale', 'required', 'submission.submit.form.localeRequired', $supportedSubmissionLocales));
     if ((bool) $context->getSetting('copyrightNoticeAgree')) {
         $this->addCheck(new FormValidator($this, 'copyrightNoticeAgree', 'required', 'submission.submit.copyrightNoticeAgreeRequired'));
     }
     $this->addCheck(new FormValidator($this, 'authorUserGroupId', 'required', 'author.submit.userGroupRequired'));
     foreach ($context->getLocalizedSetting('submissionChecklist') as $key => $checklistItem) {
         $this->addCheck(new FormValidator($this, "checklist-{$key}", 'required', 'submission.submit.checklistErrors'));
     }
 }
 /**
  * Constructor.
  * @param $context Context
  * @param $submission Submission
  * @param $metadataFormImplementation MetadataFormImplementation
  */
 function __construct($context, $submission, $metadataFormImplementation)
 {
     parent::__construct($context, $submission, 3);
     $this->_metadataFormImplem = $metadataFormImplementation;
     $this->_metadataFormImplem->addChecks($submission);
 }
 /**
  * Constructor.
  * @param $context Context
  * @param $submission Submission
  */
 function __construct($context, $submission)
 {
     parent::__construct($context, $submission, 2);
 }