/**
  * {@inheritdoc}
  *
  * @param RequestProductItemEntity $requestProductItem
  * @param Constraint|RequestProductItem $constraint
  */
 public function validate($requestProductItem, Constraint $constraint)
 {
     if (!$requestProductItem instanceof RequestProductItemEntity) {
         throw new UnexpectedTypeException($requestProductItem, 'OroB2B\\Bundle\\RFPBundle\\Entity\\RequestProductItem');
     }
     if (null === ($requestProduct = $requestProductItem->getRequestProduct())) {
         $this->addViolation($constraint);
         return;
     }
     if (null === ($product = $requestProduct->getProduct())) {
         $this->addViolation($constraint);
         return;
     }
     if ([] === ($allowedUnits = $product->getAvailableUnitCodes())) {
         $this->addViolation($constraint);
         return;
     }
     if (null === ($productUnit = $requestProductItem->getProductUnit())) {
         $this->addViolation($constraint);
         return;
     }
     if (!in_array($productUnit->getCode(), $allowedUnits, true)) {
         $this->addViolation($constraint);
         return;
     }
 }