/** * {@inheritdoc} */ public function process($item) { $entity = $this->findOrCreateObject($item); try { $this->updater->update($entity, $item); } catch (\InvalidArgumentException $exception) { $this->skipItemWithMessage($item, $exception->getMessage(), $exception); } $violations = $this->validator->validate($entity); if ($violations->count() > 0) { $this->objectDetacher->detach($entity); $this->skipItemWithConstraintViolations($item, $violations); } $rawParameters = $entity->getRawParameters(); if (!empty($rawParameters)) { $job = $this->jobRegistry->get($entity->getJobName()); $parameters = $this->jobParamsFactory->create($job, $rawParameters); $violations = $this->jobParamsValidator->validate($job, $parameters); if ($violations->count() > 0) { $this->objectDetacher->detach($entity); $this->skipItemWithConstraintViolations($item, $violations); } } return $entity; }
/** * @param JobInstance $jobInstance * @param array $validationGroups * * @return ConstraintViolationListInterface */ protected function validateJobInstance(JobInstance $jobInstance, array $validationGroups) { $rawParameters = $jobInstance->getRawParameters(); $job = $this->jobRegistry->get($jobInstance->getJobName()); $jobParameters = $this->jobParametersFactory->create($job, $rawParameters); /** @var ConstraintViolationListInterface $jobParamsViolations */ $jobParamsViolations = $this->jobParametersValidator->validate($job, $jobParameters, $validationGroups); /** @var ConstraintViolationListInterface $jobInstanceViolations */ $jobInstanceViolations = $this->validator->validate($jobInstance, $validationGroups); foreach ($jobInstanceViolations as $violation) { $jobParamsViolations->add($violation); } return $jobParamsViolations; }