/**
  * @see ChangeOp::apply()
  */
 public function apply(EntityDocument $entity, Summary $summary = null)
 {
     if (!$entity instanceof FingerprintHolder) {
         throw new InvalidArgumentException('$entity must be a FingerprintHolder');
     }
     $fingerprint = $entity->getFingerprint();
     if ($fingerprint->getDescriptions()->hasTermForLanguage($this->languageCode)) {
         if ($this->description === null) {
             $removedDescription = $fingerprint->getDescription($this->languageCode)->getText();
             $this->updateSummary($summary, 'remove', $this->languageCode, $removedDescription);
         } else {
             $this->updateSummary($summary, 'set', $this->languageCode, $this->description);
         }
     } else {
         $this->updateSummary($summary, 'add', $this->languageCode, $this->description);
     }
     $this->updateFingerprint($fingerprint);
     $entity->setFingerprint($fingerprint);
 }
 /**
  * @see ChangeOp::apply()
  */
 public function apply(EntityDocument $entity, Summary $summary = null)
 {
     if (!$entity instanceof FingerprintHolder) {
         throw new InvalidArgumentException('$entity must be a FingerprintHolder');
     }
     $fingerprint = $entity->getFingerprint();
     $this->updateSummary($summary, $this->action, $this->languageCode, $this->aliases);
     $this->updateFingerprint($fingerprint);
     $entity->setFingerprint($fingerprint);
 }