public function createComponentsValidator(FormData $requestData, EntityFormPanel $panel, DCPackage $dc, Array $components = NULL) {
    $this->validationEntity = $entity = $panel->getEntityForm()->getEntity();
    
    $components = isset($components) ? Code::castCollection($components) : $panel->getEntityForm()->getComponents();
    
    return $this->componentsValidator =
              new ComponentsValidator($this->createFormDataSet($requestData, $panel, $entity),
                                      $components,
                                      $this->componentRuleMapper
                                     );
  }