/**
  * Create the field validation object.
  *
  * @param Validation      $validation The form validation.
  * @param \FormFieldModel $model      The field model.
  *
  * @return Field
  */
 private function createField(Validation $validation, $model)
 {
     $field = $validation->addField($this->getFieldIdentifier($model));
     if ($model->fv_enabled === 'disabled') {
         $field->setEnabled(false);
     }
     if ($model->fv_enabled !== 'custom') {
         return $field;
     }
     $field->setAutoFocus($model->fv_autofocus)->setIcon($model->fv_icon)->setVerbose($model->fv_verbose);
     foreach (array('message', 'selector') as $option) {
         $this->assembleOption($field, $model, $option, true);
     }
     if ($model->fv_advanced) {
         $this->assembleOption($field, $model, 'row', true);
         if (is_numeric($model->fv_threshold)) {
             $field->setThreshold($model->fv_threshold);
         }
         if ($model->fv_err) {
             if ($model->fv_err === 'selector') {
                 $field->setErr($model->fv_err_selector);
             } else {
                 $field->setErr($model->fv_err);
             }
         }
     }
     return $field;
 }
 /**
  * Assemble the password validators.
  *
  * @param Validation      $validation Form validation.
  * @param Field           $field      The validation field.
  * @param \FormFieldModel $model      The field model.
  *
  * @return void
  */
 private function assemblePasswordValidators(Validation $validation, Field $field, $model)
 {
     if ($model->type !== 'password') {
         return;
     }
     $minLength = $this->config->get('minPasswordLength');
     $confirm = $validation->addField($model->name . '_confirm');
     $confirm->addValidator('identical', array('field' => $model->name, 'message' => $this->translator->translate('ERR.passwordMatch')));
     if ($minLength) {
         $options = array('trim' => true, 'min' => $minLength);
         $field->addValidator('stringLength', $options);
         $confirm->addValidator('stringLength', $options);
     }
 }