/**
  * {@inheritdoc}
  */
 public function getTransformerInfo(ColumnInfoInterface $columnInfo, ClassMetadata $metadata)
 {
     $mapping = $this->getMapping();
     if (!$metadata->hasAssociation('translations') || !isset($mapping[$columnInfo->getName()])) {
         return null;
     }
     return array($this->transformer, array('propertyPath' => $mapping[$columnInfo->getName()]));
 }
 /**
  * Returns a ProductValue
  *
  * @param ProductInterface    $product
  * @param ColumnInfoInterface $columnInfo
  *
  * @return ProductValueInterface
  */
 protected function getProductValue(ProductInterface $product, ColumnInfoInterface $columnInfo)
 {
     return $product->getValue($columnInfo->getName(), $columnInfo->getLocale(), $columnInfo->getScope());
 }
 /**
  * Returns a ProductValue
  *
  * @param ProductInterface    $product
  * @param ColumnInfoInterface $columnInfo
  *
  * @return ProductValueInterface
  */
 protected function getProductValue(ProductInterface $product, ColumnInfoInterface $columnInfo)
 {
     $productValue = $product->getValue($columnInfo->getName(), $columnInfo->getLocale(), $columnInfo->getScope());
     if (null === $productValue) {
         $attribute = $columnInfo->getAttribute();
         $locale = $columnInfo->getLocale();
         $scope = $columnInfo->getScope();
         $productValue = $this->productBuilder->createProductValue($attribute, $locale, $scope);
         $product->addValue($productValue);
     }
     return $productValue;
 }