/**
  * Set the master variant
  *
  * @param VariantInterface $masterVariant
  *
  * @return $this
  */
 public function setMasterVariant(VariantInterface $masterVariant)
 {
     $masterVariant->setMaster(true);
     /** @var VariantInterface $variant */
     foreach ($this->variants as $variant) {
         if ($variant->isMaster() && $variant !== $masterVariant) {
             $variant->setMaster(false);
         }
     }
     if (!$this->variants->contains($masterVariant)) {
         $masterVariant->setObject($this);
         $this->variants->add($masterVariant);
     }
     return $this;
 }
Beispiel #2
0
 /**
  * {@inheritDoc}
  */
 public function inheritDefaults(VariantInterface $masterVariant)
 {
     if (!$masterVariant->isMaster()) {
         throw new InvalidArgumentException('Cannot inherit values from non master variant.');
     }
     if ($this->isMaster()) {
         throw new LogicException('Master variant cannot inherit from another master variant.');
     }
     return $this;
 }